solana-agent-kit
-
Solana Agent Kit
+
solana-agent-kit
solana-agent-kit
+
Solana Agent Kit
@@ -15,11 +15,11 @@
And more...
Anyone - whether an SF-based AI researcher or a crypto-native builder - can bring their AI agents trained with any model and seamlessly integrate with Solana.
-
+
-Replit template created by Arpit Singh
+Replit template created by Arpit Singh
-
🔧 Core Blockchain Features
+🔧 Core Blockchain Features
Token Operations
@@ -46,20 +46,23 @@
Launch on Pump via PumpPortal
Raydium pool creation (CPMM, CLMM, AMMv4)
Orca Whirlpool integration
-Meteora Dynamic AMM, DLMM Pool, and Alpga Vault
+Manifest market creation, and limit orders
+Meteora Dynamic AMM, DLMM Pool, and Alpha Vault
Openbook market creation
Register and Resolve SNS
Jito Bundles
Pyth Price feeds for fetching Asset Prices
Register/resolve Alldomains
+Perpetuals Trading with Adrena Protocol
Solana Blinks
-Lending by Lulon (Best APR for USDC)
+Lending by Lulo (Best APR for USDC)
Send Arcade Games
JupSOL staking
+Solayer SOL (sSOL)staking
@@ -69,7 +72,7 @@
-
🤖 AI Integration Features
+🤖 AI Integration Features
-📦 Installation npm install solana-agent-kit
+📦 Installation npm install solana-agent-kit
Copy
-Quick Start import { SolanaAgentKit , createSolanaTools } from "solana-agent-kit" ; // Initialize with private key and optional RPC URL const agent = new SolanaAgentKit ( "your-wallet-private-key-as-base58" , "https://api.mainnet-beta.solana.com" , "your-openai-api-key" ); // Create LangChain tools const tools = createSolanaTools ( agent );
+Quick Start import { SolanaAgentKit , createSolanaTools } from "solana-agent-kit" ; // Initialize with private key and optional RPC URL const agent = new SolanaAgentKit ( "your-wallet-private-key-as-base58" , "https://api.mainnet-beta.solana.com" , "your-openai-api-key" ); // Create LangChain tools const tools = createSolanaTools ( agent );
Copy
-Usage Examples Deploy a New Token const result = await agent . deployToken ( "my ai token" , // name "uri" , // uri "token" , // symbol 9 , // decimals 1000000 // initial supply ); console . log ( "Token Mint Address:" , result . mint . toString ());
+Usage Examples Deploy a New Token const result = await agent . deployToken ( "my ai token" , // name "uri" , // uri "token" , // symbol 9 , // decimals 1000000 // initial supply ); console . log ( "Token Mint Address:" , result . mint . toString ());
Copy
-Create NFT Collection const collection = await agent . deployCollection ({ name: "My NFT Collection" , uri: "https://arweave.net/metadata.json" , royaltyBasisPoints: 500 , // 5% creators: [ { address: "creator-wallet-address" , percentage: 100 , }, ], });
+Create NFT Collection const collection = await agent . deployCollection ({ name: "My NFT Collection" , uri: "https://arweave.net/metadata.json" , royaltyBasisPoints: 500 , // 5% creators: [ { address: "creator-wallet-address" , percentage: 100 , }, ], });
Copy
-Swap Tokens import { PublicKey } from "@solana/web3.js" ; const signature = await agent . trade ( new PublicKey ( "target-token-mint" ), 100 , // amount new PublicKey ( "source-token-mint" ), 300 // 3% slippage );
+Swap Tokens import { PublicKey } from "@solana/web3.js" ; const signature = await agent . trade ( new PublicKey ( "target-token-mint" ), 100 , // amount new PublicKey ( "source-token-mint" ), 300 // 3% slippage );
Copy
-Lend Tokens import { PublicKey } from "@solana/web3.js" ; const signature = await agent . lendAssets ( 100 // amount of USDC to lend );
+Lend Tokens import { PublicKey } from "@solana/web3.js" ; const signature = await agent . lendAssets ( 100 // amount of USDC to lend );
Copy
-Stake SOL const signature = await agent . stake ( 1 // amount in SOL to stake );
+Stake SOL const signature = await agent . stake ( 1 // amount in SOL to stake );
Copy
-Send an SPL Token Airdrop via ZK Compression import { PublicKey } from "@solana/web3.js" ; ( async () => { console . log ( "~Airdrop cost estimate:" , getAirdropCostEstimate ( 1000 , // recipients 30_000 // priority fee in lamports ) ); const signature = await agent . sendCompressedAirdrop ( new PublicKey ( "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN" ), // mint 42 , // amount per recipient [ new PublicKey ( "1nc1nerator11111111111111111111111111111111" ), // ... add more recipients ], 30_000 // priority fee in lamports ); })();
+Stake SOL on Solayer const signature = await agent . restake ( 1 // amount in SOL to stake );
Copy
-Fetch Price Data from Pyth const price = await agent . pythFetchPrice ( "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43" ); console . log ( "Price in BTC/USD:" , price );
+Send an SPL Token Airdrop via ZK Compression import { PublicKey } from "@solana/web3.js" ; ( async () => { console . log ( "~Airdrop cost estimate:" , getAirdropCostEstimate ( 1000 , // recipients 30_000 // priority fee in lamports ) ); const signature = await agent . sendCompressedAirdrop ( new PublicKey ( "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN" ), // mint 42 , // amount per recipient [ new PublicKey ( "1nc1nerator11111111111111111111111111111111" ), // ... add more recipients ], 30_000 // priority fee in lamports ); })();
Copy
-Examples LangGraph Multi-Agent System The repository includes an advanced example of building a multi-agent system using LangGraph and Solana Agent Kit. Located in examples/agent-kit-langgraph, this example demonstrates:
+Fetch Price Data from Pyth const priceFeedID = await agent . getPythPriceFeedID ( "SOL" ); const price = await agent . getPythPrice ( priceFeedID ); console . log ( "Price of SOL/USD:" , price );
+Copy
+
+Open PERP Trade import { PublicKey } from "@solana/web3.js" ; const signature = await agent . openPerpTradeLong ({ price: 300 , // $300 SOL Max price collateralAmount: 10 , // 10 jitoSOL in collateralMint: new PublicKey ( "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn" ), // jitoSOL leverage: 50000 , // x5 tradeMint: new PublicKey ( "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn" ), // jitoSOL slippage: 0.3 , // 0.3% });
+Copy
+
+Close PERP Trade import { PublicKey } from "@solana/web3.js" ; const signature = await agent . closePerpTradeLong ({ price: 200 , // $200 SOL price tradeMint: new PublicKey ( "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn" ), // jitoSOL });
+Copy
+
+Examples LangGraph Multi-Agent System The repository includes an advanced example of building a multi-agent system using LangGraph and Solana Agent Kit. Located in examples/agent-kit-langgraph, this example demonstrates:
Multi-agent architecture using LangGraph's StateGraph
Specialized agents for different tasks:
@@ -140,7 +160,7 @@
Environment-based configuration
Check out the LangGraph example for a complete implementation of an advanced Solana agent system.
-Dependencies The toolkit relies on several key Solana and Metaplex libraries:
+Dependencies The toolkit relies on several key Solana and Metaplex libraries:
@solana/web3.js
@solana/spl-token
@@ -149,14 +169,15 @@
@metaplex-foundation/umi
@lightprotocol/compressed-token
@lightprotocol/stateless.js
-@pythnetwork/price-service-client
-Contributing Contributions are welcome! Please feel free to submit a Pull Request.
+
Contributing Contributions are welcome! Please feel free to submit a Pull Request.
Refer to CONTRIBUTING.md for detailed guidelines on how to contribute to this project.
-Contributors
+ Contributors
-Star History
-License Apache-2 License
-Security This toolkit handles private keys and transactions. Always ensure you're using it in a secure environment and never share your private keys.
-
+
Star History
+
License Apache-2 License
+
Funding If you wanna give back any tokens or donations to the OSS community -- The Public Solana Agent Kit Treasury Address:
+
Solana Network : EKHTbXpsm6YDgJzMkFxNU1LNXeWcUW7Ezf8mjUNQQ4Pa
+
Security This toolkit handles private keys and transactions. Always ensure you're using it in a secure environment and never share your private keys.
+
diff --git a/docs/interfaces/Action.html b/docs/interfaces/Action.html
new file mode 100644
index 0000000..23e24a4
--- /dev/null
+++ b/docs/interfaces/Action.html
@@ -0,0 +1,16 @@
+
Action | solana-agent-kit Propertiesdescription description : string
diff --git a/docs/interfaces/ActionExample.html b/docs/interfaces/ActionExample.html
new file mode 100644
index 0000000..2377d21
--- /dev/null
+++ b/docs/interfaces/ActionExample.html
@@ -0,0 +1,5 @@
+
ActionExample | solana-agent-kit Propertiesexplanation explanation : string
input input : Record < string , any >
output output : Record < string , any >
diff --git a/docs/interfaces/BatchOrderPattern.html b/docs/interfaces/BatchOrderPattern.html
new file mode 100644
index 0000000..eee6848
--- /dev/null
+++ b/docs/interfaces/BatchOrderPattern.html
@@ -0,0 +1,7 @@
+
BatchOrderPattern | solana-agent-kit Interface BatchOrderPattern PropertiesOptionalindividual Quantity individualQuantity ?: number
Optionalnumber Of Orders numberOfOrders ?: number
Optionalprice Range priceRange ?: { max ?: number ; min ?: number }
Optionalspacing spacing ?: { type : "percentage" | "fixed" ; value : number }
Optionaltotal Quantity totalQuantity ?: number
diff --git a/docs/interfaces/CollectionDeployment.html b/docs/interfaces/CollectionDeployment.html
index 29d2d44..c35a066 100644
--- a/docs/interfaces/CollectionDeployment.html
+++ b/docs/interfaces/CollectionDeployment.html
@@ -1,3 +1,3 @@
-
CollectionDeployment | solana-agent-kit Interface CollectionDeployment IndexProperties collection Address
+
CollectionDeployment | solana-agent-kit Interface CollectionDeployment Propertiescollection Address collection Address : PublicKey
signature signature : Uint8Array < ArrayBufferLike >
+
Propertiescollection Address collectionAddress : PublicKey
signature signature : Uint8Array
diff --git a/docs/interfaces/CollectionOptions.html b/docs/interfaces/CollectionOptions.html
index cb6532a..1861667 100644
--- a/docs/interfaces/CollectionOptions.html
+++ b/docs/interfaces/CollectionOptions.html
@@ -1,5 +1,5 @@
-
CollectionOptions | solana-agent-kit Interface CollectionOptions IndexProperties creators?
+
CollectionOptions | solana-agent-kit Interface CollectionOptions PropertiesOptionalroyalty Basis Points royalty Basis Points ?: number
+
PropertiesOptionalroyalty Basis Points royaltyBasisPoints ?: number
diff --git a/docs/interfaces/Config.html b/docs/interfaces/Config.html
new file mode 100644
index 0000000..de80422
--- /dev/null
+++ b/docs/interfaces/Config.html
@@ -0,0 +1,4 @@
+
Config | solana-agent-kit PropertiesOptionalJUPITER_ FEE_ BPS JUPITER_FEE_BPS ?: number
OptionalJUPITER_ REFERRAL_ ACCOUNT JUPITER_REFERRAL_ACCOUNT ?: string
OptionalOPENAI_ API_ KEY OPENAI_API_KEY ?: string
diff --git a/docs/interfaces/Creator.html b/docs/interfaces/Creator.html
index 717b3d8..d4e44be 100644
--- a/docs/interfaces/Creator.html
+++ b/docs/interfaces/Creator.html
@@ -1,3 +1,3 @@
-
Creator | solana-agent-kit IndexProperties address
+
Creator | solana-agent-kit Propertiespercentage percentage : number
+
Propertiespercentage percentage : number
diff --git a/docs/interfaces/FetchPriceResponse.html b/docs/interfaces/FetchPriceResponse.html
index cfe4fa2..33ede0e 100644
--- a/docs/interfaces/FetchPriceResponse.html
+++ b/docs/interfaces/FetchPriceResponse.html
@@ -1,6 +1,6 @@
-
FetchPriceResponse | solana-agent-kit Interface FetchPriceResponse IndexProperties code?
+
FetchPriceResponse | solana-agent-kit Interface FetchPriceResponse PropertiesOptionalcode code ?: string
Optionalmessage message ?: string
Optionalprice InUSDC price InUSDC ?: string
status status : "success" | "error"
Optionaltoken Id token Id ?: string
+
token Id?
+
PropertiesOptionalcode code ?: string
Optionalmessage message ?: string
Optionalprice InUSDC priceInUSDC ?: string
status status : "success" | "error"
Optionaltoken Id tokenId ?: string
diff --git a/docs/interfaces/GibworkCreateTaskReponse.html b/docs/interfaces/GibworkCreateTaskReponse.html
index 7709d81..3d19c9a 100644
--- a/docs/interfaces/GibworkCreateTaskReponse.html
+++ b/docs/interfaces/GibworkCreateTaskReponse.html
@@ -1,4 +1,4 @@
-
GibworkCreateTaskReponse | solana-agent-kit Interface GibworkCreateTaskReponse IndexProperties signature?
+
GibworkCreateTaskReponse | solana-agent-kit Interface GibworkCreateTaskReponse PropertiesOptionalsignature signature ?: string
status status : "success" | "error"
Optionaltask Id task Id ?: string
+
task Id?
+
PropertiesOptionalsignature signature ?: string
status status : "success" | "error"
Optionaltask Id taskId ?: string
diff --git a/docs/interfaces/JupiterTokenData.html b/docs/interfaces/JupiterTokenData.html
index c1d72cb..2d333d5 100644
--- a/docs/interfaces/JupiterTokenData.html
+++ b/docs/interfaces/JupiterTokenData.html
@@ -1,12 +1,12 @@
-
JupiterTokenData | solana-agent-kit Interface JupiterTokenData IndexProperties address
+
JupiterTokenData | solana-agent-kit Interface JupiterTokenData Propertiesdaily_ volume daily_ volume : number
extensions extensions : { coingeckoId ?: string ; }
freeze_ authority freeze_ authority : null | string
mint_ authority mint_ authority : null | string
permanent_ delegate permanent_ delegate : null | string
+
Propertiesdaily_ volume daily_volume : number
extensions extensions : { coingeckoId ?: string }
freeze_ authority freeze_authority : null | string
mint_ authority mint_authority : null | string
permanent_ delegate permanent_delegate : null | string
diff --git a/docs/interfaces/LuloAccountDetailsResponse.html b/docs/interfaces/LuloAccountDetailsResponse.html
index 776cea4..f8b32c0 100644
--- a/docs/interfaces/LuloAccountDetailsResponse.html
+++ b/docs/interfaces/LuloAccountDetailsResponse.html
@@ -1,6 +1,6 @@
-
LuloAccountDetailsResponse | solana-agent-kit Interface LuloAccountDetailsResponse IndexProperties interest Earned
-
realtime Apy
+
LuloAccountDetailsResponse | solana-agent-kit Interface LuloAccountDetailsResponse Propertiesinterest Earned interest Earned : number
realtime Apy realtime Apy : number
settings settings : { allowedProtocols : null | string ; homebase : null | string ; minimumRate : string ; owner : string ; }
total Value total Value : number
+
total Value
+
Propertiesinterest Earned interestEarned : number
realtime Apy realtimeApy : number
settings settings : { allowedProtocols : null | string ; homebase : null | string ; minimumRate : string ; owner : string ; }
total Value totalValue : number
diff --git a/docs/interfaces/MintCollectionNFTResponse.html b/docs/interfaces/MintCollectionNFTResponse.html
index f479f62..205dbd5 100644
--- a/docs/interfaces/MintCollectionNFTResponse.html
+++ b/docs/interfaces/MintCollectionNFTResponse.html
@@ -1,3 +1,3 @@
-
MintCollectionNFTResponse | solana-agent-kit Interface MintCollectionNFTResponse interface MintCollectionNFTResponse { metadata : PublicKey ; mint : PublicKey ; } IndexProperties metadata
+
MintCollectionNFTResponse | solana-agent-kit Interface MintCollectionNFTResponse interface MintCollectionNFTResponse { metadata : PublicKey ; mint : PublicKey ; } Propertiesmetadata metadata : PublicKey
+
Propertiesmetadata metadata : PublicKey
diff --git a/docs/interfaces/OrderParams.html b/docs/interfaces/OrderParams.html
new file mode 100644
index 0000000..6a6d2bb
--- /dev/null
+++ b/docs/interfaces/OrderParams.html
@@ -0,0 +1,4 @@
+
OrderParams | solana-agent-kit
diff --git a/docs/interfaces/PumpFunTokenOptions.html b/docs/interfaces/PumpFunTokenOptions.html
index 0617315..3cd7f3b 100644
--- a/docs/interfaces/PumpFunTokenOptions.html
+++ b/docs/interfaces/PumpFunTokenOptions.html
@@ -1,7 +1,7 @@
-
PumpFunTokenOptions | solana-agent-kit Interface PumpFunTokenOptions IndexProperties initial LiquiditySOL?
-
priority Fee?
-
slippage Bps?
+
PumpFunTokenOptions | solana-agent-kit Interface PumpFunTokenOptions PropertiesOptionalinitial LiquiditySOL initial LiquiditySOL ?: number
Optionalpriority Fee priority Fee ?: number
Optionalslippage Bps slippage Bps ?: number
Optionaltelegram telegram ?: string
Optionaltwitter twitter ?: string
Optionalwebsite website ?: string
+
PropertiesOptionalinitial LiquiditySOL initialLiquiditySOL ?: number
Optionalpriority Fee priorityFee ?: number
Optionalslippage Bps slippageBps ?: number
Optionaltelegram telegram ?: string
Optionaltwitter twitter ?: string
Optionalwebsite website ?: string
diff --git a/docs/interfaces/PumpfunLaunchResponse.html b/docs/interfaces/PumpfunLaunchResponse.html
index 0ee5045..c9caddc 100644
--- a/docs/interfaces/PumpfunLaunchResponse.html
+++ b/docs/interfaces/PumpfunLaunchResponse.html
@@ -1,5 +1,5 @@
-
PumpfunLaunchResponse | solana-agent-kit Interface PumpfunLaunchResponse IndexProperties error?
-
metadata Uri?
+
PumpfunLaunchResponse | solana-agent-kit Interface PumpfunLaunchResponse PropertiesOptionalerror error ?: string
Optionalmetadata Uri metadata Uri ?: string
signature signature : string
+
PropertiesOptionalerror error ?: string
Optionalmetadata Uri metadataUri ?: string
signature signature : string
diff --git a/docs/interfaces/PythFetchPriceResponse.html b/docs/interfaces/PythFetchPriceResponse.html
index c1a1288..b22faef 100644
--- a/docs/interfaces/PythFetchPriceResponse.html
+++ b/docs/interfaces/PythFetchPriceResponse.html
@@ -1,6 +1,7 @@
-
PythFetchPriceResponse | solana-agent-kit Interface PythFetchPriceResponse IndexProperties code?
+
PythFetchPriceResponse | solana-agent-kit Interface PythFetchPriceResponse PropertiesOptionalcode code ?: string
Optionalmessage message ?: string
Optionalprice price ?: string
price FeedID price FeedID : string
status status : "success" | "error"
+
token Symbol
+
PropertiesOptionalcode code ?: string
Optionalmessage message ?: string
Optionalprice price ?: string
Optionalprice FeedID priceFeedID ?: string
status status : "success" | "error"
token Symbol tokenSymbol : string
diff --git a/docs/interfaces/PythPriceFeedIDItem.html b/docs/interfaces/PythPriceFeedIDItem.html
new file mode 100644
index 0000000..26c3c7c
--- /dev/null
+++ b/docs/interfaces/PythPriceFeedIDItem.html
@@ -0,0 +1,3 @@
+
PythPriceFeedIDItem | solana-agent-kit Interface PythPriceFeedIDItem interface PythPriceFeedIDItem { attributes : { asset_type : string ; base : string } ; id : string ; } Propertiesattributes attributes : { asset_type : string ; base : string }
diff --git a/docs/interfaces/PythPriceItem.html b/docs/interfaces/PythPriceItem.html
new file mode 100644
index 0000000..4a8f6bc
--- /dev/null
+++ b/docs/interfaces/PythPriceItem.html
@@ -0,0 +1,3 @@
+
PythPriceItem | solana-agent-kit interface PythPriceItem { binary : { data : string [] ; encoding : string } ; parsed : [ { ema_price : { conf : string ; expo : number ; price : string ; publish_time : number ; } ; id : string ; metadata : { prev_publish_time : number ; proof_available_time : number ; slot : number ; } ; price : { conf : string ; expo : number ; price : string ; publish_time : number ; } ; } [] , ] ; } Propertiesbinary binary : { data : string [] ; encoding : string }
parsed parsed : [ { ema_price : { conf : string ; expo : number ; price : string ; publish_time : number ; } ; id : string ; metadata : { prev_publish_time : number ; proof_available_time : number ; slot : number ; } ; price : { conf : string ; expo : number ; price : string ; publish_time : number } ; } [] , ]
diff --git a/docs/interfaces/TokenCheck.html b/docs/interfaces/TokenCheck.html
new file mode 100644
index 0000000..fae93c8
--- /dev/null
+++ b/docs/interfaces/TokenCheck.html
@@ -0,0 +1,5 @@
+
TokenCheck | solana-agent-kit interface TokenCheck { risks : { description : string ; level : string ; name : string ; score : number ; } [] ; score : number ; tokenProgram : string ; tokenType : string ; } Propertiesrisks risks : { description : string ; level : string ; name : string ; score : number } []
token Program tokenProgram : string
token Type tokenType : string
diff --git a/docs/modules.html b/docs/modules.html
index fba41cb..b8e5d93 100644
--- a/docs/modules.html
+++ b/docs/modules.html
@@ -1,14 +1 @@
-
solana-agent-kit
+
solana-agent-kit
diff --git a/docs/types/Handler.html b/docs/types/Handler.html
new file mode 100644
index 0000000..fca3028
--- /dev/null
+++ b/docs/types/Handler.html
@@ -0,0 +1,2 @@
+
Handler | solana-agent-kit Handler : ( agent : SolanaAgentKit , input : Record < string , any > , ) => Promise < Record < string , any > > Type declaration ( agent : SolanaAgentKit , input : Record < string , any > , ) : Promise < Record < string , any > > Returns Promise < Record < string , any > >
diff --git a/docs/variables/actions.html b/docs/variables/actions.html
new file mode 100644
index 0000000..67af484
--- /dev/null
+++ b/docs/variables/actions.html
@@ -0,0 +1 @@
+
ACTIONS | solana-agent-kit ACTIONS : { BALANCE_ACTION : Action ; CREATE_GIBWORK_TASK_ACTION : Action ; CREATE_IMAGE_ACTION : Action ; CREATE_ORCA_SINGLE_SIDED_WHIRLPOOL_ACTION : Action ; DEPLOY_COLLECTION_ACTION : Action ; DEPLOY_TOKEN_ACTION : Action ; FETCH_PRICE_ACTION : Action ; GET_ALL_DOMAINS_TLDS_ACTION : Action ; GET_ALL_REGISTERED_ALL_DOMAINS_ACTION : Action ; GET_MAIN_ALL_DOMAINS_DOMAIN_ACTION : Action ; GET_OWNED_ALL_DOMAINS_ACTION : Action ; GET_OWNED_DOMAINS_FOR_TLD_ACTION : Action ; GET_PRIMARY_DOMAIN_ACTION : Action ; GET_TOKEN_DATA_ACTION : Action ; GET_TPS_ACTION : Action ; LAUNCH_PUMPFUN_TOKEN_ACTION : Action ; LEND_ASSET_ACTION : Action ; MINT_NFT_ACTION : Action ; PYTH_FETCH_PRICE_ACTION : Action ; RAYDIUM_CREATE_AMM_V4_ACTION : Action ; RAYDIUM_CREATE_CPMM_ACTION : Action ; REGISTER_DOMAIN_ACTION : Action ; REQUEST_FUNDS_ACTION : Action ; RESOLVE_DOMAIN_ACTION : Action ; RESOLVE_SOL_DOMAIN_ACTION : Action ; STAKE_WITH_JUP_ACTION : Action ; STAKE_WITH_SOLAYER_ACTION : Action ; TRADE_ACTION : Action ; TRANSFER_ACTION : Action ; WALLET_ADDRESS_ACTION : Action ; } = ...
Type declaration BALANCE_ACTION : Action CREATE_GIBWORK_TASK_ACTION : Action CREATE_IMAGE_ACTION : Action CREATE_ORCA_SINGLE_SIDED_WHIRLPOOL_ACTION : Action DEPLOY_COLLECTION_ACTION : Action DEPLOY_TOKEN_ACTION : Action FETCH_PRICE_ACTION : Action GET_ALL_DOMAINS_TLDS_ACTION : Action GET_ALL_REGISTERED_ALL_DOMAINS_ACTION : Action GET_MAIN_ALL_DOMAINS_DOMAIN_ACTION : Action GET_OWNED_ALL_DOMAINS_ACTION : Action GET_OWNED_DOMAINS_FOR_TLD_ACTION : Action GET_PRIMARY_DOMAIN_ACTION : Action GET_TOKEN_DATA_ACTION : Action GET_TPS_ACTION : Action LAUNCH_PUMPFUN_TOKEN_ACTION : Action LEND_ASSET_ACTION : Action MINT_NFT_ACTION : Action PYTH_FETCH_PRICE_ACTION : Action RAYDIUM_CREATE_AMM_V4_ACTION : Action RAYDIUM_CREATE_CPMM_ACTION : Action REGISTER_DOMAIN_ACTION : Action REQUEST_FUNDS_ACTION : Action RESOLVE_DOMAIN_ACTION : Action RESOLVE_SOL_DOMAIN_ACTION : Action STAKE_WITH_JUP_ACTION : Action STAKE_WITH_SOLAYER_ACTION : Action TRADE_ACTION : Action TRANSFER_ACTION : Action WALLET_ADDRESS_ACTION : Action
diff --git a/examples/agent-kit-nextjs-langchain/.env.example b/examples/agent-kit-nextjs-langchain/.env.example
new file mode 100644
index 0000000..99650b7
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/.env.example
@@ -0,0 +1,4 @@
+LANGCHAIN_CALLBACKS_BACKGROUND=false
+OPENAI_API_KEY=
+RPC_URL=
+SOLANA_PRIVATE_KEY=
diff --git a/examples/agent-kit-nextjs-langchain/.eslintrc.json b/examples/agent-kit-nextjs-langchain/.eslintrc.json
new file mode 100644
index 0000000..bffb357
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/.eslintrc.json
@@ -0,0 +1,3 @@
+{
+ "extends": "next/core-web-vitals"
+}
diff --git a/examples/agent-kit-nextjs-langchain/.gitignore b/examples/agent-kit-nextjs-langchain/.gitignore
new file mode 100644
index 0000000..d1e196e
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/.gitignore
@@ -0,0 +1,43 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# local env files
+.env*.local
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
+
+.yarn/*
+!.yarn/patches
+!.yarn/plugins
+!.yarn/releases
+!.yarn/sdks
+!.yarn/versions
+.env
\ No newline at end of file
diff --git a/examples/agent-kit-nextjs-langchain/.prettierrc.json b/examples/agent-kit-nextjs-langchain/.prettierrc.json
new file mode 100644
index 0000000..0967ef4
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/.prettierrc.json
@@ -0,0 +1 @@
+{}
diff --git a/examples/agent-kit-nextjs-langchain/LICENSE b/examples/agent-kit-nextjs-langchain/LICENSE
new file mode 100644
index 0000000..136a251
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 LangChain
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/examples/agent-kit-nextjs-langchain/README.md b/examples/agent-kit-nextjs-langchain/README.md
new file mode 100644
index 0000000..fafec02
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/README.md
@@ -0,0 +1,56 @@
+# SolanaAgentKit 🦜️🔗 LangChain + Next.js Starter Template
+
+[](https://codespaces.new/michaelessiet/solana-agent-nextjs-starter-langchain)
+[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fsendaifun%2Fsolana-agent-kit%2Ftree%2Fmain%2Fexamples%2Fagent-kit-nextjs-langchain&env=OPENAI_API_KEY,RPC_URL,SOLANA_PRIVATE_KEY&project-name=solana-agent-kit&repository-name=sak-yourprojectname)
+
+This template scaffolds a SolanaAgentKit + LangChain.js + Next.js starter app.
+
+The agent uses [LangGraph.js](https://langchain-ai.github.io/langgraphjs/), LangChain's framework for building agentic workflows. They use preconfigured helper functions to minimize boilerplate, but you can replace them with custom graphs as desired.
+
+
+
+It's free-tier friendly too! Check out the [bundle size stats below](#-bundle-size).
+
+## 🚀 Getting Started
+
+First, clone this repo and download it locally.
+
+Next, you'll need to set up environment variables in your repo's `.env.local` file. Copy the `.env.example` file to `.env.local`.
+To start, you'll just need to add your OpenAI API key, Solana RPC URL and wallet private key in base 58 string form.
+
+Next, install the required packages using your preferred package manager (e.g. `pnpm`).
+
+```bash
+pnpm install
+```
+
+Now you're ready to run the development server:
+
+```bash
+pnpm dev
+```
+
+Open [http://localhost:3000](http://localhost:3000) with your browser to see the result! Ask the bot something and you'll see a streamed response:
+
+
+
+You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
+
+Backend logic lives in `app/api/chat/route.ts`. From here, you can change the prompt and model, or add other modules and logic.
+
+## 📚 Learn More
+
+To learn more about what you can do with SolanaAgentKit and LangChain.js, check out the docs here:
+
+- https://github.com/sendaifun/solana-agent-kit
+- https://js.langchain.com/docs/
+
+## ▲ Deploy on Vercel
+
+When ready, you can deploy your app on the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme).
+
+Check out the [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
+
+## Thank You!
+
+Thanks for reading! If you have any questions or comments, please drop an issue on this repo or reach out to us on [X](https://x.com/sendaifun)
diff --git a/examples/agent-kit-nextjs-langchain/app/api/chat/route.ts b/examples/agent-kit-nextjs-langchain/app/api/chat/route.ts
new file mode 100644
index 0000000..badd6b3
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/app/api/chat/route.ts
@@ -0,0 +1,71 @@
+import { NextRequest, NextResponse } from "next/server";
+import { ChatOpenAI } from "@langchain/openai";
+import { MemorySaver } from "@langchain/langgraph";
+import { createReactAgent } from "@langchain/langgraph/prebuilt";
+import { SolanaAgentKit, createSolanaTools } from "solana-agent-kit";
+
+const llm = new ChatOpenAI({
+ temperature: 0.7,
+ model: "gpt-4o-mini",
+});
+
+const solanaAgent = new SolanaAgentKit(
+ process.env.SOLANA_PRIVATE_KEY!,
+ process.env.RPC_URL,
+ process.env.OPENAI_API_KEY!,
+);
+
+const tools = createSolanaTools(solanaAgent);
+const memory = new MemorySaver();
+
+const agent = createReactAgent({
+ llm,
+ tools,
+ checkpointSaver: memory,
+ messageModifier: `
+ You are a helpful agent that can interact onchain using the Solana Agent Kit. You are
+ empowered to interact onchain using your tools. If you ever need funds, you can request them from the
+ faucet. If not, you can provide your wallet details and request funds from the user. If there is a 5XX
+ (internal) HTTP error code, ask the user to try again later. If someone asks you to do something you
+ can't do with your currently available tools, you must say so, and encourage them to implement it
+ themselves using the Solana Agent Kit, recommend they go to https://www.solanaagentkit.xyz for more information. Be
+ concise and helpful with your responses. Refrain from restating your tools' descriptions unless it is explicitly requested.
+ `,
+});
+
+export async function POST(req: NextRequest) {
+ try {
+ const body = await req.json();
+ const messages = body.messages ?? [];
+
+ const eventStream = agent.streamEvents(
+ {
+ messages,
+ },
+ {
+ version: "v2",
+ configurable: {
+ thread_id: "Solana Agent Kit!",
+ },
+ },
+ );
+
+ const textEncoder = new TextEncoder();
+ const transformStream = new ReadableStream({
+ async start(controller) {
+ for await (const { event, data } of eventStream) {
+ if (event === "on_chat_model_stream") {
+ if (data.chunk.content) {
+ controller.enqueue(textEncoder.encode(data.chunk.content));
+ }
+ }
+ }
+ controller.close();
+ },
+ });
+
+ return new Response(transformStream);
+ } catch (e: any) {
+ return NextResponse.json({ error: e.message }, { status: e.status ?? 500 });
+ }
+}
diff --git a/examples/agent-kit-nextjs-langchain/app/globals.css b/examples/agent-kit-nextjs-langchain/app/globals.css
new file mode 100644
index 0000000..bbdc80a
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/app/globals.css
@@ -0,0 +1,33 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+body {
+ color: #f8f8f8;
+ background: #131318;
+}
+
+body input,
+body textarea {
+ color: black;
+}
+
+a {
+ color: #2d7bd4;
+}
+
+a:hover {
+ border-bottom: 1px solid;
+}
+
+p {
+ margin: 8px 0;
+}
+
+code {
+ color: #ffa500;
+}
+
+li {
+ padding: 4px;
+}
diff --git a/examples/agent-kit-nextjs-langchain/app/layout.tsx b/examples/agent-kit-nextjs-langchain/app/layout.tsx
new file mode 100644
index 0000000..0b627ec
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/app/layout.tsx
@@ -0,0 +1,45 @@
+import "./globals.css";
+import { Public_Sans } from "next/font/google";
+
+const publicSans = Public_Sans({ subsets: ["latin"] });
+
+export default function RootLayout({
+ children,
+}: {
+ children: React.ReactNode;
+}) {
+ return (
+
+
+
SolanaAgentKit + LangChain + Next.js Template
+
+
+
+
+
+
+
+
+
+
+
+
{children}
+
+
+ );
+}
diff --git a/examples/agent-kit-nextjs-langchain/app/page.tsx b/examples/agent-kit-nextjs-langchain/app/page.tsx
new file mode 100644
index 0000000..a9eb072
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/app/page.tsx
@@ -0,0 +1,75 @@
+import { ChatWindow } from "@/components/ChatWindow";
+
+export default function Home() {
+ const InfoCard = (
+
+
+ SolanaAgentKit + LangChain.js 🦜🔗 + Next.js
+
+
+
+ 🤝
+
+ This template showcases a simple agent chatbot using{" "}
+ SolanaAgentKit
+ {", "}
+
+ LangChain.js
+ {" "}
+ and the Vercel{" "}
+
+ AI SDK
+ {" "}
+ in a{" "}
+
+ Next.js
+ {" "}
+ project.
+
+
+
+ 💻
+
+ You can find the prompt and model logic for this use-case in{" "}
+ app/api/chat/route.ts.
+
+
+
+ 🎨
+
+ The main frontend logic is found in app/page.tsx.
+
+
+
+ 🐙
+
+ This template is open source - you can see the source code and
+ deploy your own version{" "}
+
+ from the GitHub repo
+
+ !
+
+
+
+ 👇
+
+ Try asking e.g. What is my wallet address? below!
+
+
+
+
+ );
+ return (
+
+ );
+}
diff --git a/examples/agent-kit-nextjs-langchain/components/ChatMessageBubble.tsx b/examples/agent-kit-nextjs-langchain/components/ChatMessageBubble.tsx
new file mode 100644
index 0000000..aef1231
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/components/ChatMessageBubble.tsx
@@ -0,0 +1,58 @@
+import markdownToHtml from "@/utils/markdownToHTML";
+import type { Message } from "ai/react";
+import { useMemo } from "react";
+
+export function ChatMessageBubble(props: {
+ message: Message;
+ aiEmoji?: string;
+ sources: any[];
+}) {
+ const colorClassName =
+ props.message.role === "user" ? "bg-sky-600" : "bg-slate-50 text-black";
+ const alignmentClassName =
+ props.message.role === "user" ? "ml-auto" : "mr-auto";
+ const prefix = props.message.role === "user" ? "🧑" : props.aiEmoji;
+
+ const content = useMemo(() => {
+ return markdownToHtml(props.message.content);
+ }, [props.message.content]);
+
+ return (
+
+
{prefix}
+
+
+ {props.sources && props.sources.length ? (
+ <>
+
+ 🔍 Sources:
+
+
+ {props.sources?.map((source, i) => (
+
+ {i + 1}. "{source.pageContent}"
+ {source.metadata?.loc?.lines !== undefined ? (
+
+
+ Lines {source.metadata?.loc?.lines?.from} to{" "}
+ {source.metadata?.loc?.lines?.to}
+
+ ) : (
+ ""
+ )}
+
+ ))}
+
+ >
+ ) : (
+ ""
+ )}
+
+
+ );
+}
diff --git a/examples/agent-kit-nextjs-langchain/components/ChatWindow.tsx b/examples/agent-kit-nextjs-langchain/components/ChatWindow.tsx
new file mode 100644
index 0000000..b1f0d90
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/components/ChatWindow.tsx
@@ -0,0 +1,248 @@
+"use client";
+
+import { ToastContainer, toast } from "react-toastify";
+import "react-toastify/dist/ReactToastify.css";
+
+import { Message } from "ai";
+import { useChat } from "ai/react";
+import { useRef, useState, ReactElement } from "react";
+import type { FormEvent } from "react";
+
+import { ChatMessageBubble } from "@/components/ChatMessageBubble";
+import { IntermediateStep } from "./IntermediateStep";
+
+export function ChatWindow(props: {
+ endpoint: string;
+ emptyStateComponent: ReactElement;
+ placeholder?: string;
+ titleText?: string;
+ emoji?: string;
+ showIntermediateStepsToggle?: boolean;
+}) {
+ const messageContainerRef = useRef
(null);
+
+ const {
+ endpoint,
+ emptyStateComponent,
+ placeholder,
+ titleText = "An LLM",
+ showIntermediateStepsToggle,
+ emoji,
+ } = props;
+
+ const [showIntermediateSteps, setShowIntermediateSteps] = useState(false);
+ const [intermediateStepsLoading, setIntermediateStepsLoading] =
+ useState(false);
+ const intemediateStepsToggle = showIntermediateStepsToggle && (
+
+ setShowIntermediateSteps(e.target.checked)}
+ >
+ Show intermediate steps
+
+ );
+
+ const [sourcesForMessages, setSourcesForMessages] = useState<
+ Record
+ >({});
+
+ const {
+ messages,
+ input,
+ setInput,
+ handleInputChange,
+ handleSubmit,
+ isLoading: chatEndpointIsLoading,
+ setMessages,
+ } = useChat({
+ api: endpoint,
+ onResponse(response) {
+ const sourcesHeader = response.headers.get("x-sources");
+ const sources = sourcesHeader
+ ? JSON.parse(Buffer.from(sourcesHeader, "base64").toString("utf8"))
+ : [];
+ const messageIndexHeader = response.headers.get("x-message-index");
+ if (sources.length && messageIndexHeader !== null) {
+ setSourcesForMessages({
+ ...sourcesForMessages,
+ [messageIndexHeader]: sources,
+ });
+ }
+ },
+ streamMode: "text",
+ onError: (e) => {
+ toast(e.message, {
+ theme: "dark",
+ });
+ },
+ });
+
+ async function sendMessage(e: FormEvent) {
+ e.preventDefault();
+ if (messageContainerRef.current) {
+ messageContainerRef.current.classList.add("grow");
+ }
+ if (!messages.length) {
+ await new Promise((resolve) => setTimeout(resolve, 300));
+ }
+ if (chatEndpointIsLoading ?? intermediateStepsLoading) {
+ return;
+ }
+ if (!showIntermediateSteps) {
+ handleSubmit(e);
+ // Some extra work to show intermediate steps properly
+ } else {
+ setIntermediateStepsLoading(true);
+ setInput("");
+ const messagesWithUserReply = messages.concat({
+ id: messages.length.toString(),
+ content: input,
+ role: "user",
+ });
+ setMessages(messagesWithUserReply);
+ const response = await fetch(endpoint, {
+ method: "POST",
+ body: JSON.stringify({
+ messages: messagesWithUserReply,
+ show_intermediate_steps: true,
+ }),
+ });
+ const json = await response.json();
+ setIntermediateStepsLoading(false);
+ if (response.status === 200) {
+ const responseMessages: Message[] = json.messages;
+ // Represent intermediate steps as system messages for display purposes
+ // TODO: Add proper support for tool messages
+ const toolCallMessages = responseMessages.filter(
+ (responseMessage: Message) => {
+ return (
+ (responseMessage.role === "assistant" &&
+ !!responseMessage.tool_calls?.length) ||
+ responseMessage.role === "tool"
+ );
+ },
+ );
+ const intermediateStepMessages = [];
+ for (let i = 0; i < toolCallMessages.length; i += 2) {
+ const aiMessage = toolCallMessages[i];
+ const toolMessage = toolCallMessages[i + 1];
+ intermediateStepMessages.push({
+ id: (messagesWithUserReply.length + i / 2).toString(),
+ role: "system" as const,
+ content: JSON.stringify({
+ action: aiMessage.tool_calls?.[0],
+ observation: toolMessage.content,
+ }),
+ });
+ }
+ const newMessages = messagesWithUserReply;
+ for (const message of intermediateStepMessages) {
+ newMessages.push(message);
+ setMessages([...newMessages]);
+ await new Promise((resolve) =>
+ setTimeout(resolve, 1000 + Math.random() * 1000),
+ );
+ }
+ setMessages([
+ ...newMessages,
+ {
+ id: newMessages.length.toString(),
+ content: responseMessages[responseMessages.length - 1].content,
+ role: "assistant",
+ },
+ ]);
+ } else {
+ if (json.error) {
+ toast(json.error, {
+ theme: "dark",
+ });
+ throw new Error(json.error);
+ }
+ }
+ }
+ }
+
+ return (
+ 0 ? "border" : ""}`}
+ >
+
0 ? "" : "hidden"} text-2xl`}>
+ {emoji} {titleText}
+
+ {messages.length === 0 ? emptyStateComponent : ""}
+
+ {messages.length > 0
+ ? [...messages].reverse().map((m, i) => {
+ const sourceKey = (messages.length - 1 - i).toString();
+ return m.role === "system" ? (
+
+ ) : (
+
+ );
+ })
+ : ""}
+
+
+
+
+
+ );
+}
diff --git a/examples/agent-kit-nextjs-langchain/components/IntermediateStep.tsx b/examples/agent-kit-nextjs-langchain/components/IntermediateStep.tsx
new file mode 100644
index 0000000..5ec1fc0
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/components/IntermediateStep.tsx
@@ -0,0 +1,50 @@
+import { useState } from "react";
+import type { Message } from "ai/react";
+
+export function IntermediateStep(props: { message: Message }) {
+ const parsedInput = JSON.parse(props.message.content);
+ const action = parsedInput.action;
+ const observation = parsedInput.observation;
+ const [expanded, setExpanded] = useState(false);
+ return (
+
+
setExpanded(!expanded)}
+ >
+
+ 🛠 {action.name}
+
+ 🔽
+ 🔼
+
+
+
+
+ Tool Input:
+
+
+ {JSON.stringify(action.args)}
+
+
+
+
+ {observation}
+
+
+
+
+ );
+}
diff --git a/examples/agent-kit-nextjs-langchain/data/DefaultRetrievalText.ts b/examples/agent-kit-nextjs-langchain/data/DefaultRetrievalText.ts
new file mode 100644
index 0000000..6973d98
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/data/DefaultRetrievalText.ts
@@ -0,0 +1,540 @@
+export default `# QA and Chat over Documents
+
+Chat and Question-Answering (QA) over \`data\` are popular LLM use-cases.
+
+\`data\` can include many things, including:
+
+* \`Unstructured data\` (e.g., PDFs)
+* \`Structured data\` (e.g., SQL)
+* \`Code\` (e.g., Python)
+
+Below we will review Chat and QA on \`Unstructured data\`.
+
+
+
+\`Unstructured data\` can be loaded from many sources.
+
+Check out the [document loader integrations here](/docs/modules/data_connection/document_loaders/) to browse the set of supported loaders.
+
+Each loader returns data as a LangChain \`Document\`.
+
+\`Documents\` are turned into a Chat or QA app following the general steps below:
+
+* \`Splitting\`: [Text splitters](/docs/modules/data_connection/document_transformers/) break \`Documents\` into splits of specified size
+* \`Storage\`: Storage (e.g., often a [vectorstore](/docs/modules/data_connection/vectorstores/)) will house [and often embed](https://www.pinecone.io/learn/vector-embeddings/) the splits
+* \`Retrieval\`: The app retrieves splits from storage (e.g., often [with similar embeddings](https://www.pinecone.io/learn/k-nearest-neighbor/) to the input question)
+* \`Output\`: An [LLM](/docs/modules/model_io/models/llms/) produces an answer using a prompt that includes the question and the retrieved splits
+
+
+
+## Quickstart
+
+Let's load this [blog post](https://lilianweng.github.io/posts/2023-06-23-agent/) on agents as an example \`Document\`.
+
+We'll have a QA app in a few lines of code.
+
+First, set environment variables and install packages required for the guide:
+
+\`\`\`shell
+> yarn add cheerio
+# Or load env vars in your preferred way:
+> export OPENAI_API_KEY="..."
+\`\`\`
+
+## 1. Loading, Splitting, Storage
+
+### 1.1 Getting started
+
+Specify a \`Document\` loader.
+
+\`\`\`typescript
+// Document loader
+import { CheerioWebBaseLoader } from "langchain/document_loaders/web/cheerio";
+
+const loader = new CheerioWebBaseLoader(
+ "https://lilianweng.github.io/posts/2023-06-23-agent/"
+);
+const data = await loader.load();
+\`\`\`
+
+Split the \`Document\` into chunks for embedding and vector storage.
+
+
+\`\`\`typescript
+import { RecursiveCharacterTextSplitter } from "langchain/text_splitter";
+
+const textSplitter = new RecursiveCharacterTextSplitter({
+ chunkSize: 500,
+ chunkOverlap: 0,
+});
+
+const splitDocs = await textSplitter.splitDocuments(data);
+\`\`\`
+
+Embed and store the splits in a vector database (for demo purposes we use an unoptimized, in-memory example but you can [browse integrations here](/docs/modules/data_connection/vectorstores/integrations/)):
+
+
+\`\`\`typescript
+import { OpenAIEmbeddings } from "langchain/embeddings/openai";
+import { MemoryVectorStore } from "langchain/vectorstores/memory";
+
+const embeddings = new OpenAIEmbeddings();
+
+const vectorStore = await MemoryVectorStore.fromDocuments(splitDocs, embeddings);
+\`\`\`
+
+Here are the three pieces together:
+
+
+
+### 1.2 Going Deeper
+
+#### 1.2.1 Integrations
+
+\`Document Loaders\`
+
+* Browse document loader integrations [here](/docs/modules/data_connection/document_loaders/).
+
+* See further documentation on loaders [here](/docs/modules/data_connection/document_loaders/).
+
+\`Document Transformers\`
+
+* All can ingest loaded \`Documents\` and process them (e.g., split).
+
+* See further documentation on transformers [here](/docs/modules/data_connection/document_transformers/).
+
+\`Vectorstores\`
+
+* Browse vectorstore integrations [here](/docs/modules/data_connection/vectorstores/integrations/).
+
+* See further documentation on vectorstores [here](/docs/modules/data_connection/vectorstores/).
+
+## 2. Retrieval
+
+### 2.1 Getting started
+
+Retrieve [relevant splits](https://www.pinecone.io/learn/what-is-similarity-search/) for any question using \`similarity_search\`.
+
+
+\`\`\`typescript
+const relevantDocs = await vectorStore.similaritySearch("What is task decomposition?");
+
+console.log(relevantDocs.length);
+
+// 4
+\`\`\`
+
+
+### 2.2 Going Deeper
+
+#### 2.2.1 Retrieval
+
+Vectorstores are commonly used for retrieval.
+
+But, they are not the only option.
+
+For example, SVMs (see thread [here](https://twitter.com/karpathy/status/1647025230546886658?s=20)) can also be used.
+
+LangChain [has many retrievers and retrieval methods](/docs/modules/data_connection/retrievers/) including, but not limited to, vectorstores.
+
+All retrievers implement some common methods, such as \`getRelevantDocuments()\`.
+
+
+## 3. QA
+
+### 3.1 Getting started
+
+Distill the retrieved documents into an answer using an LLM (e.g., \`gpt-3.5-turbo\`) with \`RetrievalQA\` chain.
+
+
+\`\`\`typescript
+import { RetrievalQAChain } from "langchain/chains";
+import { ChatOpenAI } from "langchain/chat_models/openai";
+
+const model = new ChatOpenAI({ model: "gpt-3.5-turbo" });
+const chain = RetrievalQAChain.fromLLM(model, vectorstore.asRetriever());
+
+const response = await chain.call({
+ query: "What is task decomposition?"
+});
+console.log(response);
+
+/*
+ {
+ text: 'Task decomposition refers to the process of breaking down a larger task into smaller, more manageable subgoals. By decomposing a task, it becomes easier for an agent or system to handle complex tasks efficiently. Task decomposition can be done through various methods such as using prompting or task-specific instructions, or through human inputs. It helps in planning and organizing the steps required to complete a task effectively.'
+ }
+*/
+\`\`\`
+
+### 3.2 Going Deeper
+
+#### 3.2.1 Integrations
+
+\`LLMs\`
+
+* Browse LLM integrations and further documentation [here](/docs/modules/model_io/models/).
+
+#### 3.2.2 Customizing the prompt
+
+The prompt in \`RetrievalQA\` chain can be customized as follows.
+
+
+\`\`\`typescript
+import { RetrievalQAChain } from "langchain/chains";
+import { ChatOpenAI } from "langchain/chat_models/openai";
+import { PromptTemplate } from "langchain/prompts";
+
+const model = new ChatOpenAI({ model: "gpt-3.5-turbo" });
+
+const template = \`Use the following pieces of context to answer the question at the end.
+If you don't know the answer, just say that you don't know, don't try to make up an answer.
+Use three sentences maximum and keep the answer as concise as possible.
+Always say "thanks for asking!" at the end of the answer.
+{context}
+Question: {question}
+Helpful Answer:\`;
+
+const chain = RetrievalQAChain.fromLLM(model, vectorstore.asRetriever(), {
+ prompt: PromptTemplate.fromTemplate(template),
+});
+
+const response = await chain.call({
+ query: "What is task decomposition?"
+});
+
+console.log(response);
+
+/*
+ {
+ text: 'Task decomposition is the process of breaking down a large task into smaller, more manageable subgoals. This allows for efficient handling of complex tasks and aids in planning and organizing the steps needed to achieve the overall goal. Thanks for asking!'
+ }
+*/
+\`\`\`
+
+
+#### 3.2.3 Returning source documents
+
+The full set of retrieved documents used for answer distillation can be returned using \`return_source_documents=True\`.
+
+
+\`\`\`typescript
+import { RetrievalQAChain } from "langchain/chains";
+import { ChatOpenAI } from "langchain/chat_models/openai";
+
+const model = new ChatOpenAI({ model: "gpt-3.5-turbo" });
+
+const chain = RetrievalQAChain.fromLLM(model, vectorstore.asRetriever(), {
+ returnSourceDocuments: true
+});
+
+const response = await chain.call({
+ query: "What is task decomposition?"
+});
+
+console.log(response.sourceDocuments[0]);
+
+/*
+Document {
+ pageContent: 'Task decomposition can be done (1) by LLM with simple prompting like "Steps for XYZ.\\n1.", "What are the subgoals for achieving XYZ?", (2) by using task-specific instructions; e.g. "Write a story outline." for writing a novel, or (3) with human inputs.',
+ metadata: [Object]
+}
+*/
+\`\`\`
+
+
+#### 3.2.4 Customizing retrieved docs in the LLM prompt
+
+Retrieved documents can be fed to an LLM for answer distillation in a few different ways.
+
+\`stuff\`, \`refine\`, and \`map-reduce\` chains for passing documents to an LLM prompt are well summarized [here](/docs/modules/chains/document/).
+
+\`stuff\` is commonly used because it simply "stuffs" all retrieved documents into the prompt.
+
+The [loadQAChain](/docs/modules/chains/document/) methods are easy ways to pass documents to an LLM using these various approaches.
+
+
+\`\`\`typescript
+import { loadQAStuffChain } from "langchain/chains";
+
+const stuffChain = loadQAStuffChain(model);
+
+const stuffResult = await stuffChain.call({
+ input_documents: relevantDocs,
+ question: "What is task decomposition
+});
+
+console.log(stuffResult);
+/*
+{
+ text: 'Task decomposition is the process of breaking down a large task into smaller, more manageable subgoals or steps. This allows for efficient handling of complex tasks by focusing on one subgoal at a time. Task decomposition can be done through various methods such as using simple prompting, task-specific instructions, or human inputs.'
+}
+*/
+\`\`\`
+
+## 4. Chat
+
+### 4.1 Getting started
+
+To keep chat history, we use a variant of the previous chain called a \`ConversationalRetrievalQAChain\`.
+First, specify a \`Memory buffer\` to track the conversation inputs / outputs.
+
+
+\`\`\`typescript
+import { ConversationalRetrievalQAChain } from "langchain/chains";
+import { BufferMemory } from "langchain/memory";
+import { ChatOpenAI } from "langchain/chat_models/openai";
+
+const memory = new BufferMemory({
+ memoryKey: "chat_history",
+ returnMessages: true,
+});
+\`\`\`
+
+Next, we initialize and call the chain:
+
+\`\`\`typescript
+const model = new ChatOpenAI({ model: "gpt-3.5-turbo" });
+const chain = ConversationalRetrievalQAChain.fromLLM(model, vectorstore.asRetriever(), {
+ memory
+});
+
+const result = await chain.call({
+ question: "What are some of the main ideas in self-reflection?"
+});
+console.log(result);
+
+/*
+{
+ text: 'Some main ideas in self-reflection include:\n' +
+ '\n' +
+ '1. Iterative Improvement: Self-reflection allows autonomous agents to improve by continuously refining past action decisions and correcting mistakes.\n' +
+ '\n' +
+ '2. Trial and Error: Self-reflection plays a crucial role in real-world tasks where trial and error are inevitable. It helps agents learn from failed trajectories and make adjustments for future actions.\n' +
+ '\n' +
+ '3. Constructive Criticism: Agents engage in constructive self-criticism of their big-picture behavior to identify areas for improvement.\n' +
+ '\n' +
+ '4. Decision and Strategy Refinement: Reflection on past decisions and strategies enables agents to refine their approach and make more informed choices.\n' +
+ '\n' +
+ '5. Efficiency and Optimization: Self-reflection encourages agents to be smart and efficient in their actions, aiming to complete tasks in the least number of steps.\n' +
+ '\n' +
+ 'These ideas highlight the importance of self-reflection in enhancing performance and guiding future actions.'
+}
+*/
+\`\`\`
+
+
+The \`Memory buffer\` has context to resolve \`"it"\` ("self-reflection") in the below question.
+
+
+\`\`\`typescript
+const followupResult = await chain.call({
+ question: "How does the Reflexion paper handle it?"
+});
+console.log(followupResult);
+
+/*
+{
+ text: "The Reflexion paper introduces a framework that equips agents with dynamic memory and self-reflection capabilities to improve their reasoning skills. The approach involves showing the agent two-shot examples, where each example consists of a failed trajectory and an ideal reflection on how to guide future changes in the agent's plan. These reflections are then added to the agent's working memory as context for querying a language model. The agent uses this self-reflection information to make decisions on whether to start a new trial or continue with the current plan."
+}
+*/
+\`\`\`
+
+
+### 4.2 Going deeper
+
+The [documentation](/docs/modules/chains/popular/chat_vector_db) on \`ConversationalRetrievalQAChain\` offers a few extensions, such as streaming and source documents.
+
+
+# Conversational Retrieval Agents
+
+This is an agent specifically optimized for doing retrieval when necessary while holding a conversation and being able
+to answer questions based on previous dialogue in the conversation.
+
+To start, we will set up the retriever we want to use, then turn it into a retriever tool. Next, we will use the high-level constructor for this type of agent.
+Finally, we will walk through how to construct a conversational retrieval agent from components.
+
+## The Retriever
+
+To start, we need a retriever to use! The code here is mostly just example code. Feel free to use your own retriever and skip to the next section on creating a retriever tool.
+
+\`\`\`typescript
+import { FaissStore } from "langchain/vectorstores/faiss";
+import { OpenAIEmbeddings } from "langchain/embeddings/openai";
+import { TextLoader } from "langchain/document_loaders/fs/text";
+import { RecursiveCharacterTextSplitter } from "langchain/text_splitter";
+
+const loader = new TextLoader("state_of_the_union.txt");
+const docs = await loader.load();
+const splitter = new RecursiveCharacterTextSplitter({
+ chunkSize: 1000,
+ chunkOverlap: 0
+});
+
+const texts = await splitter.splitDocuments(docs);
+
+const vectorStore = await FaissStore.fromDocuments(texts, new OpenAIEmbeddings());
+
+const retriever = vectorStore.asRetriever();
+\`\`\`
+
+## Retriever Tool
+
+Now we need to create a tool for our retriever. The main things we need to pass in are a \`name\` for the retriever as well as a \`description\`. These will both be used by the language model, so they should be informative.
+
+\`\`\`typescript
+import { createRetrieverTool } from "langchain/agents/toolkits";
+
+const tool = createRetrieverTool(retriever, {
+ name: "search_state_of_union",
+ description: "Searches and returns documents regarding the state-of-the-union.",
+});
+\`\`\`
+
+## Agent Constructor
+
+Here, we will use the high level \`create_conversational_retrieval_agent\` API to construct the agent.
+Notice that beside the list of tools, the only thing we need to pass in is a language model to use.
+
+Under the hood, this agent is using the OpenAIFunctionsAgent, so we need to use an ChatOpenAI model.
+
+\`\`\`typescript
+import { createConversationalRetrievalAgent } from "langchain/agents/toolkits";
+import { ChatOpenAI } from "langchain/chat_models/openai";
+
+const model = new ChatOpenAI({
+ temperature: 0,
+});
+
+const executor = await createConversationalRetrievalAgent(model, [tool], {
+ verbose: true,
+});
+\`\`\`
+
+We can now try it out!
+
+\`\`\`typescript
+const result = await executor.call({
+ input: "Hi, I'm Bob!"
+});
+
+console.log(result);
+
+/*
+ {
+ output: 'Hello Bob! How can I assist you today?',
+ intermediateSteps: []
+ }
+*/
+
+const result2 = await executor.call({
+ input: "What's my name?"
+});
+
+console.log(result2);
+
+/*
+ { output: 'Your name is Bob.', intermediateSteps: [] }
+*/
+
+const result3 = await executor.call({
+ input: "What did the president say about Ketanji Brown Jackson in the most recent state of the union?"
+});
+
+console.log(result3);
+
+/*
+ {
+ output: "In the most recent state of the union, President Biden mentioned Ketanji Brown Jackson. He nominated her as a Circuit Court of Appeals judge and described her as one of the nation's top legal minds who will continue Justice Breyer's legacy of excellence. He mentioned that she has received a broad range of support, including from the Fraternal Order of Police and former judges appointed by Democrats and Republicans.",
+ intermediateSteps: [
+ {...}
+ ]
+ }
+*/
+
+const result4 = await executor.call({
+ input: "How long ago did he nominate her?"
+});
+
+console.log(result4);
+
+/*
+ {
+ output: 'President Biden nominated Ketanji Brown Jackson four days before the most recent state of the union address.',
+ intermediateSteps: []
+ }
+*/
+\`\`\`
+
+Note that for the final call, the agent used previously retrieved information to answer the query and did not need to call the tool again!
+
+Here's a trace showing how the agent fetches documents to answer the question with the retrieval tool:
+
+https://smith.langchain.com/public/1e2b1887-ca44-4210-913b-a69c1b8a8e7e/r
+
+## Creating from components
+
+What actually is going on underneath the hood? Let's take a look so we can understand how to modify things going forward.
+
+### Memory
+
+In this example, we want the agent to remember not only previous conversations, but also previous intermediate steps.
+For that, we can use \`OpenAIAgentTokenBufferMemory\`. Note that if you want to change whether the agent remembers intermediate steps,
+how the long the retained buffer is, or anything like that you should change this part.
+
+\`\`\`typescript
+import { OpenAIAgentTokenBufferMemory } from "langchain/agents/toolkits";
+
+const memory = new OpenAIAgentTokenBufferMemory({
+ llm: model,
+ memoryKey: "chat_history",
+ outputKey: "output"
+});
+\`\`\`
+
+You should make sure \`memoryKey\` is set to \`"chat_history"\` and \`outputKey\` is set to \`"output"\` for the OpenAI functions agent.
+This memory also has \`returnMessages\` set to \`true\` by default.
+
+You can also load messages from prior conversations into this memory by initializing it with a pre-loaded chat history:
+
+\`\`\`typescript
+import { ChatOpenAI } from "langchain/chat_models/openai";
+import { OpenAIAgentTokenBufferMemory } from "langchain/agents/toolkits";
+import { HumanMessage, AIMessage } from "langchain/schema";
+import { ChatMessageHistory } from "langchain/memory";
+
+const previousMessages = [
+ new HumanMessage("My name is Bob"),
+ new AIMessage("Nice to meet you, Bob!"),
+];
+
+const chatHistory = new ChatMessageHistory(previousMessages);
+
+const memory = new OpenAIAgentTokenBufferMemory({
+ llm: new ChatOpenAI({}),
+ memoryKey: "chat_history",
+ outputKey: "output",
+ chatHistory,
+});
+\`\`\`
+
+### Agent executor
+
+We can recreate the agent executor directly with the \`initializeAgentExecutorWithOptions\` method.
+This allows us to customize the agent's system message by passing in a \`prefix\` into \`agentArgs\`.
+Importantly, we must pass in \`return_intermediate_steps: true\` since we are recording that with our memory object.
+
+\`\`\`typescript
+import { initializeAgentExecutorWithOptions } from "langchain/agents";
+
+const executor = await initializeAgentExecutorWithOptions(tools, llm, {
+ agentType: "openai-functions",
+ memory,
+ returnIntermediateSteps: true,
+ agentArgs: {
+ prefix:
+ prefix ??
+ \`Do your best to answer the questions. Feel free to use any tools available to look up relevant information, only if necessary.\`,
+ },
+});
+\`\`\`
+`;
diff --git a/examples/agent-kit-nextjs-langchain/next.config.js b/examples/agent-kit-nextjs-langchain/next.config.js
new file mode 100644
index 0000000..654e669
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/next.config.js
@@ -0,0 +1,4 @@
+const withBundleAnalyzer = require('@next/bundle-analyzer')({
+ enabled: process.env.ANALYZE === 'true',
+})
+module.exports = withBundleAnalyzer({})
\ No newline at end of file
diff --git a/examples/agent-kit-nextjs-langchain/package.json b/examples/agent-kit-nextjs-langchain/package.json
new file mode 100644
index 0000000..b1eba12
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/package.json
@@ -0,0 +1,47 @@
+{
+ "name": "langchain-nextjs-template",
+ "version": "0.0.0",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start",
+ "lint": "next lint",
+ "format": "prettier --write \"app\""
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "dependencies": {
+ "@langchain/community": "^0.3.11",
+ "@langchain/core": "^0.3.17",
+ "@langchain/langgraph": "^0.2.20",
+ "@langchain/openai": "^0.3.11",
+ "@next/bundle-analyzer": "^13.4.19",
+ "@supabase/supabase-js": "^2.32.0",
+ "@tailwindcss/typography": "^0.5.15",
+ "@types/node": "20.12.12",
+ "@types/react": "18.3.2",
+ "@types/react-dom": "18.3.0",
+ "ai": "^3.1.12",
+ "autoprefixer": "10.4.14",
+ "eslint": "8.46.0",
+ "eslint-config-next": "13.4.12",
+ "isomorphic-dompurify": "^2.19.0",
+ "langchain": "^0.3.5",
+ "marked": "^15.0.4",
+ "next": "^14.2.3",
+ "postcss": "8.4.27",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
+ "react-toastify": "^9.1.3",
+ "solana-agent-kit": "^1.3.0",
+ "tailwindcss": "3.3.3",
+ "typescript": "5.1.6",
+ "zod": "^3.22.3",
+ "zod-to-json-schema": "^3.21.4"
+ },
+ "devDependencies": {
+ "prettier": "3.0.0"
+ }
+}
diff --git a/examples/agent-kit-nextjs-langchain/pnpm-lock.yaml b/examples/agent-kit-nextjs-langchain/pnpm-lock.yaml
new file mode 100644
index 0000000..1f8f265
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/pnpm-lock.yaml
@@ -0,0 +1,8019 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@langchain/community':
+ specifier: ^0.3.11
+ version: 0.3.20(@browserbasehq/sdk@2.0.0)(@browserbasehq/stagehand@1.8.0(@playwright/test@1.49.1)(bufferutil@4.0.8)(deepmerge@4.3.1)(dotenv@16.4.7)(openai@4.77.0(zod@3.24.1))(utf-8-validate@5.0.10)(zod@3.24.1))(@ibm-cloud/watsonx-ai@1.3.0)(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(@supabase/supabase-js@2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10))(axios@1.7.4)(ibm-cloud-sdk-core@5.1.0)(ignore@5.3.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(jsonwebtoken@9.0.2)(lodash@4.17.21)(openai@4.77.0(zod@3.24.1))(playwright@1.49.1)(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@langchain/core':
+ specifier: ^0.3.17
+ version: 0.3.26(openai@4.77.0(zod@3.24.1))
+ '@langchain/langgraph':
+ specifier: ^0.2.20
+ version: 0.2.36(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ '@langchain/openai':
+ specifier: ^0.3.11
+ version: 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ '@next/bundle-analyzer':
+ specifier: ^13.4.19
+ version: 13.5.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@supabase/supabase-js':
+ specifier: ^2.32.0
+ version: 2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@tailwindcss/typography':
+ specifier: ^0.5.15
+ version: 0.5.15(tailwindcss@3.3.3)
+ '@types/node':
+ specifier: 20.12.12
+ version: 20.12.12
+ '@types/react':
+ specifier: 18.3.2
+ version: 18.3.2
+ '@types/react-dom':
+ specifier: 18.3.0
+ version: 18.3.0
+ ai:
+ specifier: ^3.1.12
+ version: 3.4.33(openai@4.77.0(zod@3.24.1))(react@18.3.1)(sswr@2.1.0(svelte@5.16.0))(svelte@5.16.0)(vue@3.5.13(typescript@5.1.6))(zod@3.24.1)
+ autoprefixer:
+ specifier: 10.4.14
+ version: 10.4.14(postcss@8.4.27)
+ eslint:
+ specifier: 8.46.0
+ version: 8.46.0
+ eslint-config-next:
+ specifier: 13.4.12
+ version: 13.4.12(eslint@8.46.0)(typescript@5.1.6)
+ isomorphic-dompurify:
+ specifier: ^2.19.0
+ version: 2.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ langchain:
+ specifier: ^0.3.5
+ version: 0.3.8(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(axios@1.7.4)(openai@4.77.0(zod@3.24.1))
+ marked:
+ specifier: ^15.0.4
+ version: 15.0.4
+ next:
+ specifier: ^14.2.3
+ version: 14.2.21(@opentelemetry/api@1.9.0)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ postcss:
+ specifier: 8.4.27
+ version: 8.4.27
+ react:
+ specifier: ^18.3.1
+ version: 18.3.1
+ react-dom:
+ specifier: ^18.3.1
+ version: 18.3.1(react@18.3.1)
+ react-toastify:
+ specifier: ^9.1.3
+ version: 9.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ solana-agent-kit:
+ specifier: ^1.3.0
+ version: 1.3.0(@noble/hashes@1.6.1)(axios@1.7.4)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)(zod@3.24.1)
+ tailwindcss:
+ specifier: 3.3.3
+ version: 3.3.3
+ typescript:
+ specifier: 5.1.6
+ version: 5.1.6
+ zod:
+ specifier: ^3.22.3
+ version: 3.24.1
+ zod-to-json-schema:
+ specifier: ^3.21.4
+ version: 3.24.1(zod@3.24.1)
+ devDependencies:
+ prettier:
+ specifier: 3.0.0
+ version: 3.0.0
+
+packages:
+
+ '@ai-sdk/provider-utils@1.0.22':
+ resolution: {integrity: sha512-YHK2rpj++wnLVc9vPGzGFP3Pjeld2MwhKinetA0zKXOoHAT/Jit5O8kZsxcSlJPu9wvcGT1UGZEjZrtO7PfFOQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ zod:
+ optional: true
+
+ '@ai-sdk/provider@0.0.26':
+ resolution: {integrity: sha512-dQkfBDs2lTYpKM8389oopPdQgIU007GQyCbuPPrV+K6MtSII3HBfE0stUIMXUb44L+LK1t6GXPP7wjSzjO6uKg==}
+ engines: {node: '>=18'}
+
+ '@ai-sdk/react@0.0.70':
+ resolution: {integrity: sha512-GnwbtjW4/4z7MleLiW+TOZC2M29eCg1tOUpuEiYFMmFNZK8mkrqM0PFZMo6UsYeUYMWqEOOcPOU9OQVJMJh7IQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ react: ^18 || ^19 || ^19.0.0-rc
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ react:
+ optional: true
+ zod:
+ optional: true
+
+ '@ai-sdk/solid@0.0.54':
+ resolution: {integrity: sha512-96KWTVK+opdFeRubqrgaJXoNiDP89gNxFRWUp0PJOotZW816AbhUf4EnDjBjXTLjXL1n0h8tGSE9sZsRkj9wQQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ solid-js: ^1.7.7
+ peerDependenciesMeta:
+ solid-js:
+ optional: true
+
+ '@ai-sdk/svelte@0.0.57':
+ resolution: {integrity: sha512-SyF9ItIR9ALP9yDNAD+2/5Vl1IT6kchgyDH8xkmhysfJI6WrvJbtO1wdQ0nylvPLcsPoYu+cAlz1krU4lFHcYw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ svelte: ^3.0.0 || ^4.0.0 || ^5.0.0
+ peerDependenciesMeta:
+ svelte:
+ optional: true
+
+ '@ai-sdk/ui-utils@0.0.50':
+ resolution: {integrity: sha512-Z5QYJVW+5XpSaJ4jYCCAVG7zIAuKOOdikhgpksneNmKvx61ACFaf98pmOd+xnjahl0pIlc/QIe6O4yVaJ1sEaw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ zod:
+ optional: true
+
+ '@ai-sdk/vue@0.0.59':
+ resolution: {integrity: sha512-+ofYlnqdc8c4F6tM0IKF0+7NagZRAiqBJpGDJ+6EYhDW8FHLUP/JFBgu32SjxSxC6IKFZxEnl68ZoP/Z38EMlw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ vue: ^3.3.4
+ peerDependenciesMeta:
+ vue:
+ optional: true
+
+ '@alloc/quick-lru@5.2.0':
+ resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
+ engines: {node: '>=10'}
+
+ '@ampproject/remapping@2.3.0':
+ resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
+ engines: {node: '>=6.0.0'}
+
+ '@anthropic-ai/sdk@0.27.3':
+ resolution: {integrity: sha512-IjLt0gd3L4jlOfilxVXTifn42FnVffMgDC04RJK1KDZpmkBWLv0XC92MVVmkxrFZNS/7l3xWgP/I3nqtX1sQHw==}
+
+ '@babel/helper-string-parser@7.25.9':
+ resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/helper-validator-identifier@7.25.9':
+ resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/parser@7.26.3':
+ resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
+ '@babel/runtime@7.26.0':
+ resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==}
+ engines: {node: '>=6.9.0'}
+
+ '@babel/types@7.26.3':
+ resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==}
+ engines: {node: '>=6.9.0'}
+
+ '@bonfida/sns-records@0.0.1':
+ resolution: {integrity: sha512-i28w9+BMFufhhpmLQCNx1CKKXTsEn+5RT18VFpPqdGO3sqaYlnUWC1m3wDpOvlzGk498dljgRpRo5wmcsnuEMg==}
+ peerDependencies:
+ '@solana/web3.js': ^1.87.3
+
+ '@bonfida/spl-name-service@3.0.7':
+ resolution: {integrity: sha512-okOLXhy+fQoyQ/sZgMleO5RrIZfTkWEoHMxWgUqg6RP/MTBlrKxlhKC6ymKn4UUe0C5s3Nb8A+3Ams7vX0nMDg==}
+ peerDependencies:
+ '@solana/web3.js': ^1.87.3
+
+ '@browserbasehq/sdk@2.0.0':
+ resolution: {integrity: sha512-BdPlZyn0dpXlL70gNK4acpqWIRB+edo2z0/GalQdWghRq8iQjySd9fVIF3evKH1p2wCYekZJRK6tm29YfXB67g==}
+
+ '@browserbasehq/stagehand@1.8.0':
+ resolution: {integrity: sha512-ozwE2imQzWhi1pir6+L7bwIWKXQQ+tX7oVRbQkcmHkj+xdDJJDMYxNMBJyt8mnAvXHvsadUowAWSIEfcTrNEqA==}
+ peerDependencies:
+ '@playwright/test': ^1.42.1
+ deepmerge: ^4.3.1
+ dotenv: ^16.4.5
+ openai: ^4.62.1
+ zod: ^3.23.8
+
+ '@cfworker/json-schema@4.0.3':
+ resolution: {integrity: sha512-ZykIcDTVv5UNmKWSTLAs3VukO6NDJkkSKxrgUTDPBkAlORVT3H9n5DbRjRl8xIotklscHdbLIa0b9+y3mQq73g==}
+
+ '@coral-xyz/anchor@0.29.0':
+ resolution: {integrity: sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA==}
+ engines: {node: '>=11'}
+
+ '@coral-xyz/borsh@0.29.0':
+ resolution: {integrity: sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@solana/web3.js': ^1.68.0
+
+ '@emnapi/runtime@1.3.1':
+ resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==}
+
+ '@eslint-community/eslint-utils@4.4.1':
+ resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+
+ '@eslint-community/regexpp@4.12.1':
+ resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+
+ '@eslint/eslintrc@2.1.4':
+ resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@eslint/js@8.57.1':
+ resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@ethersproject/bytes@5.7.0':
+ resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==}
+
+ '@ethersproject/logger@5.7.0':
+ resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==}
+
+ '@ethersproject/sha2@5.7.0':
+ resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==}
+
+ '@humanwhocodes/config-array@0.11.14':
+ resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
+ engines: {node: '>=10.10.0'}
+ deprecated: Use @eslint/config-array instead
+
+ '@humanwhocodes/module-importer@1.0.1':
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+
+ '@humanwhocodes/object-schema@2.0.3':
+ resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
+ deprecated: Use @eslint/object-schema instead
+
+ '@ibm-cloud/watsonx-ai@1.3.0':
+ resolution: {integrity: sha512-V4PorMPhxwYiayWxycryun4Bjxn3PJrQqJGca+maQd61Q7s+/PUJAHWjwzVSVHxiher17zFHf4NwqB8J6bWj4w==}
+ engines: {node: '>=18.0.0'}
+
+ '@img/sharp-darwin-arm64@0.33.5':
+ resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@img/sharp-darwin-x64@0.33.5':
+ resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [darwin]
+
+ '@img/sharp-libvips-darwin-arm64@1.0.4':
+ resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@img/sharp-libvips-darwin-x64@1.0.4':
+ resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==}
+ cpu: [x64]
+ os: [darwin]
+
+ '@img/sharp-libvips-linux-arm64@1.0.4':
+ resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-arm@1.0.5':
+ resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==}
+ cpu: [arm]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-s390x@1.0.4':
+ resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==}
+ cpu: [s390x]
+ os: [linux]
+
+ '@img/sharp-libvips-linux-x64@1.0.4':
+ resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-libvips-linuxmusl-arm64@1.0.4':
+ resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-libvips-linuxmusl-x64@1.0.4':
+ resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-linux-arm64@0.33.5':
+ resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-linux-arm@0.33.5':
+ resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm]
+ os: [linux]
+
+ '@img/sharp-linux-s390x@0.33.5':
+ resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [s390x]
+ os: [linux]
+
+ '@img/sharp-linux-x64@0.33.5':
+ resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-linuxmusl-arm64@0.33.5':
+ resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [arm64]
+ os: [linux]
+
+ '@img/sharp-linuxmusl-x64@0.33.5':
+ resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [linux]
+
+ '@img/sharp-wasm32@0.33.5':
+ resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [wasm32]
+
+ '@img/sharp-win32-ia32@0.33.5':
+ resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [ia32]
+ os: [win32]
+
+ '@img/sharp-win32-x64@0.33.5':
+ resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+ cpu: [x64]
+ os: [win32]
+
+ '@isaacs/cliui@8.0.2':
+ resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+ engines: {node: '>=12'}
+
+ '@jridgewell/gen-mapping@0.3.8':
+ resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/resolve-uri@3.1.2':
+ resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/set-array@1.2.1':
+ resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
+ engines: {node: '>=6.0.0'}
+
+ '@jridgewell/sourcemap-codec@1.5.0':
+ resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
+
+ '@jridgewell/trace-mapping@0.3.25':
+ resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
+
+ '@langchain/community@0.3.20':
+ resolution: {integrity: sha512-5XmguFWVrfYJ8s9kHPAmC1bTGfdVOKqzWVCoTolSXMVMDaVn+LVvCJxEedO01kU1y2AS4pUl5MDI9wssKS1Ehg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@arcjet/redact': ^v1.0.0-alpha.23
+ '@aws-crypto/sha256-js': ^5.0.0
+ '@aws-sdk/client-bedrock-agent-runtime': ^3.583.0
+ '@aws-sdk/client-bedrock-runtime': ^3.422.0
+ '@aws-sdk/client-dynamodb': ^3.310.0
+ '@aws-sdk/client-kendra': ^3.352.0
+ '@aws-sdk/client-lambda': ^3.310.0
+ '@aws-sdk/client-s3': ^3.310.0
+ '@aws-sdk/client-sagemaker-runtime': ^3.310.0
+ '@aws-sdk/client-sfn': ^3.310.0
+ '@aws-sdk/credential-provider-node': ^3.388.0
+ '@azure/search-documents': ^12.0.0
+ '@azure/storage-blob': ^12.15.0
+ '@browserbasehq/sdk': '*'
+ '@browserbasehq/stagehand': ^1.0.0
+ '@clickhouse/client': ^0.2.5
+ '@cloudflare/ai': '*'
+ '@datastax/astra-db-ts': ^1.0.0
+ '@elastic/elasticsearch': ^8.4.0
+ '@getmetal/metal-sdk': '*'
+ '@getzep/zep-cloud': ^1.0.6
+ '@getzep/zep-js': ^0.9.0
+ '@gomomento/sdk': ^1.51.1
+ '@gomomento/sdk-core': ^1.51.1
+ '@google-ai/generativelanguage': '*'
+ '@google-cloud/storage': ^6.10.1 || ^7.7.0
+ '@gradientai/nodejs-sdk': ^1.2.0
+ '@huggingface/inference': ^2.6.4
+ '@ibm-cloud/watsonx-ai': '*'
+ '@lancedb/lancedb': ^0.12.0
+ '@langchain/core': '>=0.2.21 <0.4.0'
+ '@layerup/layerup-security': ^1.5.12
+ '@libsql/client': ^0.14.0
+ '@mendable/firecrawl-js': ^1.4.3
+ '@mlc-ai/web-llm': '*'
+ '@mozilla/readability': '*'
+ '@neondatabase/serverless': '*'
+ '@notionhq/client': ^2.2.10
+ '@opensearch-project/opensearch': '*'
+ '@pinecone-database/pinecone': '*'
+ '@planetscale/database': ^1.8.0
+ '@premai/prem-sdk': ^0.3.25
+ '@qdrant/js-client-rest': ^1.8.2
+ '@raycast/api': ^1.55.2
+ '@rockset/client': ^0.9.1
+ '@smithy/eventstream-codec': ^2.0.5
+ '@smithy/protocol-http': ^3.0.6
+ '@smithy/signature-v4': ^2.0.10
+ '@smithy/util-utf8': ^2.0.0
+ '@spider-cloud/spider-client': ^0.0.21
+ '@supabase/supabase-js': ^2.45.0
+ '@tensorflow-models/universal-sentence-encoder': '*'
+ '@tensorflow/tfjs-converter': '*'
+ '@tensorflow/tfjs-core': '*'
+ '@upstash/ratelimit': ^1.1.3 || ^2.0.3
+ '@upstash/redis': ^1.20.6
+ '@upstash/vector': ^1.1.1
+ '@vercel/kv': ^0.2.3
+ '@vercel/postgres': ^0.5.0
+ '@writerai/writer-sdk': ^0.40.2
+ '@xata.io/client': ^0.28.0
+ '@xenova/transformers': ^2.17.2
+ '@zilliz/milvus2-sdk-node': '>=2.3.5'
+ apify-client: ^2.7.1
+ assemblyai: ^4.6.0
+ better-sqlite3: '>=9.4.0 <12.0.0'
+ cassandra-driver: ^4.7.2
+ cborg: ^4.1.1
+ cheerio: ^1.0.0-rc.12
+ chromadb: '*'
+ closevector-common: 0.1.3
+ closevector-node: 0.1.6
+ closevector-web: 0.1.6
+ cohere-ai: '*'
+ convex: ^1.3.1
+ crypto-js: ^4.2.0
+ d3-dsv: ^2.0.0
+ discord.js: ^14.14.1
+ dria: ^0.0.3
+ duck-duck-scrape: ^2.2.5
+ epub2: ^3.0.1
+ faiss-node: ^0.5.1
+ fast-xml-parser: '*'
+ firebase-admin: ^11.9.0 || ^12.0.0
+ google-auth-library: '*'
+ googleapis: '*'
+ hnswlib-node: ^3.0.0
+ html-to-text: ^9.0.5
+ ibm-cloud-sdk-core: '*'
+ ignore: ^5.2.0
+ interface-datastore: ^8.2.11
+ ioredis: ^5.3.2
+ it-all: ^3.0.4
+ jsdom: '*'
+ jsonwebtoken: ^9.0.2
+ llmonitor: ^0.5.9
+ lodash: ^4.17.21
+ lunary: ^0.7.10
+ mammoth: ^1.6.0
+ mongodb: '>=5.2.0'
+ mysql2: ^3.9.8
+ neo4j-driver: '*'
+ notion-to-md: ^3.1.0
+ officeparser: ^4.0.4
+ openai: '*'
+ pdf-parse: 1.1.1
+ pg: ^8.11.0
+ pg-copy-streams: ^6.0.5
+ pickleparser: ^0.2.1
+ playwright: ^1.32.1
+ portkey-ai: ^0.1.11
+ puppeteer: '*'
+ pyodide: '>=0.24.1 <0.27.0'
+ redis: '*'
+ replicate: ^0.29.4
+ sonix-speech-recognition: ^2.1.1
+ srt-parser-2: ^1.2.3
+ typeorm: ^0.3.20
+ typesense: ^1.5.3
+ usearch: ^1.1.1
+ voy-search: 0.6.2
+ weaviate-ts-client: '*'
+ web-auth-library: ^1.0.3
+ ws: ^8.14.2
+ youtube-transcript: ^1.0.6
+ youtubei.js: ^9.1.0
+ peerDependenciesMeta:
+ '@arcjet/redact':
+ optional: true
+ '@aws-crypto/sha256-js':
+ optional: true
+ '@aws-sdk/client-bedrock-agent-runtime':
+ optional: true
+ '@aws-sdk/client-bedrock-runtime':
+ optional: true
+ '@aws-sdk/client-dynamodb':
+ optional: true
+ '@aws-sdk/client-kendra':
+ optional: true
+ '@aws-sdk/client-lambda':
+ optional: true
+ '@aws-sdk/client-s3':
+ optional: true
+ '@aws-sdk/client-sagemaker-runtime':
+ optional: true
+ '@aws-sdk/client-sfn':
+ optional: true
+ '@aws-sdk/credential-provider-node':
+ optional: true
+ '@azure/search-documents':
+ optional: true
+ '@azure/storage-blob':
+ optional: true
+ '@browserbasehq/sdk':
+ optional: true
+ '@clickhouse/client':
+ optional: true
+ '@cloudflare/ai':
+ optional: true
+ '@datastax/astra-db-ts':
+ optional: true
+ '@elastic/elasticsearch':
+ optional: true
+ '@getmetal/metal-sdk':
+ optional: true
+ '@getzep/zep-cloud':
+ optional: true
+ '@getzep/zep-js':
+ optional: true
+ '@gomomento/sdk':
+ optional: true
+ '@gomomento/sdk-core':
+ optional: true
+ '@google-ai/generativelanguage':
+ optional: true
+ '@google-cloud/storage':
+ optional: true
+ '@gradientai/nodejs-sdk':
+ optional: true
+ '@huggingface/inference':
+ optional: true
+ '@lancedb/lancedb':
+ optional: true
+ '@layerup/layerup-security':
+ optional: true
+ '@libsql/client':
+ optional: true
+ '@mendable/firecrawl-js':
+ optional: true
+ '@mlc-ai/web-llm':
+ optional: true
+ '@mozilla/readability':
+ optional: true
+ '@neondatabase/serverless':
+ optional: true
+ '@notionhq/client':
+ optional: true
+ '@opensearch-project/opensearch':
+ optional: true
+ '@pinecone-database/pinecone':
+ optional: true
+ '@planetscale/database':
+ optional: true
+ '@premai/prem-sdk':
+ optional: true
+ '@qdrant/js-client-rest':
+ optional: true
+ '@raycast/api':
+ optional: true
+ '@rockset/client':
+ optional: true
+ '@smithy/eventstream-codec':
+ optional: true
+ '@smithy/protocol-http':
+ optional: true
+ '@smithy/signature-v4':
+ optional: true
+ '@smithy/util-utf8':
+ optional: true
+ '@spider-cloud/spider-client':
+ optional: true
+ '@supabase/supabase-js':
+ optional: true
+ '@tensorflow-models/universal-sentence-encoder':
+ optional: true
+ '@tensorflow/tfjs-converter':
+ optional: true
+ '@tensorflow/tfjs-core':
+ optional: true
+ '@upstash/ratelimit':
+ optional: true
+ '@upstash/redis':
+ optional: true
+ '@upstash/vector':
+ optional: true
+ '@vercel/kv':
+ optional: true
+ '@vercel/postgres':
+ optional: true
+ '@writerai/writer-sdk':
+ optional: true
+ '@xata.io/client':
+ optional: true
+ '@xenova/transformers':
+ optional: true
+ '@zilliz/milvus2-sdk-node':
+ optional: true
+ apify-client:
+ optional: true
+ assemblyai:
+ optional: true
+ better-sqlite3:
+ optional: true
+ cassandra-driver:
+ optional: true
+ cborg:
+ optional: true
+ cheerio:
+ optional: true
+ chromadb:
+ optional: true
+ closevector-common:
+ optional: true
+ closevector-node:
+ optional: true
+ closevector-web:
+ optional: true
+ cohere-ai:
+ optional: true
+ convex:
+ optional: true
+ crypto-js:
+ optional: true
+ d3-dsv:
+ optional: true
+ discord.js:
+ optional: true
+ dria:
+ optional: true
+ duck-duck-scrape:
+ optional: true
+ epub2:
+ optional: true
+ faiss-node:
+ optional: true
+ fast-xml-parser:
+ optional: true
+ firebase-admin:
+ optional: true
+ google-auth-library:
+ optional: true
+ googleapis:
+ optional: true
+ hnswlib-node:
+ optional: true
+ html-to-text:
+ optional: true
+ ignore:
+ optional: true
+ interface-datastore:
+ optional: true
+ ioredis:
+ optional: true
+ it-all:
+ optional: true
+ jsdom:
+ optional: true
+ jsonwebtoken:
+ optional: true
+ llmonitor:
+ optional: true
+ lodash:
+ optional: true
+ lunary:
+ optional: true
+ mammoth:
+ optional: true
+ mongodb:
+ optional: true
+ mysql2:
+ optional: true
+ neo4j-driver:
+ optional: true
+ notion-to-md:
+ optional: true
+ officeparser:
+ optional: true
+ pdf-parse:
+ optional: true
+ pg:
+ optional: true
+ pg-copy-streams:
+ optional: true
+ pickleparser:
+ optional: true
+ playwright:
+ optional: true
+ portkey-ai:
+ optional: true
+ puppeteer:
+ optional: true
+ pyodide:
+ optional: true
+ redis:
+ optional: true
+ replicate:
+ optional: true
+ sonix-speech-recognition:
+ optional: true
+ srt-parser-2:
+ optional: true
+ typeorm:
+ optional: true
+ typesense:
+ optional: true
+ usearch:
+ optional: true
+ voy-search:
+ optional: true
+ weaviate-ts-client:
+ optional: true
+ web-auth-library:
+ optional: true
+ ws:
+ optional: true
+ youtube-transcript:
+ optional: true
+ youtubei.js:
+ optional: true
+
+ '@langchain/core@0.3.26':
+ resolution: {integrity: sha512-6RUQHEp8wv+JwtYIIEBYBzbLlcAQZFc7EDOgAM0ukExjh9HiXoJzoWpgMRRCrr/koIbtwXPJUqBprZK1I1CXHQ==}
+ engines: {node: '>=18'}
+
+ '@langchain/groq@0.1.2':
+ resolution: {integrity: sha512-bgQ9yGoNHOwG6LG2ngGvSNxF/1U1c1u3vKmFWmzecFIcBoQQOJY0jb0MrL3g1uTife0Sr3zxkWKXQg2aK/U4Sg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@langchain/core': '>=0.2.21 <0.4.0'
+
+ '@langchain/langgraph-checkpoint@0.0.13':
+ resolution: {integrity: sha512-amdmBcNT8a9xP2VwcEWxqArng4gtRDcnVyVI4DsQIo1Aaz8e8+hH17zSwrUF3pt1pIYztngIfYnBOim31mtKMg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@langchain/core': '>=0.2.31 <0.4.0'
+
+ '@langchain/langgraph-sdk@0.0.32':
+ resolution: {integrity: sha512-KQyM9kLO7T6AxwNrceajH7JOybP3pYpvUPnhiI2rrVndI1WyZUJ1eVC1e722BVRAPi6o+WcoTT4uMSZVinPOtA==}
+
+ '@langchain/langgraph@0.2.36':
+ resolution: {integrity: sha512-zxk7ZCVxP0/Ut9785EiXCS7BE7sXd8cu943mcZUF2aNFUaQRTBbbiKpNdR3nb1+xO/B+HVktrJT2VFdkAywnng==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@langchain/core': '>=0.2.36 <0.3.0 || >=0.3.9 < 0.4.0'
+
+ '@langchain/openai@0.3.16':
+ resolution: {integrity: sha512-Om9HRlTeI0Ou6D4pfxbWHop4WGfkCdV/7v1W/+Jr7NSf0BNoA9jk5GqGms8ZtOYSGgPvizDu3i0TrM3B4cN4NA==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@langchain/core': '>=0.2.26 <0.4.0'
+
+ '@langchain/textsplitters@0.1.0':
+ resolution: {integrity: sha512-djI4uw9rlkAb5iMhtLED+xJebDdAG935AdP4eRTB02R7OB/act55Bj9wsskhZsvuyQRpO4O1wQOp85s6T6GWmw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@langchain/core': '>=0.2.21 <0.4.0'
+
+ '@lightprotocol/compressed-token@0.17.1':
+ resolution: {integrity: sha512-493KCmZGw1BcHVRJaeRm8EEs+L7gX8dwY7JG13w2pfgOMtZXZ7Wxt261jFJxQJzRLTrUSlrbRJOmfW1+S1Y8SQ==}
+ peerDependencies:
+ '@lightprotocol/stateless.js': 0.17.1
+
+ '@lightprotocol/stateless.js@0.17.1':
+ resolution: {integrity: sha512-EjId1n33A6dBwpce33Wsa/fs/CDKtMtRrkxbApH0alXrnEXmbW6QhIViXOrKYXjZ4uJQM1xsBtsKe0vqJ4nbtQ==}
+
+ '@metaplex-foundation/beet-solana@0.4.1':
+ resolution: {integrity: sha512-/6o32FNUtwK8tjhotrvU/vorP7umBuRFvBZrC6XCk51aKidBHe5LPVPA5AjGPbV3oftMfRuXPNd9yAGeEqeCDQ==}
+
+ '@metaplex-foundation/beet@0.7.2':
+ resolution: {integrity: sha512-K+g3WhyFxKPc0xIvcIjNyV1eaTVJTiuaHZpig7Xx0MuYRMoJLLvhLTnUXhFdR5Tu2l2QSyKwfyXDgZlzhULqFg==}
+
+ '@metaplex-foundation/mpl-core@1.1.1':
+ resolution: {integrity: sha512-h1kLw+cGaV8SiykoHDb1/G01+VYqtJXAt0uGuO5+2Towsdtc6ET4M62iqUnh4EacTVMIW1yYHsKsG/LYWBCKaA==}
+ peerDependencies:
+ '@metaplex-foundation/umi': '>=0.8.2 < 1'
+ '@noble/hashes': ^1.3.1
+
+ '@metaplex-foundation/mpl-token-metadata@3.3.0':
+ resolution: {integrity: sha512-t5vO8Wr3ZZZPGrVrGNcosX5FMkwQSgBiVMQMRNDG2De7voYFJmIibD5jdG05EoQ4Y5kZVEiwhYaO+wJB3aO5AA==}
+ peerDependencies:
+ '@metaplex-foundation/umi': '>= 0.8.2 < 1'
+
+ '@metaplex-foundation/mpl-toolbox@0.9.4':
+ resolution: {integrity: sha512-fd6JxfoLbj/MM8FG2x91KYVy1U6AjBQw4qjt7+Da3trzQaWnSaYHDcYRG/53xqfvZ9qofY1T2t53GXPlD87lnQ==}
+ peerDependencies:
+ '@metaplex-foundation/umi': '>= 0.8.2 < 1'
+
+ '@metaplex-foundation/umi-bundle-defaults@0.9.2':
+ resolution: {integrity: sha512-kV3tfvgvRjVP1p9OFOtH+ibOtN9omVJSwKr0We4/9r45e5LTj+32su0V/rixZUkG1EZzzOYBsxhtIE0kIw/Hrw==}
+ peerDependencies:
+ '@metaplex-foundation/umi': ^0.9.2
+ '@solana/web3.js': ^1.72.0
+
+ '@metaplex-foundation/umi-downloader-http@0.9.2':
+ resolution: {integrity: sha512-tzPT9hBwenzTzAQg07rmsrqZfgguAXELbcJrsYMoASp5VqWFXYIP00g94KET6XLjWUXH4P1J2zoa6hGennPXHA==}
+ peerDependencies:
+ '@metaplex-foundation/umi': ^0.9.2
+
+ '@metaplex-foundation/umi-eddsa-web3js@0.9.2':
+ resolution: {integrity: sha512-hhPCxXbYIp4BC4z9gK78sXpWLkNSrfv4ndhF5ruAkdIp7GcRVYKj0QnOUO6lGYGiIkNlw20yoTwOe1CT//OfTQ==}
+ peerDependencies:
+ '@metaplex-foundation/umi': ^0.9.2
+ '@solana/web3.js': ^1.72.0
+
+ '@metaplex-foundation/umi-http-fetch@0.9.2':
+ resolution: {integrity: sha512-YCZuBu24T9ZzEDe4+w12LEZm/fO9pkyViZufGgASC5NX93814Lvf6Ssjn/hZzjfA7CvZbvLFbmujc6CV3Q/m9Q==}
+ peerDependencies:
+ '@metaplex-foundation/umi': ^0.9.2
+
+ '@metaplex-foundation/umi-options@0.8.9':
+ resolution: {integrity: sha512-jSQ61sZMPSAk/TXn8v8fPqtz3x8d0/blVZXLLbpVbo2/T5XobiI6/MfmlUosAjAUaQl6bHRF8aIIqZEFkJiy4A==}
+
+ '@metaplex-foundation/umi-program-repository@0.9.2':
+ resolution: {integrity: sha512-g3+FPqXEmYsBa8eETtUE2gb2Oe3mqac0z3/Ur1TvAg5TtIy3mzRzOy/nza+sgzejnfcxcVg835rmpBaxpBnjDA==}
+ peerDependencies:
+ '@metaplex-foundation/umi': ^0.9.2
+
+ '@metaplex-foundation/umi-public-keys@0.8.9':
+ resolution: {integrity: sha512-CxMzN7dgVGOq9OcNCJe2casKUpJ3RmTVoOvDFyeoTQuK+vkZ1YSSahbqC1iGuHEtKTLSjtWjKvUU6O7zWFTw3Q==}
+
+ '@metaplex-foundation/umi-rpc-chunk-get-accounts@0.9.2':
+ resolution: {integrity: sha512-YRwVf6xH0jPBAUgMhEPi+UbjioAeqTXmjsN2TnmQCPAmHbrHrMRj0rlWYwFLWAgkmoxazYrXP9lqOFRrfOGAEA==}
+ peerDependencies:
+ '@metaplex-foundation/umi': ^0.9.2
+
+ '@metaplex-foundation/umi-rpc-web3js@0.9.2':
+ resolution: {integrity: sha512-MqcsBz8B4wGl6jxsf2Jo/rAEpYReU9VCSR15QSjhvADHMmdFxCIZCCAgE+gDE2Vuanfl437VhOcP3g5Uw8C16Q==}
+ peerDependencies:
+ '@metaplex-foundation/umi': ^0.9.2
+ '@solana/web3.js': ^1.72.0
+
+ '@metaplex-foundation/umi-serializer-data-view@0.9.2':
+ resolution: {integrity: sha512-5vGptadJxUxvUcyrwFZxXlEc6Q7AYySBesizCtrBFUY8w8PnF2vzmS45CP1MLySEATNH6T9mD4Rs0tLb87iQyA==}
+ peerDependencies:
+ '@metaplex-foundation/umi': ^0.9.2
+
+ '@metaplex-foundation/umi-serializers-core@0.8.9':
+ resolution: {integrity: sha512-WT82tkiYJ0Qmscp7uTj1Hz6aWQPETwaKLAENAUN5DeWghkuBKtuxyBKVvEOuoXerJSdhiAk0e8DWA4cxcTTQ/w==}
+
+ '@metaplex-foundation/umi-serializers-encodings@0.8.9':
+ resolution: {integrity: sha512-N3VWLDTJ0bzzMKcJDL08U3FaqRmwlN79FyE4BHj6bbAaJ9LEHjDQ9RJijZyWqTm0jE7I750fU7Ow5EZL38Xi6Q==}
+
+ '@metaplex-foundation/umi-serializers-numbers@0.8.9':
+ resolution: {integrity: sha512-NtBf1fnVNQJHFQjLFzRu2i9GGnigb9hOm/Gfrk628d0q0tRJB7BOM3bs5C61VAs7kJs4yd+pDNVAERJkknQ7Lg==}
+
+ '@metaplex-foundation/umi-serializers@0.9.0':
+ resolution: {integrity: sha512-hAOW9Djl4w4ioKeR4erDZl5IG4iJdP0xA19ZomdaCbMhYAAmG/FEs5khh0uT2mq53/MnzWcXSUPoO8WBN4Q+Vg==}
+
+ '@metaplex-foundation/umi-transaction-factory-web3js@0.9.2':
+ resolution: {integrity: sha512-fR1Kf21uylMFd1Smkltmj4jTNxhqSWf416owsJ+T+cvJi2VCOcOwq/3UFzOrpz78fA0RhsajKYKj0HYsRnQI1g==}
+ peerDependencies:
+ '@metaplex-foundation/umi': ^0.9.2
+ '@solana/web3.js': ^1.72.0
+
+ '@metaplex-foundation/umi-web3js-adapters@0.9.2':
+ resolution: {integrity: sha512-RQqUTtHYY9fmEMnq7s3Hiv/81flGaoI0ZVVoafnFVaQLnxU6QBKxtboRZHk43XtD9CiFh5f9izrMJX7iK7KlOA==}
+ peerDependencies:
+ '@metaplex-foundation/umi': ^0.9.2
+ '@solana/web3.js': ^1.72.0
+
+ '@metaplex-foundation/umi@0.9.2':
+ resolution: {integrity: sha512-9i4Acm4pruQfJcpRrc2EauPBwkfDN0I9QTvJyZocIlKgoZwD6A6wH0PViH1AjOVG5CQCd1YI3tJd5XjYE1ElBw==}
+
+ '@msgpack/msgpack@3.0.0-beta2':
+ resolution: {integrity: sha512-y+l1PNV0XDyY8sM3YtuMLK5vE3/hkfId+Do8pLo/OPxfxuFAUwcGz3oiiUuV46/aBpwTzZ+mRWVMtlSKbradhw==}
+ engines: {node: '>= 14'}
+
+ '@next/bundle-analyzer@13.5.8':
+ resolution: {integrity: sha512-B/6xFehMbPnBqw6Wtf0iWuOTTHAmymeKS5xKOlaEG0BrGffGZGQ3KTJycMYG6ujLG9A2uCcuTX2vd0M6F5xM3w==}
+
+ '@next/env@14.2.21':
+ resolution: {integrity: sha512-lXcwcJd5oR01tggjWJ6SrNNYFGuOOMB9c251wUNkjCpkoXOPkDeF/15c3mnVlBqrW4JJXb2kVxDFhC4GduJt2A==}
+
+ '@next/eslint-plugin-next@13.4.12':
+ resolution: {integrity: sha512-6rhK9CdxEgj/j1qvXIyLTWEaeFv7zOK8yJMulz3Owel0uek0U9MJCGzmKgYxM3aAUBo3gKeywCZKyQnJKto60A==}
+
+ '@next/swc-darwin-arm64@14.2.21':
+ resolution: {integrity: sha512-HwEjcKsXtvszXz5q5Z7wCtrHeTTDSTgAbocz45PHMUjU3fBYInfvhR+ZhavDRUYLonm53aHZbB09QtJVJj8T7g==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@next/swc-darwin-x64@14.2.21':
+ resolution: {integrity: sha512-TSAA2ROgNzm4FhKbTbyJOBrsREOMVdDIltZ6aZiKvCi/v0UwFmwigBGeqXDA97TFMpR3LNNpw52CbVelkoQBxA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@next/swc-linux-arm64-gnu@14.2.21':
+ resolution: {integrity: sha512-0Dqjn0pEUz3JG+AImpnMMW/m8hRtl1GQCNbO66V1yp6RswSTiKmnHf3pTX6xMdJYSemf3O4Q9ykiL0jymu0TuA==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@next/swc-linux-arm64-musl@14.2.21':
+ resolution: {integrity: sha512-Ggfw5qnMXldscVntwnjfaQs5GbBbjioV4B4loP+bjqNEb42fzZlAaK+ldL0jm2CTJga9LynBMhekNfV8W4+HBw==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@next/swc-linux-x64-gnu@14.2.21':
+ resolution: {integrity: sha512-uokj0lubN1WoSa5KKdThVPRffGyiWlm/vCc/cMkWOQHw69Qt0X1o3b2PyLLx8ANqlefILZh1EdfLRz9gVpG6tg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@next/swc-linux-x64-musl@14.2.21':
+ resolution: {integrity: sha512-iAEBPzWNbciah4+0yI4s7Pce6BIoxTQ0AGCkxn/UBuzJFkYyJt71MadYQkjPqCQCJAFQ26sYh7MOKdU+VQFgPg==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [linux]
+
+ '@next/swc-win32-arm64-msvc@14.2.21':
+ resolution: {integrity: sha512-plykgB3vL2hB4Z32W3ktsfqyuyGAPxqwiyrAi2Mr8LlEUhNn9VgkiAl5hODSBpzIfWweX3er1f5uNpGDygfQVQ==}
+ engines: {node: '>= 10'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@next/swc-win32-ia32-msvc@14.2.21':
+ resolution: {integrity: sha512-w5bacz4Vxqrh06BjWgua3Yf7EMDb8iMcVhNrNx8KnJXt8t+Uu0Zg4JHLDL/T7DkTCEEfKXO/Er1fcfWxn2xfPA==}
+ engines: {node: '>= 10'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@next/swc-win32-x64-msvc@14.2.21':
+ resolution: {integrity: sha512-sT6+llIkzpsexGYZq8cjjthRyRGe5cJVhqh12FmlbxHqna6zsDDK8UNaV7g41T6atFHCJUPeLb3uyAwrBwy0NA==}
+ engines: {node: '>= 10'}
+ cpu: [x64]
+ os: [win32]
+
+ '@noble/curves@1.7.0':
+ resolution: {integrity: sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@noble/hashes@1.5.0':
+ resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@noble/hashes@1.6.0':
+ resolution: {integrity: sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@noble/hashes@1.6.1':
+ resolution: {integrity: sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==}
+ engines: {node: ^14.21.3 || >=16}
+
+ '@nodelib/fs.scandir@2.1.5':
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.stat@2.0.5':
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+
+ '@nodelib/fs.walk@1.2.8':
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+
+ '@nolyfill/is-core-module@1.0.39':
+ resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==}
+ engines: {node: '>=12.4.0'}
+
+ '@onsol/tldparser@0.6.7':
+ resolution: {integrity: sha512-QwkRDLyC514pxeplCCXZ2kTiRcJSeUrpp+9o2XqLbePy/qzZGGG8I0UbXUKuWVD/bUL1zAm21+D+Eu30OKwcQg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@solana/web3.js': ^1.95.3
+ bn.js: ^5.2.1
+ borsh: ^0.7.0
+ buffer: 6.0.1
+
+ '@opentelemetry/api@1.9.0':
+ resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
+ engines: {node: '>=8.0.0'}
+
+ '@orca-so/common-sdk@0.6.4':
+ resolution: {integrity: sha512-iOiC6exTA9t2CEOaUPoWlNP3soN/1yZFjoz1mSf7NvOqo/PJZeIdWpB7BRXwU0mGGatjxU4SFgMGQ8NrSx+ONw==}
+ peerDependencies:
+ '@solana/spl-token': ^0.4.1
+ '@solana/web3.js': ^1.90.0
+ decimal.js: ^10.4.3
+
+ '@orca-so/whirlpools-sdk@0.13.12':
+ resolution: {integrity: sha512-+LOqGTe0DYUsYwemltOU4WQIviqoICQlIcAmmEX/WnBh6wntpcLDcXkPV6dBHW7NA2/J8WEVAZ50biLJb4subg==}
+ peerDependencies:
+ '@coral-xyz/anchor': ~0.29.0
+ '@orca-so/common-sdk': 0.6.4
+ '@solana/spl-token': ^0.4.8
+ '@solana/web3.js': ^1.90.0
+ decimal.js: ^10.4.3
+
+ '@pkgjs/parseargs@0.11.0':
+ resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
+ engines: {node: '>=14'}
+
+ '@playwright/test@1.49.1':
+ resolution: {integrity: sha512-Ky+BVzPz8pL6PQxHqNRW1k3mIyv933LML7HktS8uik0bUXNCdPhoS/kLihiO1tMf/egaJb4IutXd7UywvXEW+g==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ '@polka/url@1.0.0-next.28':
+ resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==}
+
+ '@pythnetwork/price-service-client@1.9.0':
+ resolution: {integrity: sha512-SLm3IFcfmy9iMqHeT4Ih6qMNZhJEefY14T9yTlpsH2D/FE5+BaGGnfcexUifVlfH6M7mwRC4hEFdNvZ6ebZjJg==}
+ deprecated: This package is deprecated and is no longer maintained. Please use @pythnetwork/hermes-client instead.
+
+ '@pythnetwork/price-service-sdk@1.8.0':
+ resolution: {integrity: sha512-tFZ1thj3Zja06DzPIX2dEWSi7kIfIyqreoywvw5NQ3Z1pl5OJHQGMEhxt6Li3UCGSp2ooYZS9wl8/8XfrfrNSA==}
+
+ '@raydium-io/raydium-sdk-v2@0.1.95-alpha':
+ resolution: {integrity: sha512-+u7yxo/R1JDysTCzOuAlh90ioBe2DlM2Hbcz/tFsxP/YzmnYQzShvNjcmc0361a4zJhmlrEJfpFXW0J3kkX5vA==}
+
+ '@rtsao/scc@1.1.0':
+ resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==}
+
+ '@rushstack/eslint-patch@1.10.4':
+ resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==}
+
+ '@scure/base@1.2.1':
+ resolution: {integrity: sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==}
+
+ '@shikijs/core@1.24.4':
+ resolution: {integrity: sha512-jjLsld+xEEGYlxAXDyGwWsKJ1sw5Pc1pnp4ai2ORpjx2UX08YYTC0NNqQYO1PaghYaR+PvgMOGuvzw2he9sk0Q==}
+
+ '@shikijs/engine-javascript@1.24.4':
+ resolution: {integrity: sha512-TClaQOLvo9WEMJv6GoUsykQ6QdynuKszuORFWCke8qvi6PeLm7FcD9+7y45UenysxEWYpDL5KJaVXTngTE+2BA==}
+
+ '@shikijs/engine-oniguruma@1.24.4':
+ resolution: {integrity: sha512-Do2ry6flp2HWdvpj2XOwwa0ljZBRy15HKZITzPcNIBOGSeprnA8gOooA/bLsSPuy8aJBa+Q/r34dMmC3KNL/zw==}
+
+ '@shikijs/types@1.24.4':
+ resolution: {integrity: sha512-0r0XU7Eaow0PuDxuWC1bVqmWCgm3XqizIaT7SM42K03vc69LGooT0U8ccSR44xP/hGlNx4FKhtYpV+BU6aaKAA==}
+
+ '@shikijs/vscode-textmate@9.3.1':
+ resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==}
+
+ '@solana/buffer-layout-utils@0.2.0':
+ resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==}
+ engines: {node: '>= 10'}
+
+ '@solana/buffer-layout@4.0.1':
+ resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==}
+ engines: {node: '>=5.10'}
+
+ '@solana/codecs-core@2.0.0-preview.2':
+ resolution: {integrity: sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==}
+
+ '@solana/codecs-core@2.0.0-preview.4':
+ resolution: {integrity: sha512-A0VVuDDA5kNKZUinOqHxJQK32aKTucaVbvn31YenGzHX1gPqq+SOnFwgaEY6pq4XEopSmaK16w938ZQS8IvCnw==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs-core@2.0.0-rc.1':
+ resolution: {integrity: sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs-data-structures@2.0.0-preview.2':
+ resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==}
+
+ '@solana/codecs-data-structures@2.0.0-preview.4':
+ resolution: {integrity: sha512-nt2k2eTeyzlI/ccutPcG36M/J8NAYfxBPI9h/nQjgJ+M+IgOKi31JV8StDDlG/1XvY0zyqugV3I0r3KAbZRJpA==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs-data-structures@2.0.0-rc.1':
+ resolution: {integrity: sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs-numbers@2.0.0-preview.2':
+ resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==}
+
+ '@solana/codecs-numbers@2.0.0-preview.4':
+ resolution: {integrity: sha512-Q061rLtMadsO7uxpguT+Z7G4UHnjQ6moVIxAQxR58nLxDPCC7MB1Pk106/Z7NDhDLHTcd18uO6DZ7ajHZEn2XQ==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs-numbers@2.0.0-rc.1':
+ resolution: {integrity: sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs-strings@2.0.0-preview.2':
+ resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==}
+ peerDependencies:
+ fastestsmallesttextencoderdecoder: ^1.0.22
+
+ '@solana/codecs-strings@2.0.0-preview.4':
+ resolution: {integrity: sha512-YDbsQePRWm+xnrfS64losSGRg8Wb76cjK1K6qfR8LPmdwIC3787x9uW5/E4icl/k+9nwgbIRXZ65lpF+ucZUnw==}
+ peerDependencies:
+ fastestsmallesttextencoderdecoder: ^1.0.22
+ typescript: '>=5'
+
+ '@solana/codecs-strings@2.0.0-rc.1':
+ resolution: {integrity: sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g==}
+ peerDependencies:
+ fastestsmallesttextencoderdecoder: ^1.0.22
+ typescript: '>=5'
+
+ '@solana/codecs@2.0.0-preview.2':
+ resolution: {integrity: sha512-4HHzCD5+pOSmSB71X6w9ptweV48Zj1Vqhe732+pcAQ2cMNnN0gMPMdDq7j3YwaZDZ7yrILVV/3+HTnfT77t2yA==}
+
+ '@solana/codecs@2.0.0-preview.4':
+ resolution: {integrity: sha512-gLMupqI4i+G4uPi2SGF/Tc1aXcviZF2ybC81x7Q/fARamNSgNOCUUoSCg9nWu1Gid6+UhA7LH80sWI8XjKaRog==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/codecs@2.0.0-rc.1':
+ resolution: {integrity: sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/errors@2.0.0-preview.2':
+ resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==}
+ hasBin: true
+
+ '@solana/errors@2.0.0-preview.4':
+ resolution: {integrity: sha512-kadtlbRv2LCWr8A9V22On15Us7Nn8BvqNaOB4hXsTB3O0fU40D1ru2l+cReqLcRPij4znqlRzW9Xi0m6J5DIhA==}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/errors@2.0.0-rc.1':
+ resolution: {integrity: sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ==}
+ hasBin: true
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/options@2.0.0-preview.2':
+ resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==}
+
+ '@solana/options@2.0.0-preview.4':
+ resolution: {integrity: sha512-tv2O/Frxql/wSe3jbzi5nVicIWIus/BftH+5ZR+r9r3FO0/htEllZS5Q9XdbmSboHu+St87584JXeDx3xm4jaA==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/options@2.0.0-rc.1':
+ resolution: {integrity: sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA==}
+ peerDependencies:
+ typescript: '>=5'
+
+ '@solana/spl-token-group@0.0.4':
+ resolution: {integrity: sha512-7+80nrEMdUKlK37V6kOe024+T7J4nNss0F8LQ9OOPYdWCCfJmsGUzVx2W3oeizZR4IHM6N4yC9v1Xqwc3BTPWw==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@solana/web3.js': ^1.91.6
+
+ '@solana/spl-token-group@0.0.5':
+ resolution: {integrity: sha512-CLJnWEcdoUBpQJfx9WEbX3h6nTdNiUzswfFdkABUik7HVwSNA98u5AYvBVK2H93d9PGMOHAak2lHW9xr+zAJGQ==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@solana/web3.js': ^1.94.0
+
+ '@solana/spl-token-group@0.0.7':
+ resolution: {integrity: sha512-V1N/iX7Cr7H0uazWUT2uk27TMqlqedpXHRqqAbVO2gvmJyT0E0ummMEAVQeXZ05ZhQ/xF39DLSdBp90XebWEug==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@solana/web3.js': ^1.95.3
+
+ '@solana/spl-token-metadata@0.1.6':
+ resolution: {integrity: sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@solana/web3.js': ^1.95.3
+
+ '@solana/spl-token@0.4.6':
+ resolution: {integrity: sha512-1nCnUqfHVtdguFciVWaY/RKcQz1IF4b31jnKgAmjU9QVN1q7dRUkTEWJZgTYIEtsULjVnC9jRqlhgGN39WbKKA==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@solana/web3.js': ^1.91.6
+
+ '@solana/spl-token@0.4.8':
+ resolution: {integrity: sha512-RO0JD9vPRi4LsAbMUdNbDJ5/cv2z11MGhtAvFeRzT4+hAGE/FUzRi0tkkWtuCfSIU3twC6CtmAihRp/+XXjWsA==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@solana/web3.js': ^1.94.0
+
+ '@solana/spl-token@0.4.9':
+ resolution: {integrity: sha512-g3wbj4F4gq82YQlwqhPB0gHFXfgsC6UmyGMxtSLf/BozT/oKd59465DbnlUK8L8EcimKMavxsVAMoLcEdeCicg==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@solana/web3.js': ^1.95.3
+
+ '@solana/spl-type-length-value@0.1.0':
+ resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==}
+ engines: {node: '>=16'}
+
+ '@solana/web3.js@1.95.3':
+ resolution: {integrity: sha512-O6rPUN0w2fkNqx/Z3QJMB9L225Ex10PRDH8bTaIUPZXMPV0QP8ZpPvjQnXK+upUczlRgzHzd6SjKIha1p+I6og==}
+
+ '@solana/web3.js@1.98.0':
+ resolution: {integrity: sha512-nz3Q5OeyGFpFCR+erX2f6JPt3sKhzhYcSycBCSPkWjzSVDh/Rr1FqTVMRe58FKO16/ivTUcuJjeS5MyBvpkbzA==}
+
+ '@supabase/auth-js@2.67.3':
+ resolution: {integrity: sha512-NJDaW8yXs49xMvWVOkSIr8j46jf+tYHV0wHhrwOaLLMZSFO4g6kKAf+MfzQ2RaD06OCUkUHIzctLAxjTgEVpzw==}
+
+ '@supabase/functions-js@2.4.4':
+ resolution: {integrity: sha512-WL2p6r4AXNGwop7iwvul2BvOtuJ1YQy8EbOd0dhG1oN1q8el/BIRSFCFnWAMM/vJJlHWLi4ad22sKbKr9mvjoA==}
+
+ '@supabase/node-fetch@2.6.15':
+ resolution: {integrity: sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==}
+ engines: {node: 4.x || >=6.0.0}
+
+ '@supabase/postgrest-js@1.17.7':
+ resolution: {integrity: sha512-aOzOYaTADm/dVTNksyqv9KsbhVa1gHz1Hoxb2ZEF2Ed9H7qlWOfptECQWmkEmrrFjtNaiPrgiSaPECvzI/seDA==}
+
+ '@supabase/realtime-js@2.11.2':
+ resolution: {integrity: sha512-u/XeuL2Y0QEhXSoIPZZwR6wMXgB+RQbJzG9VErA3VghVt7uRfSVsjeqd7m5GhX3JR6dM/WRmLbVR8URpDWG4+w==}
+
+ '@supabase/storage-js@2.7.1':
+ resolution: {integrity: sha512-asYHcyDR1fKqrMpytAS1zjyEfvxuOIp1CIXX7ji4lHHcJKqyk+sLl/Vxgm4sN6u8zvuUtae9e4kDxQP2qrwWBA==}
+
+ '@supabase/supabase-js@2.47.10':
+ resolution: {integrity: sha512-vJfPF820Ho5WILYHfKiBykDQ1SB9odTHrRZ0JxHfuLMC8GRvv21YLkUZQK7/rSVCkLvD6/ZwMWaOAfdUd//guw==}
+
+ '@swc/counter@0.1.3':
+ resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
+
+ '@swc/helpers@0.5.15':
+ resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
+
+ '@swc/helpers@0.5.5':
+ resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
+
+ '@tailwindcss/typography@0.5.15':
+ resolution: {integrity: sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==}
+ peerDependencies:
+ tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20'
+
+ '@tokenizer/token@0.3.0':
+ resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==}
+
+ '@types/connect@3.4.38':
+ resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
+
+ '@types/debug@4.1.12':
+ resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
+
+ '@types/diff-match-patch@1.0.36':
+ resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==}
+
+ '@types/estree@1.0.6':
+ resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+
+ '@types/hast@3.0.4':
+ resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
+
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
+ '@types/json5@0.0.29':
+ resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+
+ '@types/mdast@4.0.4':
+ resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
+
+ '@types/ms@0.7.34':
+ resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
+
+ '@types/node-fetch@2.6.12':
+ resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==}
+
+ '@types/node@10.14.22':
+ resolution: {integrity: sha512-9taxKC944BqoTVjE+UT3pQH0nHZlTvITwfsOZqyc+R3sfJuxaTtxWjfn1K2UlxyPcKHf0rnaXcVFrS9F9vf0bw==}
+
+ '@types/node@12.20.55':
+ resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
+
+ '@types/node@18.19.68':
+ resolution: {integrity: sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==}
+
+ '@types/node@20.12.12':
+ resolution: {integrity: sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==}
+
+ '@types/phoenix@1.6.6':
+ resolution: {integrity: sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==}
+
+ '@types/prop-types@15.7.14':
+ resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==}
+
+ '@types/react-dom@18.3.0':
+ resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==}
+
+ '@types/react@18.3.2':
+ resolution: {integrity: sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==}
+
+ '@types/retry@0.12.0':
+ resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
+
+ '@types/tough-cookie@4.0.5':
+ resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
+
+ '@types/trusted-types@2.0.7':
+ resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
+
+ '@types/unist@3.0.3':
+ resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
+
+ '@types/uuid@10.0.0':
+ resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==}
+
+ '@types/uuid@8.3.4':
+ resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==}
+
+ '@types/ws@7.4.7':
+ resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==}
+
+ '@types/ws@8.5.13':
+ resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==}
+
+ '@typescript-eslint/parser@5.62.0':
+ resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/scope-manager@5.62.0':
+ resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@typescript-eslint/types@5.62.0':
+ resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@typescript-eslint/typescript-estree@5.62.0':
+ resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ '@typescript-eslint/visitor-keys@5.62.0':
+ resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ '@ungap/structured-clone@1.2.1':
+ resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==}
+
+ '@vue/compiler-core@3.5.13':
+ resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==}
+
+ '@vue/compiler-dom@3.5.13':
+ resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==}
+
+ '@vue/compiler-sfc@3.5.13':
+ resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==}
+
+ '@vue/compiler-ssr@3.5.13':
+ resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==}
+
+ '@vue/reactivity@3.5.13':
+ resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==}
+
+ '@vue/runtime-core@3.5.13':
+ resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==}
+
+ '@vue/runtime-dom@3.5.13':
+ resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==}
+
+ '@vue/server-renderer@3.5.13':
+ resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==}
+ peerDependencies:
+ vue: 3.5.13
+
+ '@vue/shared@3.5.13':
+ resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==}
+
+ JSONStream@1.3.5:
+ resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
+ hasBin: true
+
+ abort-controller@3.0.0:
+ resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
+ engines: {node: '>=6.5'}
+
+ acorn-jsx@5.3.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+
+ acorn-typescript@1.4.13:
+ resolution: {integrity: sha512-xsc9Xv0xlVfwp2o7sQ+GCQ1PgbkdcpWdTzrwXxO3xDMTAywVS3oXVOcOHuRjAPkS4P9b+yc/qNF15460v+jp4Q==}
+ peerDependencies:
+ acorn: '>=8.9.0'
+
+ acorn-walk@8.3.4:
+ resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
+ engines: {node: '>=0.4.0'}
+
+ acorn@8.14.0:
+ resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+
+ agent-base@7.1.3:
+ resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==}
+ engines: {node: '>= 14'}
+
+ agentkeepalive@4.5.0:
+ resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
+ engines: {node: '>= 8.0.0'}
+
+ ai@3.4.33:
+ resolution: {integrity: sha512-plBlrVZKwPoRTmM8+D1sJac9Bq8eaa2jiZlHLZIWekKWI1yMWYZvCCEezY9ASPwRhULYDJB2VhKOBUUeg3S5JQ==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ openai: ^4.42.0
+ react: ^18 || ^19 || ^19.0.0-rc
+ sswr: ^2.1.0
+ svelte: ^3.0.0 || ^4.0.0 || ^5.0.0
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ openai:
+ optional: true
+ react:
+ optional: true
+ sswr:
+ optional: true
+ svelte:
+ optional: true
+ zod:
+ optional: true
+
+ ajv@6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+
+ ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ ansi-regex@6.1.0:
+ resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
+ engines: {node: '>=12'}
+
+ ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+
+ ansi-styles@5.2.0:
+ resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
+ engines: {node: '>=10'}
+
+ ansi-styles@6.2.1:
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ engines: {node: '>=12'}
+
+ ansicolors@0.3.2:
+ resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==}
+
+ any-promise@1.3.0:
+ resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
+
+ anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+
+ arg@5.0.2:
+ resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
+
+ argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ aria-query@5.3.2:
+ resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==}
+ engines: {node: '>= 0.4'}
+
+ array-buffer-byte-length@1.0.2:
+ resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==}
+ engines: {node: '>= 0.4'}
+
+ array-includes@3.1.8:
+ resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==}
+ engines: {node: '>= 0.4'}
+
+ array-union@2.1.0:
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+ engines: {node: '>=8'}
+
+ array.prototype.findlast@1.2.5:
+ resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.findlastindex@1.2.5:
+ resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.flat@1.3.3:
+ resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.flatmap@1.3.3:
+ resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.tosorted@1.1.4:
+ resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==}
+ engines: {node: '>= 0.4'}
+
+ arraybuffer.prototype.slice@1.0.4:
+ resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==}
+ engines: {node: '>= 0.4'}
+
+ assert@2.1.0:
+ resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==}
+
+ assertion-error@2.0.1:
+ resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
+ engines: {node: '>=12'}
+
+ ast-types-flow@0.0.8:
+ resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
+
+ asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+
+ autoprefixer@10.4.14:
+ resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==}
+ engines: {node: ^10 || ^12 || >=14}
+ hasBin: true
+ peerDependencies:
+ postcss: ^8.1.0
+
+ available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
+
+ axe-core@4.10.2:
+ resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==}
+ engines: {node: '>=4'}
+
+ axios-retry@3.9.1:
+ resolution: {integrity: sha512-8PJDLJv7qTTMMwdnbMvrLYuvB47M81wRtxQmEdV5w4rgbTXTt+vtPkXwajOfOdSyv/wZICJOC+/UhXH4aQ/R+w==}
+
+ axios@1.7.4:
+ resolution: {integrity: sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==}
+
+ axobject-query@4.1.0:
+ resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
+ engines: {node: '>= 0.4'}
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ base-x@3.0.10:
+ resolution: {integrity: sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==}
+
+ base-x@4.0.0:
+ resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==}
+
+ base-x@5.0.0:
+ resolution: {integrity: sha512-sMW3VGSX1QWVFA6l8U62MLKz29rRfpTlYdCqLdpLo1/Yd4zZwSbnUaDfciIAowAqvq7YFnWq9hrhdg1KYgc1lQ==}
+
+ base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+
+ big.js@6.2.2:
+ resolution: {integrity: sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==}
+
+ bigint-buffer@1.1.5:
+ resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==}
+ engines: {node: '>= 10.0.0'}
+
+ bignumber.js@9.1.2:
+ resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==}
+
+ binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+ engines: {node: '>=8'}
+
+ bindings@1.5.0:
+ resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
+
+ bn.js@5.2.1:
+ resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
+
+ borsh@0.7.0:
+ resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
+
+ borsh@1.0.0:
+ resolution: {integrity: sha512-fSVWzzemnyfF89EPwlUNsrS5swF5CrtiN4e+h0/lLf4dz2he4L3ndM20PS9wj7ICSkXJe/TQUHdaPTq15b1mNQ==}
+
+ borsh@2.0.0:
+ resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==}
+
+ brace-expansion@1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+
+ brace-expansion@2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+
+ braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
+ engines: {node: '>=8'}
+
+ browserslist@4.24.3:
+ resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
+ bs58@4.0.1:
+ resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==}
+
+ bs58@5.0.0:
+ resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==}
+
+ bs58@6.0.0:
+ resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==}
+
+ buffer-equal-constant-time@1.0.1:
+ resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==}
+
+ buffer-layout@1.2.2:
+ resolution: {integrity: sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==}
+ engines: {node: '>=4.5'}
+
+ buffer@6.0.3:
+ resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
+
+ bufferutil@4.0.8:
+ resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==}
+ engines: {node: '>=6.14.2'}
+
+ busboy@1.6.0:
+ resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
+ engines: {node: '>=10.16.0'}
+
+ call-bind-apply-helpers@1.0.1:
+ resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==}
+ engines: {node: '>= 0.4'}
+
+ call-bind@1.0.8:
+ resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
+ engines: {node: '>= 0.4'}
+
+ call-bound@1.0.3:
+ resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==}
+ engines: {node: '>= 0.4'}
+
+ callsites@3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+
+ camelcase-css@2.0.1:
+ resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
+ engines: {node: '>= 6'}
+
+ camelcase@6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+
+ caniuse-lite@1.0.30001690:
+ resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==}
+
+ ccount@2.0.1:
+ resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
+
+ chai@5.1.2:
+ resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==}
+ engines: {node: '>=12'}
+
+ chalk@4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+
+ chalk@5.4.1:
+ resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
+ character-entities-html4@2.1.0:
+ resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
+
+ character-entities-legacy@3.0.0:
+ resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
+
+ check-error@2.1.1:
+ resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
+ engines: {node: '>= 16'}
+
+ chokidar@3.6.0:
+ resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+ engines: {node: '>= 8.10.0'}
+
+ client-only@0.0.1:
+ resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
+
+ clsx@1.2.1:
+ resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==}
+ engines: {node: '>=6'}
+
+ clsx@2.1.1:
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
+ engines: {node: '>=6'}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ color-string@1.9.1:
+ resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==}
+
+ color@4.2.3:
+ resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
+ engines: {node: '>=12.5.0'}
+
+ combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+
+ comma-separated-tokens@2.0.3:
+ resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
+
+ commander@10.0.1:
+ resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
+ engines: {node: '>=14'}
+
+ commander@12.1.0:
+ resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
+ engines: {node: '>=18'}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+
+ commander@4.1.1:
+ resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
+ engines: {node: '>= 6'}
+
+ commander@7.2.0:
+ resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
+ engines: {node: '>= 10'}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ cross-fetch@3.2.0:
+ resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==}
+
+ cross-spawn@7.0.6:
+ resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
+ engines: {node: '>= 8'}
+
+ crypto-hash@1.3.0:
+ resolution: {integrity: sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==}
+ engines: {node: '>=8'}
+
+ cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ cssstyle@4.1.0:
+ resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==}
+ engines: {node: '>=18'}
+
+ csstype@3.1.3:
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+
+ damerau-levenshtein@1.0.8:
+ resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
+
+ data-urls@5.0.0:
+ resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==}
+ engines: {node: '>=18'}
+
+ data-view-buffer@1.0.2:
+ resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-length@1.0.2:
+ resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-offset@1.0.1:
+ resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==}
+ engines: {node: '>= 0.4'}
+
+ dayjs@1.11.13:
+ resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
+
+ debug@3.2.7:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ debug@4.4.0:
+ resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ decamelize@1.2.0:
+ resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
+ engines: {node: '>=0.10.0'}
+
+ decimal.js-light@2.5.1:
+ resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==}
+
+ decimal.js@10.4.3:
+ resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==}
+
+ deep-eql@5.0.2:
+ resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
+ engines: {node: '>=6'}
+
+ deep-is@0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+
+ deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
+
+ define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+
+ define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+
+ delay@5.0.0:
+ resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==}
+ engines: {node: '>=10'}
+
+ delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+
+ dequal@2.0.3:
+ resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
+ engines: {node: '>=6'}
+
+ detect-libc@2.0.3:
+ resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
+ engines: {node: '>=8'}
+
+ devlop@1.1.0:
+ resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
+
+ didyoumean@1.2.2:
+ resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
+
+ diff-match-patch@1.0.5:
+ resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==}
+
+ dir-glob@3.0.1:
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+ engines: {node: '>=8'}
+
+ dlv@1.1.3:
+ resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
+
+ doctrine@2.1.0:
+ resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
+ engines: {node: '>=0.10.0'}
+
+ doctrine@3.0.0:
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
+ engines: {node: '>=6.0.0'}
+
+ dompurify@3.2.3:
+ resolution: {integrity: sha512-U1U5Hzc2MO0oW3DF+G9qYN0aT7atAou4AgI0XjWz061nyBPbdxkfdhfy5uMgGn6+oLFCfn44ZGbdDqCzVmlOWA==}
+
+ dot-case@3.0.4:
+ resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
+
+ dotenv@16.4.7:
+ resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==}
+ engines: {node: '>=12'}
+
+ dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
+ engines: {node: '>= 0.4'}
+
+ duplexer@0.1.2:
+ resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
+
+ eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+
+ ecdsa-sig-formatter@1.0.11:
+ resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==}
+
+ electron-to-chromium@1.5.76:
+ resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==}
+
+ emoji-regex-xs@1.0.0:
+ resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==}
+
+ emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+ emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+
+ enhanced-resolve@5.18.0:
+ resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==}
+ engines: {node: '>=10.13.0'}
+
+ entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+
+ es-abstract@1.23.7:
+ resolution: {integrity: sha512-OygGC8kIcDhXX+6yAZRGLqwi2CmEXCbLQixeGUgYeR+Qwlppqmo7DIDr8XibtEBZp+fJcoYpoatp5qwLMEdcqQ==}
+ engines: {node: '>= 0.4'}
+
+ es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
+ engines: {node: '>= 0.4'}
+
+ es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+
+ es-iterator-helpers@1.2.1:
+ resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==}
+ engines: {node: '>= 0.4'}
+
+ es-object-atoms@1.0.0:
+ resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==}
+ engines: {node: '>= 0.4'}
+
+ es-set-tostringtag@2.0.3:
+ resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
+ engines: {node: '>= 0.4'}
+
+ es-shim-unscopables@1.0.2:
+ resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
+
+ es-to-primitive@1.3.0:
+ resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==}
+ engines: {node: '>= 0.4'}
+
+ es6-promise@4.2.8:
+ resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==}
+
+ es6-promisify@5.0.0:
+ resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==}
+
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
+ escape-string-regexp@4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+
+ eslint-config-next@13.4.12:
+ resolution: {integrity: sha512-ZF0r5vxKaVazyZH/37Au/XItiG7qUOBw+HaH3PeyXltIMwXorsn6bdrl0Nn9N5v5v9spc+6GM2ryjugbjF6X2g==}
+ peerDependencies:
+ eslint: ^7.23.0 || ^8.0.0
+ typescript: '>=3.3.1'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ eslint-import-resolver-node@0.3.9:
+ resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
+
+ eslint-import-resolver-typescript@3.7.0:
+ resolution: {integrity: sha512-Vrwyi8HHxY97K5ebydMtffsWAn1SCR9eol49eCd5fJS4O1WV7PaAjbcjmbfJJSMz/t4Mal212Uz/fQZrOB8mow==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '*'
+ eslint-plugin-import: '*'
+ eslint-plugin-import-x: '*'
+ peerDependenciesMeta:
+ eslint-plugin-import:
+ optional: true
+ eslint-plugin-import-x:
+ optional: true
+
+ eslint-module-utils@2.12.0:
+ resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: '*'
+ eslint-import-resolver-node: '*'
+ eslint-import-resolver-typescript: '*'
+ eslint-import-resolver-webpack: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ eslint:
+ optional: true
+ eslint-import-resolver-node:
+ optional: true
+ eslint-import-resolver-typescript:
+ optional: true
+ eslint-import-resolver-webpack:
+ optional: true
+
+ eslint-plugin-import@2.31.0:
+ resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+
+ eslint-plugin-jsx-a11y@6.10.2:
+ resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9
+
+ eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705:
+ resolution: {integrity: sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
+
+ eslint-plugin-react@7.37.3:
+ resolution: {integrity: sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
+
+ eslint-scope@7.2.2:
+ resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint-visitor-keys@3.4.3:
+ resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ eslint@8.46.0:
+ resolution: {integrity: sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
+ hasBin: true
+
+ esm-env@1.2.1:
+ resolution: {integrity: sha512-U9JedYYjCnadUlXk7e1Kr+aENQhtUaoaV9+gZm1T8LC/YBAPJx3NSPIAurFOC0U5vrdSevnUJS2/wUVxGwPhng==}
+
+ espree@9.6.1:
+ resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ esquery@1.6.0:
+ resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
+ engines: {node: '>=0.10'}
+
+ esrap@1.3.2:
+ resolution: {integrity: sha512-C4PXusxYhFT98GjLSmb20k9PREuUdporer50dhzGuJu9IJXktbMddVCMLAERl5dAHyAi73GWWCE4FVHGP1794g==}
+
+ esrecurse@4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+
+ estraverse@5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+
+ estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ esutils@2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+
+ event-target-shim@5.0.1:
+ resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
+ engines: {node: '>=6'}
+
+ eventemitter3@4.0.7:
+ resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
+
+ eventemitter3@5.0.1:
+ resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
+
+ eventsource-parser@1.1.2:
+ resolution: {integrity: sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==}
+ engines: {node: '>=14.18'}
+
+ expr-eval@2.0.2:
+ resolution: {integrity: sha512-4EMSHGOPSwAfBiibw3ndnP0AvjDWLsMvGOvWEZ2F96IGk0bIVdjQisOHxReSkE13mHcfbuCiXw+G4y0zv6N8Eg==}
+
+ extend@3.0.2:
+ resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
+
+ eyes@0.1.8:
+ resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
+ engines: {node: '> 0.1.90'}
+
+ fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+
+ fast-glob@3.3.2:
+ resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
+ engines: {node: '>=8.6.0'}
+
+ fast-json-stable-stringify@2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+
+ fast-levenshtein@2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+
+ fast-stable-stringify@1.0.0:
+ resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==}
+
+ fastestsmallesttextencoderdecoder@1.0.22:
+ resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
+
+ fastq@1.18.0:
+ resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==}
+
+ file-entry-cache@6.0.1:
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+
+ file-type@16.5.4:
+ resolution: {integrity: sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==}
+ engines: {node: '>=10'}
+
+ file-uri-to-path@1.0.0:
+ resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
+ engines: {node: '>=8'}
+
+ find-up@5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+
+ flat-cache@3.2.0:
+ resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+
+ flat@5.0.2:
+ resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==}
+ hasBin: true
+
+ flatted@3.3.2:
+ resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==}
+
+ follow-redirects@1.15.9:
+ resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+
+ for-each@0.3.3:
+ resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
+
+ foreground-child@3.3.0:
+ resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
+ engines: {node: '>=14'}
+
+ form-data-encoder@1.7.2:
+ resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==}
+
+ form-data@4.0.0:
+ resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
+ engines: {node: '>= 6'}
+
+ form-data@4.0.1:
+ resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==}
+ engines: {node: '>= 6'}
+
+ formdata-node@4.4.1:
+ resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==}
+ engines: {node: '>= 12.20'}
+
+ fraction.js@4.3.7:
+ resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
+
+ fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
+ fsevents@2.3.2:
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+
+ function.prototype.name@1.1.8:
+ resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==}
+ engines: {node: '>= 0.4'}
+
+ functions-have-names@1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+
+ get-intrinsic@1.2.6:
+ resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==}
+ engines: {node: '>= 0.4'}
+
+ get-symbol-description@1.1.0:
+ resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==}
+ engines: {node: '>= 0.4'}
+
+ get-tsconfig@4.8.1:
+ resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==}
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+
+ glob-parent@6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+
+ glob@10.4.5:
+ resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
+ hasBin: true
+
+ glob@7.1.7:
+ resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==}
+ deprecated: Glob versions prior to v9 are no longer supported
+
+ glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ deprecated: Glob versions prior to v9 are no longer supported
+
+ globals@13.24.0:
+ resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
+ engines: {node: '>=8'}
+
+ globalthis@1.0.4:
+ resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
+ engines: {node: '>= 0.4'}
+
+ globby@11.1.0:
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+ engines: {node: '>=10'}
+
+ gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
+ engines: {node: '>= 0.4'}
+
+ graceful-fs@4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+
+ graphemer@1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+
+ graphemesplit@2.4.4:
+ resolution: {integrity: sha512-lKrpp1mk1NH26USxC/Asw4OHbhSQf5XfrWZ+CDv/dFVvd1j17kFgMotdJvOesmHkbFX9P9sBfpH8VogxOWLg8w==}
+
+ groq-sdk@0.5.0:
+ resolution: {integrity: sha512-RVmhW7qZ+XZoy5fIuSdx/LGQJONpL8MHgZEW7dFwTdgkzStub2XQx6OKv28CHogijdwH41J+Npj/z2jBPu3vmw==}
+
+ gzip-size@6.0.0:
+ resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
+ engines: {node: '>=10'}
+
+ has-bigints@1.1.0:
+ resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==}
+ engines: {node: '>= 0.4'}
+
+ has-flag@4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+
+ has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+
+ has-proto@1.2.0:
+ resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==}
+ engines: {node: '>= 0.4'}
+
+ has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+
+ hash.js@1.1.7:
+ resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==}
+
+ hasown@2.0.2:
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+ engines: {node: '>= 0.4'}
+
+ hast-util-to-html@9.0.4:
+ resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==}
+
+ hast-util-whitespace@3.0.0:
+ resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
+
+ html-encoding-sniffer@4.0.0:
+ resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==}
+ engines: {node: '>=18'}
+
+ html-void-elements@3.0.0:
+ resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
+
+ http-proxy-agent@7.0.2:
+ resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==}
+ engines: {node: '>= 14'}
+
+ https-proxy-agent@7.0.6:
+ resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
+ engines: {node: '>= 14'}
+
+ humanize-ms@1.2.1:
+ resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
+
+ ibm-cloud-sdk-core@5.1.0:
+ resolution: {integrity: sha512-KJCbPz3tiXB1NGAD7cL4JtwpWV8yd/C7jsaHsxvedMo2ZblNG8emMyvSpGhiKAQVZmi3c0ujz6eJdy22NHuUWQ==}
+ engines: {node: '>=18'}
+
+ iconv-lite@0.6.3:
+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
+ engines: {node: '>=0.10.0'}
+
+ ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+
+ ignore@5.3.2:
+ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
+ engines: {node: '>= 4'}
+
+ import-fresh@3.3.0:
+ resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ engines: {node: '>=6'}
+
+ imurmurhash@0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+
+ inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
+
+ inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+ internal-slot@1.1.0:
+ resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==}
+ engines: {node: '>= 0.4'}
+
+ ipaddr.js@2.2.0:
+ resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==}
+ engines: {node: '>= 10'}
+
+ is-arguments@1.2.0:
+ resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==}
+ engines: {node: '>= 0.4'}
+
+ is-array-buffer@3.0.5:
+ resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==}
+ engines: {node: '>= 0.4'}
+
+ is-arrayish@0.3.2:
+ resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
+
+ is-async-function@2.0.0:
+ resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
+ engines: {node: '>= 0.4'}
+
+ is-bigint@1.1.0:
+ resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==}
+ engines: {node: '>= 0.4'}
+
+ is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+
+ is-boolean-object@1.2.1:
+ resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==}
+ engines: {node: '>= 0.4'}
+
+ is-bun-module@1.3.0:
+ resolution: {integrity: sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==}
+
+ is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+
+ is-core-module@2.16.1:
+ resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
+ engines: {node: '>= 0.4'}
+
+ is-data-view@1.0.2:
+ resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
+ engines: {node: '>= 0.4'}
+
+ is-date-object@1.1.0:
+ resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==}
+ engines: {node: '>= 0.4'}
+
+ is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ is-finalizationregistry@1.1.1:
+ resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==}
+ engines: {node: '>= 0.4'}
+
+ is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+
+ is-generator-function@1.0.10:
+ resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
+ engines: {node: '>= 0.4'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+
+ is-map@2.0.3:
+ resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==}
+ engines: {node: '>= 0.4'}
+
+ is-nan@1.3.2:
+ resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==}
+ engines: {node: '>= 0.4'}
+
+ is-number-object@1.1.1:
+ resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==}
+ engines: {node: '>= 0.4'}
+
+ is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+
+ is-path-inside@3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
+
+ is-potential-custom-element-name@1.0.1:
+ resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==}
+
+ is-reference@3.0.3:
+ resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==}
+
+ is-regex@1.2.1:
+ resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
+ engines: {node: '>= 0.4'}
+
+ is-retry-allowed@2.2.0:
+ resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==}
+ engines: {node: '>=10'}
+
+ is-set@2.0.3:
+ resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==}
+ engines: {node: '>= 0.4'}
+
+ is-shared-array-buffer@1.0.4:
+ resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==}
+ engines: {node: '>= 0.4'}
+
+ is-string@1.1.1:
+ resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==}
+ engines: {node: '>= 0.4'}
+
+ is-symbol@1.1.1:
+ resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==}
+ engines: {node: '>= 0.4'}
+
+ is-typed-array@1.1.15:
+ resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
+ engines: {node: '>= 0.4'}
+
+ is-weakmap@2.0.2:
+ resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==}
+ engines: {node: '>= 0.4'}
+
+ is-weakref@1.1.0:
+ resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==}
+ engines: {node: '>= 0.4'}
+
+ is-weakset@2.0.4:
+ resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==}
+ engines: {node: '>= 0.4'}
+
+ isarray@2.0.5:
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+
+ isexe@2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+
+ isomorphic-dompurify@2.19.0:
+ resolution: {integrity: sha512-ppcgeRlEwOQ+v/JDctcjnOsBwEoJlAWVDH5+LisLHphQFeWCrBiVvK6XF4wF0MJM5tJA6RxJSlpbmthnmonxOQ==}
+ engines: {node: '>=18'}
+
+ isomorphic-ws@4.0.1:
+ resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==}
+ peerDependencies:
+ ws: '*'
+
+ isstream@0.1.2:
+ resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==}
+
+ iterator.prototype@1.1.4:
+ resolution: {integrity: sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==}
+ engines: {node: '>= 0.4'}
+
+ jackspeak@3.4.3:
+ resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
+
+ jayson@4.1.3:
+ resolution: {integrity: sha512-LtXh5aYZodBZ9Fc3j6f2w+MTNcnxteMOrb+QgIouguGOulWi0lieEkOUg+HkjjFs0DGoWDds6bi4E9hpNFLulQ==}
+ engines: {node: '>=8'}
+ hasBin: true
+
+ jiti@1.21.7:
+ resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==}
+ hasBin: true
+
+ js-base64@3.7.7:
+ resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==}
+
+ js-tiktoken@1.0.16:
+ resolution: {integrity: sha512-nUVdO5k/M9llWpiaZlBBDdtmr6qWXwSD6fgaDu2zM8UP+OXxx9V37lFkI6w0/1IuaDx7WffZ37oYd9KvcWKElg==}
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+ js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+
+ jsdom@25.0.1:
+ resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ canvas: ^2.11.2
+ peerDependenciesMeta:
+ canvas:
+ optional: true
+
+ json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
+ json-schema-traverse@0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+ json-schema@0.4.0:
+ resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
+
+ json-stable-stringify-without-jsonify@1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+ json-stringify-safe@5.0.1:
+ resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
+
+ json5@1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
+
+ json5@2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+
+ jsondiffpatch@0.6.0:
+ resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+
+ jsonfile@6.1.0:
+ resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
+
+ jsonparse@1.3.1:
+ resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
+ engines: {'0': node >= 0.2.0}
+
+ jsonpointer@5.0.1:
+ resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==}
+ engines: {node: '>=0.10.0'}
+
+ jsonwebtoken@9.0.2:
+ resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==}
+ engines: {node: '>=12', npm: '>=6'}
+
+ jsx-ast-utils@3.3.5:
+ resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
+ engines: {node: '>=4.0'}
+
+ jwa@1.4.1:
+ resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==}
+
+ jws@3.2.2:
+ resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==}
+
+ keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
+ langchain@0.3.8:
+ resolution: {integrity: sha512-EiAHFgBdThuXFmIx9j81wjdPItpRsw0Ck4r5dyhB74gyhehRGna/UK2CTqeKVnIUM/f4g4JbxUgAU4voXljDMw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ '@langchain/anthropic': '*'
+ '@langchain/aws': '*'
+ '@langchain/cohere': '*'
+ '@langchain/core': '>=0.2.21 <0.4.0'
+ '@langchain/google-genai': '*'
+ '@langchain/google-vertexai': '*'
+ '@langchain/groq': '*'
+ '@langchain/mistralai': '*'
+ '@langchain/ollama': '*'
+ axios: '*'
+ cheerio: '*'
+ handlebars: ^4.7.8
+ peggy: ^3.0.2
+ typeorm: '*'
+ peerDependenciesMeta:
+ '@langchain/anthropic':
+ optional: true
+ '@langchain/aws':
+ optional: true
+ '@langchain/cohere':
+ optional: true
+ '@langchain/google-genai':
+ optional: true
+ '@langchain/google-vertexai':
+ optional: true
+ '@langchain/groq':
+ optional: true
+ '@langchain/mistralai':
+ optional: true
+ '@langchain/ollama':
+ optional: true
+ axios:
+ optional: true
+ cheerio:
+ optional: true
+ handlebars:
+ optional: true
+ peggy:
+ optional: true
+ typeorm:
+ optional: true
+
+ langsmith@0.2.14:
+ resolution: {integrity: sha512-ClAuAgSf3m9miMYotLEaZKQyKdaWlfjhebCuYco8bc6g72dU2VwTg31Bv4YINBq7EH2i1cMwbOiJxbOXPqjGig==}
+ peerDependencies:
+ openai: '*'
+ peerDependenciesMeta:
+ openai:
+ optional: true
+
+ language-subtag-registry@0.3.23:
+ resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==}
+
+ language-tags@1.0.9:
+ resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
+ engines: {node: '>=0.10'}
+
+ levn@0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+
+ lilconfig@2.1.0:
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
+ engines: {node: '>=10'}
+
+ lilconfig@3.1.3:
+ resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
+ engines: {node: '>=14'}
+
+ lines-and-columns@1.2.4:
+ resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+ linkify-it@5.0.0:
+ resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
+
+ locate-character@3.0.0:
+ resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
+
+ locate-path@6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+
+ lodash.castarray@4.4.0:
+ resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
+
+ lodash.includes@4.3.0:
+ resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==}
+
+ lodash.isboolean@3.0.3:
+ resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==}
+
+ lodash.isinteger@4.0.4:
+ resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==}
+
+ lodash.isnumber@3.0.3:
+ resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==}
+
+ lodash.isplainobject@4.0.6:
+ resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
+
+ lodash.isstring@4.0.1:
+ resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==}
+
+ lodash.merge@4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+ lodash.once@4.1.1:
+ resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
+
+ lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+
+ loose-envify@1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ hasBin: true
+
+ loupe@3.1.2:
+ resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==}
+
+ lower-case@2.0.2:
+ resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
+
+ lru-cache@10.4.3:
+ resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
+
+ lunr@2.3.9:
+ resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==}
+
+ magic-string@0.30.17:
+ resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==}
+
+ markdown-it@14.1.0:
+ resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
+ hasBin: true
+
+ marked@15.0.4:
+ resolution: {integrity: sha512-TCHvDqmb3ZJ4PWG7VEGVgtefA5/euFmsIhxtD0XsBxI39gUSKL81mIRFdt0AiNQozUahd4ke98ZdirExd/vSEw==}
+ engines: {node: '>= 18'}
+ hasBin: true
+
+ math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
+ engines: {node: '>= 0.4'}
+
+ mdast-util-to-hast@13.2.0:
+ resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==}
+
+ mdurl@2.0.0:
+ resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
+
+ merge2@1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+
+ micromark-util-character@2.1.1:
+ resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
+
+ micromark-util-encode@2.0.1:
+ resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==}
+
+ micromark-util-sanitize-uri@2.0.1:
+ resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==}
+
+ micromark-util-symbol@2.0.1:
+ resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==}
+
+ micromark-util-types@2.0.1:
+ resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==}
+
+ micromatch@4.0.8:
+ resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+ engines: {node: '>=8.6'}
+
+ mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+
+ mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+
+ minimalistic-assert@1.0.1:
+ resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
+
+ minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+
+ minimatch@9.0.5:
+ resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
+ minipass@7.1.2:
+ resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ mrmime@1.0.1:
+ resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
+ engines: {node: '>=10'}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+ mustache@4.2.0:
+ resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==}
+ hasBin: true
+
+ mz@2.7.0:
+ resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
+
+ nanoid@3.3.8:
+ resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ natural-compare@1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ next@14.2.21:
+ resolution: {integrity: sha512-rZmLwucLHr3/zfDMYbJXbw0ZeoBpirxkXuvsJbk7UPorvPYZhP7vq7aHbKnU7dQNCYIimRrbB2pp3xmf+wsYUg==}
+ engines: {node: '>=18.17.0'}
+ hasBin: true
+ peerDependencies:
+ '@opentelemetry/api': ^1.1.0
+ '@playwright/test': ^1.41.2
+ react: ^18.2.0
+ react-dom: ^18.2.0
+ sass: ^1.3.0
+ peerDependenciesMeta:
+ '@opentelemetry/api':
+ optional: true
+ '@playwright/test':
+ optional: true
+ sass:
+ optional: true
+
+ no-case@3.0.4:
+ resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
+
+ node-domexception@1.0.0:
+ resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
+ engines: {node: '>=10.5.0'}
+
+ node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
+ node-gyp-build@4.8.4:
+ resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==}
+ hasBin: true
+
+ node-releases@2.0.19:
+ resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+
+ normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+
+ normalize-range@0.1.2:
+ resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
+ engines: {node: '>=0.10.0'}
+
+ nwsapi@2.2.16:
+ resolution: {integrity: sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==}
+
+ object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ engines: {node: '>=0.10.0'}
+
+ object-hash@3.0.0:
+ resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
+ engines: {node: '>= 6'}
+
+ object-inspect@1.13.3:
+ resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==}
+ engines: {node: '>= 0.4'}
+
+ object-is@1.1.6:
+ resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
+ engines: {node: '>= 0.4'}
+
+ object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+
+ object.assign@4.1.7:
+ resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
+ engines: {node: '>= 0.4'}
+
+ object.entries@1.1.8:
+ resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==}
+ engines: {node: '>= 0.4'}
+
+ object.fromentries@2.0.8:
+ resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==}
+ engines: {node: '>= 0.4'}
+
+ object.groupby@1.0.3:
+ resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==}
+ engines: {node: '>= 0.4'}
+
+ object.values@1.2.1:
+ resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==}
+ engines: {node: '>= 0.4'}
+
+ once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+
+ oniguruma-to-es@0.8.1:
+ resolution: {integrity: sha512-dekySTEvCxCj0IgKcA2uUCO/e4ArsqpucDPcX26w9ajx+DvMWLc5eZeJaRQkd7oC/+rwif5gnT900tA34uN9Zw==}
+
+ openai@4.77.0:
+ resolution: {integrity: sha512-WWacavtns/7pCUkOWvQIjyOfcdr9X+9n9Vvb0zFeKVDAqwCMDHB+iSr24SVaBAhplvSG6JrRXFpcNM9gWhOGIw==}
+ hasBin: true
+ peerDependencies:
+ zod: ^3.23.8
+ peerDependenciesMeta:
+ zod:
+ optional: true
+
+ openapi-types@12.1.3:
+ resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==}
+
+ opener@1.5.2:
+ resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==}
+ hasBin: true
+
+ optionator@0.9.4:
+ resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+ engines: {node: '>= 0.8.0'}
+
+ p-finally@1.0.0:
+ resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==}
+ engines: {node: '>=4'}
+
+ p-limit@3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+
+ p-locate@5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+
+ p-queue@6.6.2:
+ resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==}
+ engines: {node: '>=8'}
+
+ p-retry@4.6.2:
+ resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==}
+ engines: {node: '>=8'}
+
+ p-timeout@3.2.0:
+ resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
+ engines: {node: '>=8'}
+
+ package-json-from-dist@1.0.1:
+ resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
+
+ pako@0.2.9:
+ resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==}
+
+ pako@2.1.0:
+ resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==}
+
+ parent-module@1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+
+ parse5@7.2.1:
+ resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==}
+
+ path-exists@4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+
+ path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+
+ path-key@3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+
+ path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+ path-scurry@1.11.1:
+ resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
+ engines: {node: '>=16 || 14 >=14.18'}
+
+ path-type@4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+
+ pathval@2.0.0:
+ resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
+ engines: {node: '>= 14.16'}
+
+ peek-readable@4.1.0:
+ resolution: {integrity: sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==}
+ engines: {node: '>=8'}
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
+
+ picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+
+ pify@2.3.0:
+ resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
+ engines: {node: '>=0.10.0'}
+
+ pirates@4.0.6:
+ resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
+ engines: {node: '>= 6'}
+
+ playwright-core@1.49.1:
+ resolution: {integrity: sha512-BzmpVcs4kE2CH15rWfzpjzVGhWERJfmnXmniSyKeRZUs9Ws65m+RGIi7mjJK/euCegfn3i7jvqWeWyHe9y3Vgg==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ playwright@1.49.1:
+ resolution: {integrity: sha512-VYL8zLoNTBxVOrJBbDuRgDWa3i+mfQgDTrL8Ah9QXZ7ax4Dsj0MSq5bYgytRnDVVe+njoKnfsYkH3HzqVj5UZA==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ possible-typed-array-names@1.0.0:
+ resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
+ engines: {node: '>= 0.4'}
+
+ postcss-import@15.1.0:
+ resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ postcss: ^8.0.0
+
+ postcss-js@4.0.1:
+ resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
+ engines: {node: ^12 || ^14 || >= 16}
+ peerDependencies:
+ postcss: ^8.4.21
+
+ postcss-load-config@4.0.2:
+ resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
+ engines: {node: '>= 14'}
+ peerDependencies:
+ postcss: '>=8.0.9'
+ ts-node: '>=9.0.0'
+ peerDependenciesMeta:
+ postcss:
+ optional: true
+ ts-node:
+ optional: true
+
+ postcss-nested@6.2.0:
+ resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.2.14
+
+ postcss-selector-parser@6.0.10:
+ resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
+ engines: {node: '>=4'}
+
+ postcss-selector-parser@6.1.2:
+ resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
+ engines: {node: '>=4'}
+
+ postcss-value-parser@4.2.0:
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+
+ postcss@8.4.27:
+ resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ postcss@8.4.31:
+ resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ postcss@8.4.49:
+ resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==}
+ engines: {node: ^10 || ^12 || >=14}
+
+ prelude-ls@1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+
+ prettier@3.0.0:
+ resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ prop-types@15.8.1:
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+
+ property-information@6.5.0:
+ resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==}
+
+ proxy-from-env@1.1.0:
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+
+ psl@1.15.0:
+ resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==}
+
+ punycode.js@2.3.1:
+ resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
+ engines: {node: '>=6'}
+
+ punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+ engines: {node: '>=6'}
+
+ querystringify@2.2.0:
+ resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==}
+
+ queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+ react-dom@18.3.1:
+ resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
+ peerDependencies:
+ react: ^18.3.1
+
+ react-is@16.13.1:
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
+
+ react-toastify@9.1.3:
+ resolution: {integrity: sha512-fPfb8ghtn/XMxw3LkxQBk3IyagNpF/LIKjOBflbexr2AWxAH1MJgvnESwEwBn9liLFXgTKWgBSdZpw9m4OTHTg==}
+ peerDependencies:
+ react: '>=16'
+ react-dom: '>=16'
+
+ react@18.3.1:
+ resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
+ engines: {node: '>=0.10.0'}
+
+ read-cache@1.0.0:
+ resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
+
+ readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
+
+ readable-web-to-node-stream@3.0.2:
+ resolution: {integrity: sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==}
+ engines: {node: '>=8'}
+
+ readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+
+ reflect.getprototypeof@1.0.9:
+ resolution: {integrity: sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==}
+ engines: {node: '>= 0.4'}
+
+ regenerator-runtime@0.14.1:
+ resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
+
+ regex-recursion@5.0.0:
+ resolution: {integrity: sha512-UwyOqeobrCCqTXPcsSqH4gDhOjD5cI/b8kjngWgSZbxYh5yVjAwTjO5+hAuPRNiuR70+5RlWSs+U9PVcVcW9Lw==}
+
+ regex-utilities@2.3.0:
+ resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
+
+ regex@5.0.2:
+ resolution: {integrity: sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==}
+
+ regexp.prototype.flags@1.5.3:
+ resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==}
+ engines: {node: '>= 0.4'}
+
+ requires-port@1.0.0:
+ resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
+
+ resolve-from@4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+
+ resolve-pkg-maps@1.0.0:
+ resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+
+ resolve@1.22.10:
+ resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==}
+ engines: {node: '>= 0.4'}
+ hasBin: true
+
+ resolve@2.0.0-next.5:
+ resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
+ hasBin: true
+
+ retry-axios@2.6.0:
+ resolution: {integrity: sha512-pOLi+Gdll3JekwuFjXO3fTq+L9lzMQGcSq7M5gIjExcl3Gu1hd4XXuf5o3+LuSBsaULQH7DiNbsqPd1chVpQGQ==}
+ engines: {node: '>=10.7.0'}
+ peerDependencies:
+ axios: '*'
+
+ retry@0.13.1:
+ resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
+ engines: {node: '>= 4'}
+
+ reusify@1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+ rimraf@3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ deprecated: Rimraf versions prior to v4 are no longer supported
+ hasBin: true
+
+ rpc-websockets@9.0.4:
+ resolution: {integrity: sha512-yWZWN0M+bivtoNLnaDbtny4XchdAIF5Q4g/ZsC5UC61Ckbp0QczwO8fg44rV3uYmY4WHd+EZQbn90W1d8ojzqQ==}
+
+ rrweb-cssom@0.7.1:
+ resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==}
+
+ run-parallel@1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+
+ safe-array-concat@1.1.3:
+ resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
+ engines: {node: '>=0.4'}
+
+ safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+ safe-regex-test@1.1.0:
+ resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
+ engines: {node: '>= 0.4'}
+
+ safer-buffer@2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+
+ saxes@6.0.0:
+ resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
+ engines: {node: '>=v12.22.7'}
+
+ scheduler@0.23.2:
+ resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
+
+ secure-json-parse@2.7.0:
+ resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
+
+ semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+
+ semver@7.6.3:
+ resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ set-function-length@1.2.2:
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+ engines: {node: '>= 0.4'}
+
+ set-function-name@2.0.2:
+ resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
+ engines: {node: '>= 0.4'}
+
+ sharp@0.33.5:
+ resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==}
+ engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0}
+
+ shebang-command@2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+
+ shebang-regex@3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+
+ shiki@1.24.4:
+ resolution: {integrity: sha512-aVGSFAOAr1v26Hh/+GBIsRVDWJ583XYV7CuNURKRWh9gpGv4OdbisZGq96B9arMYTZhTQkmRF5BrShOSTvNqhw==}
+
+ side-channel-list@1.0.0:
+ resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-map@1.0.1:
+ resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-weakmap@1.0.2:
+ resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
+ engines: {node: '>= 0.4'}
+
+ side-channel@1.1.0:
+ resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
+ engines: {node: '>= 0.4'}
+
+ signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+
+ simple-swizzle@0.2.2:
+ resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==}
+
+ sirv@1.0.19:
+ resolution: {integrity: sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==}
+ engines: {node: '>= 10'}
+
+ slash@3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+
+ snake-case@3.0.4:
+ resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
+
+ solana-agent-kit@1.3.0:
+ resolution: {integrity: sha512-QEg37BgkjyL+8XoPoHizvCfUchxCXZYorm3IC2wGXsWnIi4XJkdNaMSwisuUFS0WzIHrvK3ublhYGxfRNvTGpg==}
+ engines: {node: '>=23.1.0', pnpm: '>=8.0.0'}
+
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
+
+ space-separated-tokens@2.0.2:
+ resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
+
+ sswr@2.1.0:
+ resolution: {integrity: sha512-Cqc355SYlTAaUt8iDPaC/4DPPXK925PePLMxyBKuWd5kKc5mwsG3nT9+Mq2tyguL5s7b4Jg+IRMpTRsNTAfpSQ==}
+ peerDependencies:
+ svelte: ^4.0.0 || ^5.0.0-next.0
+
+ stable-hash@0.0.4:
+ resolution: {integrity: sha512-LjdcbuBeLcdETCrPn9i8AYAZ1eCtu4ECAWtP7UleOiZ9LzVxRzzUZEoZ8zB24nhkQnDWyET0I+3sWokSDS3E7g==}
+
+ streamsearch@1.1.0:
+ resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
+ engines: {node: '>=10.0.0'}
+
+ string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+
+ string-width@5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
+
+ string.prototype.includes@2.0.1:
+ resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.matchall@4.0.12:
+ resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.repeat@1.0.0:
+ resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==}
+
+ string.prototype.trim@1.2.10:
+ resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimend@1.0.9:
+ resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimstart@1.0.8:
+ resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
+ engines: {node: '>= 0.4'}
+
+ string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+
+ stringify-entities@4.0.4:
+ resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
+
+ strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+
+ strip-ansi@7.1.0:
+ resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+ engines: {node: '>=12'}
+
+ strip-bom@3.0.0:
+ resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
+ engines: {node: '>=4'}
+
+ strip-json-comments@3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+
+ strtok3@6.3.0:
+ resolution: {integrity: sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==}
+ engines: {node: '>=10'}
+
+ styled-jsx@5.1.1:
+ resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
+ engines: {node: '>= 12.0.0'}
+ peerDependencies:
+ '@babel/core': '*'
+ babel-plugin-macros: '*'
+ react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ babel-plugin-macros:
+ optional: true
+
+ sucrase@3.35.0:
+ resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ hasBin: true
+
+ superstruct@0.15.5:
+ resolution: {integrity: sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==}
+
+ superstruct@2.0.2:
+ resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==}
+ engines: {node: '>=14.0.0'}
+
+ supports-color@7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
+ svelte@5.16.0:
+ resolution: {integrity: sha512-Ygqsiac6UogVED2ruKclU+pOeMThxWtp9LG+li7BXeDKC2paVIsRTMkNmcON4Zejerd1s5sZHWx6ZtU85xklVg==}
+ engines: {node: '>=18'}
+
+ swr@2.3.0:
+ resolution: {integrity: sha512-NyZ76wA4yElZWBHzSgEJc28a0u6QZvhb6w0azeL2k7+Q1gAzVK+IqQYXhVOC/mzi+HZIozrZvBVeSeOZNR2bqA==}
+ peerDependencies:
+ react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ swrev@4.0.0:
+ resolution: {integrity: sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==}
+
+ swrv@1.0.4:
+ resolution: {integrity: sha512-zjEkcP8Ywmj+xOJW3lIT65ciY/4AL4e/Or7Gj0MzU3zBJNMdJiT8geVZhINavnlHRMMCcJLHhraLTAiDOTmQ9g==}
+ peerDependencies:
+ vue: '>=3.2.26 < 4'
+
+ symbol-tree@3.2.4:
+ resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
+
+ tailwindcss@3.3.3:
+ resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+
+ tapable@2.2.1:
+ resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
+ engines: {node: '>=6'}
+
+ text-encoding-utf-8@1.0.2:
+ resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
+
+ text-table@0.2.0:
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+
+ thenify-all@1.6.0:
+ resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
+ engines: {node: '>=0.8'}
+
+ thenify@3.3.1:
+ resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
+
+ throttleit@2.1.0:
+ resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==}
+ engines: {node: '>=18'}
+
+ through@2.3.8:
+ resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+
+ tiny-inflate@1.0.3:
+ resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==}
+
+ tiny-invariant@1.3.3:
+ resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==}
+
+ tldts-core@6.1.70:
+ resolution: {integrity: sha512-RNnIXDB1FD4T9cpQRErEqw6ZpjLlGdMOitdV+0xtbsnwr4YFka1zpc7D4KD+aAn8oSG5JyFrdasZTE04qDE9Yg==}
+
+ tldts@6.1.70:
+ resolution: {integrity: sha512-/W1YVgYVJd9ZDjey5NXadNh0mJXkiUMUue9Zebd0vpdo1sU+H4zFFTaJ1RKD4N6KFoHfcXy6l+Vu7bh+bdWCzA==}
+ hasBin: true
+
+ to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+
+ toformat@2.0.0:
+ resolution: {integrity: sha512-03SWBVop6nU8bpyZCx7SodpYznbZF5R4ljwNLBcTQzKOD9xuihRo/psX58llS1BMFhhAI08H3luot5GoXJz2pQ==}
+
+ token-types@4.2.1:
+ resolution: {integrity: sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==}
+ engines: {node: '>=10'}
+
+ toml@3.0.0:
+ resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==}
+
+ totalist@1.1.0:
+ resolution: {integrity: sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==}
+ engines: {node: '>=6'}
+
+ tough-cookie@4.1.4:
+ resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==}
+ engines: {node: '>=6'}
+
+ tough-cookie@5.0.0:
+ resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==}
+ engines: {node: '>=16'}
+
+ tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
+ tr46@5.0.0:
+ resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==}
+ engines: {node: '>=18'}
+
+ trim-lines@3.0.1:
+ resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
+
+ ts-interface-checker@0.1.13:
+ resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
+
+ ts-log@2.2.7:
+ resolution: {integrity: sha512-320x5Ggei84AxzlXp91QkIGSw5wgaLT6GeAH0KsqDmRZdVWW2OiSeVvElVoatk3f7nicwXlElXsoFkARiGE2yg==}
+
+ tsconfig-paths@3.15.0:
+ resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+
+ tsconfig-paths@4.2.0:
+ resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==}
+ engines: {node: '>=6'}
+
+ tslib@1.14.1:
+ resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
+
+ tslib@2.8.1:
+ resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
+
+ tsutils@3.21.0:
+ resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
+ engines: {node: '>= 6'}
+ peerDependencies:
+ typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
+
+ tweetnacl@1.0.3:
+ resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==}
+
+ type-check@0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+
+ type-fest@0.20.2:
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+
+ typed-array-buffer@1.0.3:
+ resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-length@1.0.3:
+ resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-offset@1.0.4:
+ resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==}
+ engines: {node: '>= 0.4'}
+
+ typed-array-length@1.0.7:
+ resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
+ engines: {node: '>= 0.4'}
+
+ typedoc@0.26.11:
+ resolution: {integrity: sha512-sFEgRRtrcDl2FxVP58Ze++ZK2UQAEvtvvH8rRlig1Ja3o7dDaMHmaBfvJmdGnNEFaLTpQsN8dpvZaTqJSu/Ugw==}
+ engines: {node: '>= 18'}
+ hasBin: true
+ peerDependencies:
+ typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x
+
+ typescript@5.1.6:
+ resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ uc.micro@2.1.0:
+ resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
+
+ unbox-primitive@1.1.0:
+ resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==}
+ engines: {node: '>= 0.4'}
+
+ undici-types@5.26.5:
+ resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+
+ unicode-trie@2.0.0:
+ resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==}
+
+ unist-util-is@6.0.0:
+ resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
+
+ unist-util-position@5.0.0:
+ resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
+
+ unist-util-stringify-position@4.0.0:
+ resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
+
+ unist-util-visit-parents@6.0.1:
+ resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
+
+ unist-util-visit@5.0.0:
+ resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
+
+ universalify@0.2.0:
+ resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==}
+ engines: {node: '>= 4.0.0'}
+
+ universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
+ engines: {node: '>= 10.0.0'}
+
+ update-browserslist-db@1.1.1:
+ resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+
+ uri-js@4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
+ url-parse@1.5.10:
+ resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==}
+
+ use-sync-external-store@1.4.0:
+ resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ utf-8-validate@5.0.10:
+ resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
+ engines: {node: '>=6.14.2'}
+
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+ util@0.12.5:
+ resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+
+ uuid@10.0.0:
+ resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==}
+ hasBin: true
+
+ uuid@8.3.2:
+ resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
+ hasBin: true
+
+ uuid@9.0.1:
+ resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
+ hasBin: true
+
+ vfile-message@4.0.2:
+ resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
+
+ vfile@6.0.3:
+ resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
+
+ vue@3.5.13:
+ resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ w3c-xmlserializer@5.0.0:
+ resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==}
+ engines: {node: '>=18'}
+
+ web-streams-polyfill@3.3.3:
+ resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
+ engines: {node: '>= 8'}
+
+ web-streams-polyfill@4.0.0-beta.3:
+ resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==}
+ engines: {node: '>= 14'}
+
+ webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
+ webidl-conversions@7.0.0:
+ resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
+ engines: {node: '>=12'}
+
+ webpack-bundle-analyzer@4.7.0:
+ resolution: {integrity: sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==}
+ engines: {node: '>= 10.13.0'}
+ hasBin: true
+
+ whatwg-encoding@3.1.1:
+ resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
+ engines: {node: '>=18'}
+
+ whatwg-mimetype@4.0.0:
+ resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
+ engines: {node: '>=18'}
+
+ whatwg-url@14.1.0:
+ resolution: {integrity: sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==}
+ engines: {node: '>=18'}
+
+ whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+
+ which-boxed-primitive@1.1.1:
+ resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==}
+ engines: {node: '>= 0.4'}
+
+ which-builtin-type@1.2.1:
+ resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==}
+ engines: {node: '>= 0.4'}
+
+ which-collection@1.0.2:
+ resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==}
+ engines: {node: '>= 0.4'}
+
+ which-typed-array@1.1.18:
+ resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==}
+ engines: {node: '>= 0.4'}
+
+ which@2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+
+ word-wrap@1.2.5:
+ resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+ engines: {node: '>=0.10.0'}
+
+ wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+
+ wrap-ansi@8.1.0:
+ resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+ engines: {node: '>=12'}
+
+ wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
+ engines: {node: '>=8.3.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
+ ws@8.18.0:
+ resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: '>=5.0.2'
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
+ xml-name-validator@5.0.0:
+ resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
+ engines: {node: '>=18'}
+
+ xmlchars@2.2.0:
+ resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
+
+ yaml@2.6.1:
+ resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==}
+ engines: {node: '>= 14'}
+ hasBin: true
+
+ yocto-queue@0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+
+ zimmerframe@1.1.2:
+ resolution: {integrity: sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w==}
+
+ zod-to-json-schema@3.24.1:
+ resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==}
+ peerDependencies:
+ zod: ^3.24.1
+
+ zod@3.24.1:
+ resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==}
+
+ zwitch@2.0.4:
+ resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
+
+snapshots:
+
+ '@ai-sdk/provider-utils@1.0.22(zod@3.24.1)':
+ dependencies:
+ '@ai-sdk/provider': 0.0.26
+ eventsource-parser: 1.1.2
+ nanoid: 3.3.8
+ secure-json-parse: 2.7.0
+ optionalDependencies:
+ zod: 3.24.1
+
+ '@ai-sdk/provider@0.0.26':
+ dependencies:
+ json-schema: 0.4.0
+
+ '@ai-sdk/react@0.0.70(react@18.3.1)(zod@3.24.1)':
+ dependencies:
+ '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1)
+ '@ai-sdk/ui-utils': 0.0.50(zod@3.24.1)
+ swr: 2.3.0(react@18.3.1)
+ throttleit: 2.1.0
+ optionalDependencies:
+ react: 18.3.1
+ zod: 3.24.1
+
+ '@ai-sdk/solid@0.0.54(zod@3.24.1)':
+ dependencies:
+ '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1)
+ '@ai-sdk/ui-utils': 0.0.50(zod@3.24.1)
+ transitivePeerDependencies:
+ - zod
+
+ '@ai-sdk/svelte@0.0.57(svelte@5.16.0)(zod@3.24.1)':
+ dependencies:
+ '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1)
+ '@ai-sdk/ui-utils': 0.0.50(zod@3.24.1)
+ sswr: 2.1.0(svelte@5.16.0)
+ optionalDependencies:
+ svelte: 5.16.0
+ transitivePeerDependencies:
+ - zod
+
+ '@ai-sdk/ui-utils@0.0.50(zod@3.24.1)':
+ dependencies:
+ '@ai-sdk/provider': 0.0.26
+ '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1)
+ json-schema: 0.4.0
+ secure-json-parse: 2.7.0
+ zod-to-json-schema: 3.24.1(zod@3.24.1)
+ optionalDependencies:
+ zod: 3.24.1
+
+ '@ai-sdk/vue@0.0.59(vue@3.5.13(typescript@5.1.6))(zod@3.24.1)':
+ dependencies:
+ '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1)
+ '@ai-sdk/ui-utils': 0.0.50(zod@3.24.1)
+ swrv: 1.0.4(vue@3.5.13(typescript@5.1.6))
+ optionalDependencies:
+ vue: 3.5.13(typescript@5.1.6)
+ transitivePeerDependencies:
+ - zod
+
+ '@alloc/quick-lru@5.2.0': {}
+
+ '@ampproject/remapping@2.3.0':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.8
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@anthropic-ai/sdk@0.27.3':
+ dependencies:
+ '@types/node': 18.19.68
+ '@types/node-fetch': 2.6.12
+ abort-controller: 3.0.0
+ agentkeepalive: 4.5.0
+ form-data-encoder: 1.7.2
+ formdata-node: 4.4.1
+ node-fetch: 2.7.0
+ transitivePeerDependencies:
+ - encoding
+
+ '@babel/helper-string-parser@7.25.9': {}
+
+ '@babel/helper-validator-identifier@7.25.9': {}
+
+ '@babel/parser@7.26.3':
+ dependencies:
+ '@babel/types': 7.26.3
+
+ '@babel/runtime@7.26.0':
+ dependencies:
+ regenerator-runtime: 0.14.1
+
+ '@babel/types@7.26.3':
+ dependencies:
+ '@babel/helper-string-parser': 7.25.9
+ '@babel/helper-validator-identifier': 7.25.9
+
+ '@bonfida/sns-records@0.0.1(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ dependencies:
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ borsh: 1.0.0
+ bs58: 5.0.0
+ buffer: 6.0.3
+
+ '@bonfida/spl-name-service@3.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@bonfida/sns-records': 0.0.1(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@noble/curves': 1.7.0
+ '@scure/base': 1.2.1
+ '@solana/spl-token': 0.4.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ borsh: 2.0.0
+ buffer: 6.0.3
+ graphemesplit: 2.4.4
+ ipaddr.js: 2.2.0
+ punycode: 2.3.1
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - typescript
+ - utf-8-validate
+
+ '@browserbasehq/sdk@2.0.0':
+ dependencies:
+ '@types/node': 18.19.68
+ '@types/node-fetch': 2.6.12
+ abort-controller: 3.0.0
+ agentkeepalive: 4.5.0
+ form-data-encoder: 1.7.2
+ formdata-node: 4.4.1
+ node-fetch: 2.7.0
+ transitivePeerDependencies:
+ - encoding
+
+ '@browserbasehq/stagehand@1.8.0(@playwright/test@1.49.1)(bufferutil@4.0.8)(deepmerge@4.3.1)(dotenv@16.4.7)(openai@4.77.0(zod@3.24.1))(utf-8-validate@5.0.10)(zod@3.24.1)':
+ dependencies:
+ '@anthropic-ai/sdk': 0.27.3
+ '@browserbasehq/sdk': 2.0.0
+ '@playwright/test': 1.49.1
+ deepmerge: 4.3.1
+ dotenv: 16.4.7
+ openai: 4.77.0(zod@3.24.1)
+ sharp: 0.33.5
+ ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ zod: 3.24.1
+ zod-to-json-schema: 3.24.1(zod@3.24.1)
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+
+ '@cfworker/json-schema@4.0.3': {}
+
+ '@coral-xyz/anchor@0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@coral-xyz/borsh': 0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@noble/hashes': 1.6.1
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ bn.js: 5.2.1
+ bs58: 4.0.1
+ buffer-layout: 1.2.2
+ camelcase: 6.3.0
+ cross-fetch: 3.2.0
+ crypto-hash: 1.3.0
+ eventemitter3: 4.0.7
+ pako: 2.1.0
+ snake-case: 3.0.4
+ superstruct: 0.15.5
+ toml: 3.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+
+ '@coral-xyz/borsh@0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ dependencies:
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ bn.js: 5.2.1
+ buffer-layout: 1.2.2
+
+ '@emnapi/runtime@1.3.1':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@eslint-community/eslint-utils@4.4.1(eslint@8.46.0)':
+ dependencies:
+ eslint: 8.46.0
+ eslint-visitor-keys: 3.4.3
+
+ '@eslint-community/regexpp@4.12.1': {}
+
+ '@eslint/eslintrc@2.1.4':
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.4.0
+ espree: 9.6.1
+ globals: 13.24.0
+ ignore: 5.3.2
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/js@8.57.1': {}
+
+ '@ethersproject/bytes@5.7.0':
+ dependencies:
+ '@ethersproject/logger': 5.7.0
+
+ '@ethersproject/logger@5.7.0': {}
+
+ '@ethersproject/sha2@5.7.0':
+ dependencies:
+ '@ethersproject/bytes': 5.7.0
+ '@ethersproject/logger': 5.7.0
+ hash.js: 1.1.7
+
+ '@humanwhocodes/config-array@0.11.14':
+ dependencies:
+ '@humanwhocodes/object-schema': 2.0.3
+ debug: 4.4.0
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@humanwhocodes/module-importer@1.0.1': {}
+
+ '@humanwhocodes/object-schema@2.0.3': {}
+
+ '@ibm-cloud/watsonx-ai@1.3.0':
+ dependencies:
+ '@types/node': 18.19.68
+ extend: 3.0.2
+ ibm-cloud-sdk-core: 5.1.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@img/sharp-darwin-arm64@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-darwin-arm64': 1.0.4
+ optional: true
+
+ '@img/sharp-darwin-x64@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-darwin-x64': 1.0.4
+ optional: true
+
+ '@img/sharp-libvips-darwin-arm64@1.0.4':
+ optional: true
+
+ '@img/sharp-libvips-darwin-x64@1.0.4':
+ optional: true
+
+ '@img/sharp-libvips-linux-arm64@1.0.4':
+ optional: true
+
+ '@img/sharp-libvips-linux-arm@1.0.5':
+ optional: true
+
+ '@img/sharp-libvips-linux-s390x@1.0.4':
+ optional: true
+
+ '@img/sharp-libvips-linux-x64@1.0.4':
+ optional: true
+
+ '@img/sharp-libvips-linuxmusl-arm64@1.0.4':
+ optional: true
+
+ '@img/sharp-libvips-linuxmusl-x64@1.0.4':
+ optional: true
+
+ '@img/sharp-linux-arm64@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-arm64': 1.0.4
+ optional: true
+
+ '@img/sharp-linux-arm@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-arm': 1.0.5
+ optional: true
+
+ '@img/sharp-linux-s390x@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-s390x': 1.0.4
+ optional: true
+
+ '@img/sharp-linux-x64@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linux-x64': 1.0.4
+ optional: true
+
+ '@img/sharp-linuxmusl-arm64@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linuxmusl-arm64': 1.0.4
+ optional: true
+
+ '@img/sharp-linuxmusl-x64@0.33.5':
+ optionalDependencies:
+ '@img/sharp-libvips-linuxmusl-x64': 1.0.4
+ optional: true
+
+ '@img/sharp-wasm32@0.33.5':
+ dependencies:
+ '@emnapi/runtime': 1.3.1
+ optional: true
+
+ '@img/sharp-win32-ia32@0.33.5':
+ optional: true
+
+ '@img/sharp-win32-x64@0.33.5':
+ optional: true
+
+ '@isaacs/cliui@8.0.2':
+ dependencies:
+ string-width: 5.1.2
+ string-width-cjs: string-width@4.2.3
+ strip-ansi: 7.1.0
+ strip-ansi-cjs: strip-ansi@6.0.1
+ wrap-ansi: 8.1.0
+ wrap-ansi-cjs: wrap-ansi@7.0.0
+
+ '@jridgewell/gen-mapping@0.3.8':
+ dependencies:
+ '@jridgewell/set-array': 1.2.1
+ '@jridgewell/sourcemap-codec': 1.5.0
+ '@jridgewell/trace-mapping': 0.3.25
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/set-array@1.2.1': {}
+
+ '@jridgewell/sourcemap-codec@1.5.0': {}
+
+ '@jridgewell/trace-mapping@0.3.25':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ '@langchain/community@0.3.20(@browserbasehq/sdk@2.0.0)(@browserbasehq/stagehand@1.8.0(@playwright/test@1.49.1)(bufferutil@4.0.8)(deepmerge@4.3.1)(dotenv@16.4.7)(openai@4.77.0(zod@3.24.1))(utf-8-validate@5.0.10)(zod@3.24.1))(@ibm-cloud/watsonx-ai@1.3.0)(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(@supabase/supabase-js@2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10))(axios@1.7.4)(ibm-cloud-sdk-core@5.1.0)(ignore@5.3.2)(jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(jsonwebtoken@9.0.2)(lodash@4.17.21)(openai@4.77.0(zod@3.24.1))(playwright@1.49.1)(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ dependencies:
+ '@browserbasehq/stagehand': 1.8.0(@playwright/test@1.49.1)(bufferutil@4.0.8)(deepmerge@4.3.1)(dotenv@16.4.7)(openai@4.77.0(zod@3.24.1))(utf-8-validate@5.0.10)(zod@3.24.1)
+ '@ibm-cloud/watsonx-ai': 1.3.0
+ '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1))
+ '@langchain/openai': 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ binary-extensions: 2.3.0
+ expr-eval: 2.0.2
+ flat: 5.0.2
+ ibm-cloud-sdk-core: 5.1.0
+ js-yaml: 4.1.0
+ langchain: 0.3.8(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(axios@1.7.4)(openai@4.77.0(zod@3.24.1))
+ langsmith: 0.2.14(openai@4.77.0(zod@3.24.1))
+ openai: 4.77.0(zod@3.24.1)
+ uuid: 10.0.0
+ zod: 3.24.1
+ zod-to-json-schema: 3.24.1(zod@3.24.1)
+ optionalDependencies:
+ '@browserbasehq/sdk': 2.0.0
+ '@supabase/supabase-js': 2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ignore: 5.3.2
+ jsdom: 25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jsonwebtoken: 9.0.2
+ lodash: 4.17.21
+ playwright: 1.49.1
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - '@langchain/anthropic'
+ - '@langchain/aws'
+ - '@langchain/cohere'
+ - '@langchain/google-genai'
+ - '@langchain/google-vertexai'
+ - '@langchain/groq'
+ - '@langchain/mistralai'
+ - '@langchain/ollama'
+ - axios
+ - encoding
+ - handlebars
+ - peggy
+
+ '@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))':
+ dependencies:
+ '@cfworker/json-schema': 4.0.3
+ ansi-styles: 5.2.0
+ camelcase: 6.3.0
+ decamelize: 1.2.0
+ js-tiktoken: 1.0.16
+ langsmith: 0.2.14(openai@4.77.0(zod@3.24.1))
+ mustache: 4.2.0
+ p-queue: 6.6.2
+ p-retry: 4.6.2
+ uuid: 10.0.0
+ zod: 3.24.1
+ zod-to-json-schema: 3.24.1(zod@3.24.1)
+ transitivePeerDependencies:
+ - openai
+
+ '@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))':
+ dependencies:
+ '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1))
+ '@langchain/openai': 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ groq-sdk: 0.5.0
+ zod: 3.24.1
+ zod-to-json-schema: 3.24.1(zod@3.24.1)
+ transitivePeerDependencies:
+ - encoding
+
+ '@langchain/langgraph-checkpoint@0.0.13(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))':
+ dependencies:
+ '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1))
+ uuid: 10.0.0
+
+ '@langchain/langgraph-sdk@0.0.32':
+ dependencies:
+ '@types/json-schema': 7.0.15
+ p-queue: 6.6.2
+ p-retry: 4.6.2
+ uuid: 9.0.1
+
+ '@langchain/langgraph@0.2.36(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))':
+ dependencies:
+ '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1))
+ '@langchain/langgraph-checkpoint': 0.0.13(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ '@langchain/langgraph-sdk': 0.0.32
+ uuid: 10.0.0
+ zod: 3.24.1
+
+ '@langchain/openai@0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))':
+ dependencies:
+ '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1))
+ js-tiktoken: 1.0.16
+ openai: 4.77.0(zod@3.24.1)
+ zod: 3.24.1
+ zod-to-json-schema: 3.24.1(zod@3.24.1)
+ transitivePeerDependencies:
+ - encoding
+
+ '@langchain/textsplitters@0.1.0(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))':
+ dependencies:
+ '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1))
+ js-tiktoken: 1.0.16
+
+ '@lightprotocol/compressed-token@0.17.1(@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@lightprotocol/stateless.js': 0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.4.8(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ buffer: 6.0.3
+ tweetnacl: 1.0.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - typescript
+ - utf-8-validate
+
+ '@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@noble/hashes': 1.5.0
+ '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ buffer: 6.0.3
+ superstruct: 2.0.2
+ tweetnacl: 1.0.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+
+ '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@metaplex-foundation/beet': 0.7.2
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ bs58: 5.0.0
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ '@metaplex-foundation/beet@0.7.2':
+ dependencies:
+ ansicolors: 0.3.2
+ assert: 2.1.0
+ bn.js: 5.2.1
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@metaplex-foundation/mpl-core@1.1.1(@metaplex-foundation/umi@0.9.2)(@noble/hashes@1.6.1)':
+ dependencies:
+ '@metaplex-foundation/umi': 0.9.2
+ '@msgpack/msgpack': 3.0.0-beta2
+ '@noble/hashes': 1.6.1
+
+ '@metaplex-foundation/mpl-token-metadata@3.3.0(@metaplex-foundation/umi@0.9.2)':
+ dependencies:
+ '@metaplex-foundation/mpl-toolbox': 0.9.4(@metaplex-foundation/umi@0.9.2)
+ '@metaplex-foundation/umi': 0.9.2
+
+ '@metaplex-foundation/mpl-toolbox@0.9.4(@metaplex-foundation/umi@0.9.2)':
+ dependencies:
+ '@metaplex-foundation/umi': 0.9.2
+
+ '@metaplex-foundation/umi-bundle-defaults@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ dependencies:
+ '@metaplex-foundation/umi': 0.9.2
+ '@metaplex-foundation/umi-downloader-http': 0.9.2(@metaplex-foundation/umi@0.9.2)
+ '@metaplex-foundation/umi-eddsa-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@metaplex-foundation/umi-http-fetch': 0.9.2(@metaplex-foundation/umi@0.9.2)
+ '@metaplex-foundation/umi-program-repository': 0.9.2(@metaplex-foundation/umi@0.9.2)
+ '@metaplex-foundation/umi-rpc-chunk-get-accounts': 0.9.2(@metaplex-foundation/umi@0.9.2)
+ '@metaplex-foundation/umi-rpc-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@metaplex-foundation/umi-serializer-data-view': 0.9.2(@metaplex-foundation/umi@0.9.2)
+ '@metaplex-foundation/umi-transaction-factory-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - encoding
+
+ '@metaplex-foundation/umi-downloader-http@0.9.2(@metaplex-foundation/umi@0.9.2)':
+ dependencies:
+ '@metaplex-foundation/umi': 0.9.2
+
+ '@metaplex-foundation/umi-eddsa-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ dependencies:
+ '@metaplex-foundation/umi': 0.9.2
+ '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@noble/curves': 1.7.0
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+
+ '@metaplex-foundation/umi-http-fetch@0.9.2(@metaplex-foundation/umi@0.9.2)':
+ dependencies:
+ '@metaplex-foundation/umi': 0.9.2
+ node-fetch: 2.7.0
+ transitivePeerDependencies:
+ - encoding
+
+ '@metaplex-foundation/umi-options@0.8.9': {}
+
+ '@metaplex-foundation/umi-program-repository@0.9.2(@metaplex-foundation/umi@0.9.2)':
+ dependencies:
+ '@metaplex-foundation/umi': 0.9.2
+
+ '@metaplex-foundation/umi-public-keys@0.8.9':
+ dependencies:
+ '@metaplex-foundation/umi-serializers-encodings': 0.8.9
+
+ '@metaplex-foundation/umi-rpc-chunk-get-accounts@0.9.2(@metaplex-foundation/umi@0.9.2)':
+ dependencies:
+ '@metaplex-foundation/umi': 0.9.2
+
+ '@metaplex-foundation/umi-rpc-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ dependencies:
+ '@metaplex-foundation/umi': 0.9.2
+ '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+
+ '@metaplex-foundation/umi-serializer-data-view@0.9.2(@metaplex-foundation/umi@0.9.2)':
+ dependencies:
+ '@metaplex-foundation/umi': 0.9.2
+
+ '@metaplex-foundation/umi-serializers-core@0.8.9': {}
+
+ '@metaplex-foundation/umi-serializers-encodings@0.8.9':
+ dependencies:
+ '@metaplex-foundation/umi-serializers-core': 0.8.9
+
+ '@metaplex-foundation/umi-serializers-numbers@0.8.9':
+ dependencies:
+ '@metaplex-foundation/umi-serializers-core': 0.8.9
+
+ '@metaplex-foundation/umi-serializers@0.9.0':
+ dependencies:
+ '@metaplex-foundation/umi-options': 0.8.9
+ '@metaplex-foundation/umi-public-keys': 0.8.9
+ '@metaplex-foundation/umi-serializers-core': 0.8.9
+ '@metaplex-foundation/umi-serializers-encodings': 0.8.9
+ '@metaplex-foundation/umi-serializers-numbers': 0.8.9
+
+ '@metaplex-foundation/umi-transaction-factory-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ dependencies:
+ '@metaplex-foundation/umi': 0.9.2
+ '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+
+ '@metaplex-foundation/umi-web3js-adapters@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ dependencies:
+ '@metaplex-foundation/umi': 0.9.2
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ buffer: 6.0.3
+
+ '@metaplex-foundation/umi@0.9.2':
+ dependencies:
+ '@metaplex-foundation/umi-options': 0.8.9
+ '@metaplex-foundation/umi-public-keys': 0.8.9
+ '@metaplex-foundation/umi-serializers': 0.9.0
+
+ '@msgpack/msgpack@3.0.0-beta2': {}
+
+ '@next/bundle-analyzer@13.5.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ dependencies:
+ webpack-bundle-analyzer: 4.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
+ '@next/env@14.2.21': {}
+
+ '@next/eslint-plugin-next@13.4.12':
+ dependencies:
+ glob: 7.1.7
+
+ '@next/swc-darwin-arm64@14.2.21':
+ optional: true
+
+ '@next/swc-darwin-x64@14.2.21':
+ optional: true
+
+ '@next/swc-linux-arm64-gnu@14.2.21':
+ optional: true
+
+ '@next/swc-linux-arm64-musl@14.2.21':
+ optional: true
+
+ '@next/swc-linux-x64-gnu@14.2.21':
+ optional: true
+
+ '@next/swc-linux-x64-musl@14.2.21':
+ optional: true
+
+ '@next/swc-win32-arm64-msvc@14.2.21':
+ optional: true
+
+ '@next/swc-win32-ia32-msvc@14.2.21':
+ optional: true
+
+ '@next/swc-win32-x64-msvc@14.2.21':
+ optional: true
+
+ '@noble/curves@1.7.0':
+ dependencies:
+ '@noble/hashes': 1.6.0
+
+ '@noble/hashes@1.5.0': {}
+
+ '@noble/hashes@1.6.0': {}
+
+ '@noble/hashes@1.6.1': {}
+
+ '@nodelib/fs.scandir@2.1.5':
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+
+ '@nodelib/fs.stat@2.0.5': {}
+
+ '@nodelib/fs.walk@1.2.8':
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.18.0
+
+ '@nolyfill/is-core-module@1.0.39': {}
+
+ '@onsol/tldparser@0.6.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bn.js@5.2.1)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@ethersproject/sha2': 5.7.0
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ bn.js: 5.2.1
+ borsh: 2.0.0
+ buffer: 6.0.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ '@opentelemetry/api@1.9.0': {}
+
+ '@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3)':
+ dependencies:
+ '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ decimal.js: 10.4.3
+ tiny-invariant: 1.3.3
+
+ '@orca-so/whirlpools-sdk@0.13.12(@coral-xyz/anchor@0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3))(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3)':
+ dependencies:
+ '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@orca-so/common-sdk': 0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3)
+ '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ decimal.js: 10.4.3
+ tiny-invariant: 1.3.3
+
+ '@pkgjs/parseargs@0.11.0':
+ optional: true
+
+ '@playwright/test@1.49.1':
+ dependencies:
+ playwright: 1.49.1
+
+ '@polka/url@1.0.0-next.28': {}
+
+ '@pythnetwork/price-service-client@1.9.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@pythnetwork/price-service-sdk': 1.8.0
+ '@types/ws': 8.5.13
+ axios: 1.7.4(debug@4.4.0)
+ axios-retry: 3.9.1
+ isomorphic-ws: 4.0.1(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ ts-log: 2.2.7
+ ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - bufferutil
+ - debug
+ - utf-8-validate
+
+ '@pythnetwork/price-service-sdk@1.8.0':
+ dependencies:
+ bn.js: 5.2.1
+
+ '@raydium-io/raydium-sdk-v2@0.1.95-alpha(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@solana/buffer-layout': 4.0.1
+ '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ axios: 1.7.4(debug@4.4.0)
+ big.js: 6.2.2
+ bn.js: 5.2.1
+ dayjs: 1.11.13
+ decimal.js-light: 2.5.1
+ jsonfile: 6.1.0
+ lodash: 4.17.21
+ toformat: 2.0.0
+ tsconfig-paths: 4.2.0
+ transitivePeerDependencies:
+ - bufferutil
+ - debug
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - typescript
+ - utf-8-validate
+
+ '@rtsao/scc@1.1.0': {}
+
+ '@rushstack/eslint-patch@1.10.4': {}
+
+ '@scure/base@1.2.1': {}
+
+ '@shikijs/core@1.24.4':
+ dependencies:
+ '@shikijs/engine-javascript': 1.24.4
+ '@shikijs/engine-oniguruma': 1.24.4
+ '@shikijs/types': 1.24.4
+ '@shikijs/vscode-textmate': 9.3.1
+ '@types/hast': 3.0.4
+ hast-util-to-html: 9.0.4
+
+ '@shikijs/engine-javascript@1.24.4':
+ dependencies:
+ '@shikijs/types': 1.24.4
+ '@shikijs/vscode-textmate': 9.3.1
+ oniguruma-to-es: 0.8.1
+
+ '@shikijs/engine-oniguruma@1.24.4':
+ dependencies:
+ '@shikijs/types': 1.24.4
+ '@shikijs/vscode-textmate': 9.3.1
+
+ '@shikijs/types@1.24.4':
+ dependencies:
+ '@shikijs/vscode-textmate': 9.3.1
+ '@types/hast': 3.0.4
+
+ '@shikijs/vscode-textmate@9.3.1': {}
+
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@solana/buffer-layout': 4.0.1
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ bigint-buffer: 1.1.5
+ bignumber.js: 9.1.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+
+ '@solana/buffer-layout@4.0.1':
+ dependencies:
+ buffer: 6.0.3
+
+ '@solana/codecs-core@2.0.0-preview.2':
+ dependencies:
+ '@solana/errors': 2.0.0-preview.2
+
+ '@solana/codecs-core@2.0.0-preview.4(typescript@5.1.6)':
+ dependencies:
+ '@solana/errors': 2.0.0-preview.4(typescript@5.1.6)
+ typescript: 5.1.6
+
+ '@solana/codecs-core@2.0.0-rc.1(typescript@5.1.6)':
+ dependencies:
+ '@solana/errors': 2.0.0-rc.1(typescript@5.1.6)
+ typescript: 5.1.6
+
+ '@solana/codecs-data-structures@2.0.0-preview.2':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-preview.2
+ '@solana/codecs-numbers': 2.0.0-preview.2
+ '@solana/errors': 2.0.0-preview.2
+
+ '@solana/codecs-data-structures@2.0.0-preview.4(typescript@5.1.6)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-preview.4(typescript@5.1.6)
+ '@solana/codecs-numbers': 2.0.0-preview.4(typescript@5.1.6)
+ '@solana/errors': 2.0.0-preview.4(typescript@5.1.6)
+ typescript: 5.1.6
+
+ '@solana/codecs-data-structures@2.0.0-rc.1(typescript@5.1.6)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.1.6)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.1.6)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.1.6)
+ typescript: 5.1.6
+
+ '@solana/codecs-numbers@2.0.0-preview.2':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-preview.2
+ '@solana/errors': 2.0.0-preview.2
+
+ '@solana/codecs-numbers@2.0.0-preview.4(typescript@5.1.6)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-preview.4(typescript@5.1.6)
+ '@solana/errors': 2.0.0-preview.4(typescript@5.1.6)
+ typescript: 5.1.6
+
+ '@solana/codecs-numbers@2.0.0-rc.1(typescript@5.1.6)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.1.6)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.1.6)
+ typescript: 5.1.6
+
+ '@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-preview.2
+ '@solana/codecs-numbers': 2.0.0-preview.2
+ '@solana/errors': 2.0.0-preview.2
+ fastestsmallesttextencoderdecoder: 1.0.22
+
+ '@solana/codecs-strings@2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-preview.4(typescript@5.1.6)
+ '@solana/codecs-numbers': 2.0.0-preview.4(typescript@5.1.6)
+ '@solana/errors': 2.0.0-preview.4(typescript@5.1.6)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ typescript: 5.1.6
+
+ '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.1.6)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.1.6)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.1.6)
+ fastestsmallesttextencoderdecoder: 1.0.22
+ typescript: 5.1.6
+
+ '@solana/codecs@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-preview.2
+ '@solana/codecs-data-structures': 2.0.0-preview.2
+ '@solana/codecs-numbers': 2.0.0-preview.2
+ '@solana/codecs-strings': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/options': 2.0.0-preview.2
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+
+ '@solana/codecs@2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-preview.4(typescript@5.1.6)
+ '@solana/codecs-data-structures': 2.0.0-preview.4(typescript@5.1.6)
+ '@solana/codecs-numbers': 2.0.0-preview.4(typescript@5.1.6)
+ '@solana/codecs-strings': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)
+ '@solana/options': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)
+ typescript: 5.1.6
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+
+ '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.1.6)
+ '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.1.6)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.1.6)
+ '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)
+ '@solana/options': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)
+ typescript: 5.1.6
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+
+ '@solana/errors@2.0.0-preview.2':
+ dependencies:
+ chalk: 5.4.1
+ commander: 12.1.0
+
+ '@solana/errors@2.0.0-preview.4(typescript@5.1.6)':
+ dependencies:
+ chalk: 5.4.1
+ commander: 12.1.0
+ typescript: 5.1.6
+
+ '@solana/errors@2.0.0-rc.1(typescript@5.1.6)':
+ dependencies:
+ chalk: 5.4.1
+ commander: 12.1.0
+ typescript: 5.1.6
+
+ '@solana/options@2.0.0-preview.2':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-preview.2
+ '@solana/codecs-numbers': 2.0.0-preview.2
+
+ '@solana/options@2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-preview.4(typescript@5.1.6)
+ '@solana/codecs-data-structures': 2.0.0-preview.4(typescript@5.1.6)
+ '@solana/codecs-numbers': 2.0.0-preview.4(typescript@5.1.6)
+ '@solana/codecs-strings': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)
+ '@solana/errors': 2.0.0-preview.4(typescript@5.1.6)
+ typescript: 5.1.6
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+
+ '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)':
+ dependencies:
+ '@solana/codecs-core': 2.0.0-rc.1(typescript@5.1.6)
+ '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.1.6)
+ '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.1.6)
+ '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)
+ '@solana/errors': 2.0.0-rc.1(typescript@5.1.6)
+ typescript: 5.1.6
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+
+ '@solana/spl-token-group@0.0.4(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ dependencies:
+ '@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/spl-type-length-value': 0.1.0
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+
+ '@solana/spl-token-group@0.0.5(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)':
+ dependencies:
+ '@solana/codecs': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)
+ '@solana/spl-type-length-value': 0.1.0
+ '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+ - typescript
+
+ '@solana/spl-token-group@0.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)':
+ dependencies:
+ '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+ - typescript
+
+ '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)':
+ dependencies:
+ '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)
+ '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+ - typescript
+
+ '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)':
+ dependencies:
+ '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - fastestsmallesttextencoderdecoder
+ - typescript
+
+ '@solana/spl-token@0.4.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@solana/buffer-layout': 4.0.1
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token-group': 0.0.4(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ buffer: 6.0.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - typescript
+ - utf-8-validate
+
+ '@solana/spl-token@0.4.8(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@solana/buffer-layout': 4.0.1
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token-group': 0.0.5(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)
+ '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ buffer: 6.0.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - typescript
+ - utf-8-validate
+
+ '@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@solana/buffer-layout': 4.0.1
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ buffer: 6.0.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - typescript
+ - utf-8-validate
+
+ '@solana/spl-type-length-value@0.1.0':
+ dependencies:
+ buffer: 6.0.3
+
+ '@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@babel/runtime': 7.26.0
+ '@noble/curves': 1.7.0
+ '@noble/hashes': 1.5.0
+ '@solana/buffer-layout': 4.0.1
+ agentkeepalive: 4.5.0
+ bigint-buffer: 1.1.5
+ bn.js: 5.2.1
+ borsh: 0.7.0
+ bs58: 4.0.1
+ buffer: 6.0.3
+ fast-stable-stringify: 1.0.0
+ jayson: 4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ node-fetch: 2.7.0
+ rpc-websockets: 9.0.4
+ superstruct: 2.0.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+
+ '@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@babel/runtime': 7.26.0
+ '@noble/curves': 1.7.0
+ '@noble/hashes': 1.6.1
+ '@solana/buffer-layout': 4.0.1
+ agentkeepalive: 4.5.0
+ bigint-buffer: 1.1.5
+ bn.js: 5.2.1
+ borsh: 0.7.0
+ bs58: 4.0.1
+ buffer: 6.0.3
+ fast-stable-stringify: 1.0.0
+ jayson: 4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ node-fetch: 2.7.0
+ rpc-websockets: 9.0.4
+ superstruct: 2.0.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+
+ '@supabase/auth-js@2.67.3':
+ dependencies:
+ '@supabase/node-fetch': 2.6.15
+
+ '@supabase/functions-js@2.4.4':
+ dependencies:
+ '@supabase/node-fetch': 2.6.15
+
+ '@supabase/node-fetch@2.6.15':
+ dependencies:
+ whatwg-url: 5.0.0
+
+ '@supabase/postgrest-js@1.17.7':
+ dependencies:
+ '@supabase/node-fetch': 2.6.15
+
+ '@supabase/realtime-js@2.11.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@supabase/node-fetch': 2.6.15
+ '@types/phoenix': 1.6.6
+ '@types/ws': 8.5.13
+ ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
+ '@supabase/storage-js@2.7.1':
+ dependencies:
+ '@supabase/node-fetch': 2.6.15
+
+ '@supabase/supabase-js@2.47.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@supabase/auth-js': 2.67.3
+ '@supabase/functions-js': 2.4.4
+ '@supabase/node-fetch': 2.6.15
+ '@supabase/postgrest-js': 1.17.7
+ '@supabase/realtime-js': 2.11.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@supabase/storage-js': 2.7.1
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
+ '@swc/counter@0.1.3': {}
+
+ '@swc/helpers@0.5.15':
+ dependencies:
+ tslib: 2.8.1
+
+ '@swc/helpers@0.5.5':
+ dependencies:
+ '@swc/counter': 0.1.3
+ tslib: 2.8.1
+
+ '@tailwindcss/typography@0.5.15(tailwindcss@3.3.3)':
+ dependencies:
+ lodash.castarray: 4.4.0
+ lodash.isplainobject: 4.0.6
+ lodash.merge: 4.6.2
+ postcss-selector-parser: 6.0.10
+ tailwindcss: 3.3.3
+
+ '@tokenizer/token@0.3.0': {}
+
+ '@types/connect@3.4.38':
+ dependencies:
+ '@types/node': 20.12.12
+
+ '@types/debug@4.1.12':
+ dependencies:
+ '@types/ms': 0.7.34
+
+ '@types/diff-match-patch@1.0.36': {}
+
+ '@types/estree@1.0.6': {}
+
+ '@types/hast@3.0.4':
+ dependencies:
+ '@types/unist': 3.0.3
+
+ '@types/json-schema@7.0.15': {}
+
+ '@types/json5@0.0.29': {}
+
+ '@types/mdast@4.0.4':
+ dependencies:
+ '@types/unist': 3.0.3
+
+ '@types/ms@0.7.34': {}
+
+ '@types/node-fetch@2.6.12':
+ dependencies:
+ '@types/node': 20.12.12
+ form-data: 4.0.1
+
+ '@types/node@10.14.22': {}
+
+ '@types/node@12.20.55': {}
+
+ '@types/node@18.19.68':
+ dependencies:
+ undici-types: 5.26.5
+
+ '@types/node@20.12.12':
+ dependencies:
+ undici-types: 5.26.5
+
+ '@types/phoenix@1.6.6': {}
+
+ '@types/prop-types@15.7.14': {}
+
+ '@types/react-dom@18.3.0':
+ dependencies:
+ '@types/react': 18.3.2
+
+ '@types/react@18.3.2':
+ dependencies:
+ '@types/prop-types': 15.7.14
+ csstype: 3.1.3
+
+ '@types/retry@0.12.0': {}
+
+ '@types/tough-cookie@4.0.5': {}
+
+ '@types/trusted-types@2.0.7':
+ optional: true
+
+ '@types/unist@3.0.3': {}
+
+ '@types/uuid@10.0.0': {}
+
+ '@types/uuid@8.3.4': {}
+
+ '@types/ws@7.4.7':
+ dependencies:
+ '@types/node': 20.12.12
+
+ '@types/ws@8.5.13':
+ dependencies:
+ '@types/node': 20.12.12
+
+ '@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6)':
+ dependencies:
+ '@typescript-eslint/scope-manager': 5.62.0
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6)
+ debug: 4.4.0
+ eslint: 8.46.0
+ optionalDependencies:
+ typescript: 5.1.6
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/scope-manager@5.62.0':
+ dependencies:
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/visitor-keys': 5.62.0
+
+ '@typescript-eslint/types@5.62.0': {}
+
+ '@typescript-eslint/typescript-estree@5.62.0(typescript@5.1.6)':
+ dependencies:
+ '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/visitor-keys': 5.62.0
+ debug: 4.4.0
+ globby: 11.1.0
+ is-glob: 4.0.3
+ semver: 7.6.3
+ tsutils: 3.21.0(typescript@5.1.6)
+ optionalDependencies:
+ typescript: 5.1.6
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/visitor-keys@5.62.0':
+ dependencies:
+ '@typescript-eslint/types': 5.62.0
+ eslint-visitor-keys: 3.4.3
+
+ '@ungap/structured-clone@1.2.1': {}
+
+ '@vue/compiler-core@3.5.13':
+ dependencies:
+ '@babel/parser': 7.26.3
+ '@vue/shared': 3.5.13
+ entities: 4.5.0
+ estree-walker: 2.0.2
+ source-map-js: 1.2.1
+
+ '@vue/compiler-dom@3.5.13':
+ dependencies:
+ '@vue/compiler-core': 3.5.13
+ '@vue/shared': 3.5.13
+
+ '@vue/compiler-sfc@3.5.13':
+ dependencies:
+ '@babel/parser': 7.26.3
+ '@vue/compiler-core': 3.5.13
+ '@vue/compiler-dom': 3.5.13
+ '@vue/compiler-ssr': 3.5.13
+ '@vue/shared': 3.5.13
+ estree-walker: 2.0.2
+ magic-string: 0.30.17
+ postcss: 8.4.49
+ source-map-js: 1.2.1
+
+ '@vue/compiler-ssr@3.5.13':
+ dependencies:
+ '@vue/compiler-dom': 3.5.13
+ '@vue/shared': 3.5.13
+
+ '@vue/reactivity@3.5.13':
+ dependencies:
+ '@vue/shared': 3.5.13
+
+ '@vue/runtime-core@3.5.13':
+ dependencies:
+ '@vue/reactivity': 3.5.13
+ '@vue/shared': 3.5.13
+
+ '@vue/runtime-dom@3.5.13':
+ dependencies:
+ '@vue/reactivity': 3.5.13
+ '@vue/runtime-core': 3.5.13
+ '@vue/shared': 3.5.13
+ csstype: 3.1.3
+
+ '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.1.6))':
+ dependencies:
+ '@vue/compiler-ssr': 3.5.13
+ '@vue/shared': 3.5.13
+ vue: 3.5.13(typescript@5.1.6)
+
+ '@vue/shared@3.5.13': {}
+
+ JSONStream@1.3.5:
+ dependencies:
+ jsonparse: 1.3.1
+ through: 2.3.8
+
+ abort-controller@3.0.0:
+ dependencies:
+ event-target-shim: 5.0.1
+
+ acorn-jsx@5.3.2(acorn@8.14.0):
+ dependencies:
+ acorn: 8.14.0
+
+ acorn-typescript@1.4.13(acorn@8.14.0):
+ dependencies:
+ acorn: 8.14.0
+
+ acorn-walk@8.3.4:
+ dependencies:
+ acorn: 8.14.0
+
+ acorn@8.14.0: {}
+
+ agent-base@7.1.3: {}
+
+ agentkeepalive@4.5.0:
+ dependencies:
+ humanize-ms: 1.2.1
+
+ ai@3.4.33(openai@4.77.0(zod@3.24.1))(react@18.3.1)(sswr@2.1.0(svelte@5.16.0))(svelte@5.16.0)(vue@3.5.13(typescript@5.1.6))(zod@3.24.1):
+ dependencies:
+ '@ai-sdk/provider': 0.0.26
+ '@ai-sdk/provider-utils': 1.0.22(zod@3.24.1)
+ '@ai-sdk/react': 0.0.70(react@18.3.1)(zod@3.24.1)
+ '@ai-sdk/solid': 0.0.54(zod@3.24.1)
+ '@ai-sdk/svelte': 0.0.57(svelte@5.16.0)(zod@3.24.1)
+ '@ai-sdk/ui-utils': 0.0.50(zod@3.24.1)
+ '@ai-sdk/vue': 0.0.59(vue@3.5.13(typescript@5.1.6))(zod@3.24.1)
+ '@opentelemetry/api': 1.9.0
+ eventsource-parser: 1.1.2
+ json-schema: 0.4.0
+ jsondiffpatch: 0.6.0
+ secure-json-parse: 2.7.0
+ zod-to-json-schema: 3.24.1(zod@3.24.1)
+ optionalDependencies:
+ openai: 4.77.0(zod@3.24.1)
+ react: 18.3.1
+ sswr: 2.1.0(svelte@5.16.0)
+ svelte: 5.16.0
+ zod: 3.24.1
+ transitivePeerDependencies:
+ - solid-js
+ - vue
+
+ ajv@6.12.6:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+
+ ansi-regex@5.0.1: {}
+
+ ansi-regex@6.1.0: {}
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ ansi-styles@5.2.0: {}
+
+ ansi-styles@6.2.1: {}
+
+ ansicolors@0.3.2: {}
+
+ any-promise@1.3.0: {}
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+
+ arg@5.0.2: {}
+
+ argparse@2.0.1: {}
+
+ aria-query@5.3.2: {}
+
+ array-buffer-byte-length@1.0.2:
+ dependencies:
+ call-bound: 1.0.3
+ is-array-buffer: 3.0.5
+
+ array-includes@3.1.8:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+ es-object-atoms: 1.0.0
+ get-intrinsic: 1.2.6
+ is-string: 1.1.1
+
+ array-union@2.1.0: {}
+
+ array.prototype.findlast@1.2.5:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+ es-errors: 1.3.0
+ es-object-atoms: 1.0.0
+ es-shim-unscopables: 1.0.2
+
+ array.prototype.findlastindex@1.2.5:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+ es-errors: 1.3.0
+ es-object-atoms: 1.0.0
+ es-shim-unscopables: 1.0.2
+
+ array.prototype.flat@1.3.3:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+ es-shim-unscopables: 1.0.2
+
+ array.prototype.flatmap@1.3.3:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+ es-shim-unscopables: 1.0.2
+
+ array.prototype.tosorted@1.1.4:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+ es-errors: 1.3.0
+ es-shim-unscopables: 1.0.2
+
+ arraybuffer.prototype.slice@1.0.4:
+ dependencies:
+ array-buffer-byte-length: 1.0.2
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.6
+ is-array-buffer: 3.0.5
+
+ assert@2.1.0:
+ dependencies:
+ call-bind: 1.0.8
+ is-nan: 1.3.2
+ object-is: 1.1.6
+ object.assign: 4.1.7
+ util: 0.12.5
+
+ assertion-error@2.0.1: {}
+
+ ast-types-flow@0.0.8: {}
+
+ asynckit@0.4.0: {}
+
+ autoprefixer@10.4.14(postcss@8.4.27):
+ dependencies:
+ browserslist: 4.24.3
+ caniuse-lite: 1.0.30001690
+ fraction.js: 4.3.7
+ normalize-range: 0.1.2
+ picocolors: 1.1.1
+ postcss: 8.4.27
+ postcss-value-parser: 4.2.0
+
+ available-typed-arrays@1.0.7:
+ dependencies:
+ possible-typed-array-names: 1.0.0
+
+ axe-core@4.10.2: {}
+
+ axios-retry@3.9.1:
+ dependencies:
+ '@babel/runtime': 7.26.0
+ is-retry-allowed: 2.2.0
+
+ axios@1.7.4(debug@4.4.0):
+ dependencies:
+ follow-redirects: 1.15.9(debug@4.4.0)
+ form-data: 4.0.1
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+
+ axobject-query@4.1.0: {}
+
+ balanced-match@1.0.2: {}
+
+ base-x@3.0.10:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ base-x@4.0.0: {}
+
+ base-x@5.0.0: {}
+
+ base64-js@1.5.1: {}
+
+ big.js@6.2.2: {}
+
+ bigint-buffer@1.1.5:
+ dependencies:
+ bindings: 1.5.0
+
+ bignumber.js@9.1.2: {}
+
+ binary-extensions@2.3.0: {}
+
+ bindings@1.5.0:
+ dependencies:
+ file-uri-to-path: 1.0.0
+
+ bn.js@5.2.1: {}
+
+ borsh@0.7.0:
+ dependencies:
+ bn.js: 5.2.1
+ bs58: 4.0.1
+ text-encoding-utf-8: 1.0.2
+
+ borsh@1.0.0: {}
+
+ borsh@2.0.0: {}
+
+ brace-expansion@1.1.11:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@2.0.1:
+ dependencies:
+ balanced-match: 1.0.2
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ browserslist@4.24.3:
+ dependencies:
+ caniuse-lite: 1.0.30001690
+ electron-to-chromium: 1.5.76
+ node-releases: 2.0.19
+ update-browserslist-db: 1.1.1(browserslist@4.24.3)
+
+ bs58@4.0.1:
+ dependencies:
+ base-x: 3.0.10
+
+ bs58@5.0.0:
+ dependencies:
+ base-x: 4.0.0
+
+ bs58@6.0.0:
+ dependencies:
+ base-x: 5.0.0
+
+ buffer-equal-constant-time@1.0.1: {}
+
+ buffer-layout@1.2.2: {}
+
+ buffer@6.0.3:
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+
+ bufferutil@4.0.8:
+ dependencies:
+ node-gyp-build: 4.8.4
+ optional: true
+
+ busboy@1.6.0:
+ dependencies:
+ streamsearch: 1.1.0
+
+ call-bind-apply-helpers@1.0.1:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
+ call-bind@1.0.8:
+ dependencies:
+ call-bind-apply-helpers: 1.0.1
+ es-define-property: 1.0.1
+ get-intrinsic: 1.2.6
+ set-function-length: 1.2.2
+
+ call-bound@1.0.3:
+ dependencies:
+ call-bind-apply-helpers: 1.0.1
+ get-intrinsic: 1.2.6
+
+ callsites@3.1.0: {}
+
+ camelcase-css@2.0.1: {}
+
+ camelcase@6.3.0: {}
+
+ caniuse-lite@1.0.30001690: {}
+
+ ccount@2.0.1: {}
+
+ chai@5.1.2:
+ dependencies:
+ assertion-error: 2.0.1
+ check-error: 2.1.1
+ deep-eql: 5.0.2
+ loupe: 3.1.2
+ pathval: 2.0.0
+
+ chalk@4.1.2:
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+
+ chalk@5.4.1: {}
+
+ character-entities-html4@2.1.0: {}
+
+ character-entities-legacy@3.0.0: {}
+
+ check-error@2.1.1: {}
+
+ chokidar@3.6.0:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.3
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ client-only@0.0.1: {}
+
+ clsx@1.2.1: {}
+
+ clsx@2.1.1: {}
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ color-string@1.9.1:
+ dependencies:
+ color-name: 1.1.4
+ simple-swizzle: 0.2.2
+
+ color@4.2.3:
+ dependencies:
+ color-convert: 2.0.1
+ color-string: 1.9.1
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ comma-separated-tokens@2.0.3: {}
+
+ commander@10.0.1: {}
+
+ commander@12.1.0: {}
+
+ commander@2.20.3: {}
+
+ commander@4.1.1: {}
+
+ commander@7.2.0: {}
+
+ concat-map@0.0.1: {}
+
+ cross-fetch@3.2.0:
+ dependencies:
+ node-fetch: 2.7.0
+ transitivePeerDependencies:
+ - encoding
+
+ cross-spawn@7.0.6:
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+
+ crypto-hash@1.3.0: {}
+
+ cssesc@3.0.0: {}
+
+ cssstyle@4.1.0:
+ dependencies:
+ rrweb-cssom: 0.7.1
+
+ csstype@3.1.3: {}
+
+ damerau-levenshtein@1.0.8: {}
+
+ data-urls@5.0.0:
+ dependencies:
+ whatwg-mimetype: 4.0.0
+ whatwg-url: 14.1.0
+
+ data-view-buffer@1.0.2:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ data-view-byte-length@1.0.2:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ data-view-byte-offset@1.0.1:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ dayjs@1.11.13: {}
+
+ debug@3.2.7:
+ dependencies:
+ ms: 2.1.3
+
+ debug@4.4.0:
+ dependencies:
+ ms: 2.1.3
+
+ decamelize@1.2.0: {}
+
+ decimal.js-light@2.5.1: {}
+
+ decimal.js@10.4.3: {}
+
+ deep-eql@5.0.2: {}
+
+ deep-is@0.1.4: {}
+
+ deepmerge@4.3.1: {}
+
+ define-data-property@1.1.4:
+ dependencies:
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ define-properties@1.2.1:
+ dependencies:
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
+ object-keys: 1.1.1
+
+ delay@5.0.0: {}
+
+ delayed-stream@1.0.0: {}
+
+ dequal@2.0.3: {}
+
+ detect-libc@2.0.3: {}
+
+ devlop@1.1.0:
+ dependencies:
+ dequal: 2.0.3
+
+ didyoumean@1.2.2: {}
+
+ diff-match-patch@1.0.5: {}
+
+ dir-glob@3.0.1:
+ dependencies:
+ path-type: 4.0.0
+
+ dlv@1.1.3: {}
+
+ doctrine@2.1.0:
+ dependencies:
+ esutils: 2.0.3
+
+ doctrine@3.0.0:
+ dependencies:
+ esutils: 2.0.3
+
+ dompurify@3.2.3:
+ optionalDependencies:
+ '@types/trusted-types': 2.0.7
+
+ dot-case@3.0.4:
+ dependencies:
+ no-case: 3.0.4
+ tslib: 2.8.1
+
+ dotenv@16.4.7: {}
+
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.1
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ duplexer@0.1.2: {}
+
+ eastasianwidth@0.2.0: {}
+
+ ecdsa-sig-formatter@1.0.11:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ electron-to-chromium@1.5.76: {}
+
+ emoji-regex-xs@1.0.0: {}
+
+ emoji-regex@8.0.0: {}
+
+ emoji-regex@9.2.2: {}
+
+ enhanced-resolve@5.18.0:
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.2.1
+
+ entities@4.5.0: {}
+
+ es-abstract@1.23.7:
+ dependencies:
+ array-buffer-byte-length: 1.0.2
+ arraybuffer.prototype.slice: 1.0.4
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ data-view-buffer: 1.0.2
+ data-view-byte-length: 1.0.2
+ data-view-byte-offset: 1.0.1
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.0.0
+ es-set-tostringtag: 2.0.3
+ es-to-primitive: 1.3.0
+ function.prototype.name: 1.1.8
+ get-intrinsic: 1.2.6
+ get-symbol-description: 1.1.0
+ globalthis: 1.0.4
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+ has-proto: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ internal-slot: 1.1.0
+ is-array-buffer: 3.0.5
+ is-callable: 1.2.7
+ is-data-view: 1.0.2
+ is-regex: 1.2.1
+ is-shared-array-buffer: 1.0.4
+ is-string: 1.1.1
+ is-typed-array: 1.1.15
+ is-weakref: 1.1.0
+ math-intrinsics: 1.1.0
+ object-inspect: 1.13.3
+ object-keys: 1.1.1
+ object.assign: 4.1.7
+ regexp.prototype.flags: 1.5.3
+ safe-array-concat: 1.1.3
+ safe-regex-test: 1.1.0
+ string.prototype.trim: 1.2.10
+ string.prototype.trimend: 1.0.9
+ string.prototype.trimstart: 1.0.8
+ typed-array-buffer: 1.0.3
+ typed-array-byte-length: 1.0.3
+ typed-array-byte-offset: 1.0.4
+ typed-array-length: 1.0.7
+ unbox-primitive: 1.1.0
+ which-typed-array: 1.1.18
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-iterator-helpers@1.2.1:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+ es-errors: 1.3.0
+ es-set-tostringtag: 2.0.3
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.6
+ globalthis: 1.0.4
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+ has-proto: 1.2.0
+ has-symbols: 1.1.0
+ internal-slot: 1.1.0
+ iterator.prototype: 1.1.4
+ safe-array-concat: 1.1.3
+
+ es-object-atoms@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+
+ es-set-tostringtag@2.0.3:
+ dependencies:
+ get-intrinsic: 1.2.6
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ es-shim-unscopables@1.0.2:
+ dependencies:
+ hasown: 2.0.2
+
+ es-to-primitive@1.3.0:
+ dependencies:
+ is-callable: 1.2.7
+ is-date-object: 1.1.0
+ is-symbol: 1.1.1
+
+ es6-promise@4.2.8: {}
+
+ es6-promisify@5.0.0:
+ dependencies:
+ es6-promise: 4.2.8
+
+ escalade@3.2.0: {}
+
+ escape-string-regexp@4.0.0: {}
+
+ eslint-config-next@13.4.12(eslint@8.46.0)(typescript@5.1.6):
+ dependencies:
+ '@next/eslint-plugin-next': 13.4.12
+ '@rushstack/eslint-patch': 1.10.4
+ '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6)
+ eslint: 8.46.0
+ eslint-import-resolver-node: 0.3.9
+ eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0)
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0))(eslint@8.46.0)
+ eslint-plugin-jsx-a11y: 6.10.2(eslint@8.46.0)
+ eslint-plugin-react: 7.37.3(eslint@8.46.0)
+ eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.46.0)
+ optionalDependencies:
+ typescript: 5.1.6
+ transitivePeerDependencies:
+ - eslint-import-resolver-webpack
+ - eslint-plugin-import-x
+ - supports-color
+
+ eslint-import-resolver-node@0.3.9:
+ dependencies:
+ debug: 3.2.7
+ is-core-module: 2.16.1
+ resolve: 1.22.10
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0):
+ dependencies:
+ '@nolyfill/is-core-module': 1.0.39
+ debug: 4.4.0
+ enhanced-resolve: 5.18.0
+ eslint: 8.46.0
+ fast-glob: 3.3.2
+ get-tsconfig: 4.8.1
+ is-bun-module: 1.3.0
+ is-glob: 4.0.3
+ stable-hash: 0.0.4
+ optionalDependencies:
+ eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0))(eslint@8.46.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0))(eslint@8.46.0):
+ dependencies:
+ debug: 3.2.7
+ optionalDependencies:
+ '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6)
+ eslint: 8.46.0
+ eslint-import-resolver-node: 0.3.9
+ eslint-import-resolver-typescript: 3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6))(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0))(eslint@8.46.0):
+ dependencies:
+ '@rtsao/scc': 1.1.0
+ array-includes: 3.1.8
+ array.prototype.findlastindex: 1.2.5
+ array.prototype.flat: 1.3.3
+ array.prototype.flatmap: 1.3.3
+ debug: 3.2.7
+ doctrine: 2.1.0
+ eslint: 8.46.0
+ eslint-import-resolver-node: 0.3.9
+ eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.46.0)(typescript@5.1.6))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.7.0(eslint-plugin-import@2.31.0(eslint@8.46.0))(eslint@8.46.0))(eslint@8.46.0)
+ hasown: 2.0.2
+ is-core-module: 2.16.1
+ is-glob: 4.0.3
+ minimatch: 3.1.2
+ object.fromentries: 2.0.8
+ object.groupby: 1.0.3
+ object.values: 1.2.1
+ semver: 6.3.1
+ string.prototype.trimend: 1.0.9
+ tsconfig-paths: 3.15.0
+ optionalDependencies:
+ '@typescript-eslint/parser': 5.62.0(eslint@8.46.0)(typescript@5.1.6)
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
+
+ eslint-plugin-jsx-a11y@6.10.2(eslint@8.46.0):
+ dependencies:
+ aria-query: 5.3.2
+ array-includes: 3.1.8
+ array.prototype.flatmap: 1.3.3
+ ast-types-flow: 0.0.8
+ axe-core: 4.10.2
+ axobject-query: 4.1.0
+ damerau-levenshtein: 1.0.8
+ emoji-regex: 9.2.2
+ eslint: 8.46.0
+ hasown: 2.0.2
+ jsx-ast-utils: 3.3.5
+ language-tags: 1.0.9
+ minimatch: 3.1.2
+ object.fromentries: 2.0.8
+ safe-regex-test: 1.1.0
+ string.prototype.includes: 2.0.1
+
+ eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@8.46.0):
+ dependencies:
+ eslint: 8.46.0
+
+ eslint-plugin-react@7.37.3(eslint@8.46.0):
+ dependencies:
+ array-includes: 3.1.8
+ array.prototype.findlast: 1.2.5
+ array.prototype.flatmap: 1.3.3
+ array.prototype.tosorted: 1.1.4
+ doctrine: 2.1.0
+ es-iterator-helpers: 1.2.1
+ eslint: 8.46.0
+ estraverse: 5.3.0
+ hasown: 2.0.2
+ jsx-ast-utils: 3.3.5
+ minimatch: 3.1.2
+ object.entries: 1.1.8
+ object.fromentries: 2.0.8
+ object.values: 1.2.1
+ prop-types: 15.8.1
+ resolve: 2.0.0-next.5
+ semver: 6.3.1
+ string.prototype.matchall: 4.0.12
+ string.prototype.repeat: 1.0.0
+
+ eslint-scope@7.2.2:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
+ eslint-visitor-keys@3.4.3: {}
+
+ eslint@8.46.0:
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.1(eslint@8.46.0)
+ '@eslint-community/regexpp': 4.12.1
+ '@eslint/eslintrc': 2.1.4
+ '@eslint/js': 8.57.1
+ '@humanwhocodes/config-array': 0.11.14
+ '@humanwhocodes/module-importer': 1.0.1
+ '@nodelib/fs.walk': 1.2.8
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.0
+ doctrine: 3.0.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 7.2.2
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
+ esquery: 1.6.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 6.0.1
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ globals: 13.24.0
+ graphemer: 1.4.0
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ is-path-inside: 3.0.3
+ js-yaml: 4.1.0
+ json-stable-stringify-without-jsonify: 1.0.1
+ levn: 0.4.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ strip-ansi: 6.0.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ esm-env@1.2.1: {}
+
+ espree@9.6.1:
+ dependencies:
+ acorn: 8.14.0
+ acorn-jsx: 5.3.2(acorn@8.14.0)
+ eslint-visitor-keys: 3.4.3
+
+ esquery@1.6.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ esrap@1.3.2:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ esrecurse@4.3.0:
+ dependencies:
+ estraverse: 5.3.0
+
+ estraverse@5.3.0: {}
+
+ estree-walker@2.0.2: {}
+
+ esutils@2.0.3: {}
+
+ event-target-shim@5.0.1: {}
+
+ eventemitter3@4.0.7: {}
+
+ eventemitter3@5.0.1: {}
+
+ eventsource-parser@1.1.2: {}
+
+ expr-eval@2.0.2: {}
+
+ extend@3.0.2: {}
+
+ eyes@0.1.8: {}
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-glob@3.3.2:
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.8
+
+ fast-json-stable-stringify@2.1.0: {}
+
+ fast-levenshtein@2.0.6: {}
+
+ fast-stable-stringify@1.0.0: {}
+
+ fastestsmallesttextencoderdecoder@1.0.22: {}
+
+ fastq@1.18.0:
+ dependencies:
+ reusify: 1.0.4
+
+ file-entry-cache@6.0.1:
+ dependencies:
+ flat-cache: 3.2.0
+
+ file-type@16.5.4:
+ dependencies:
+ readable-web-to-node-stream: 3.0.2
+ strtok3: 6.3.0
+ token-types: 4.2.1
+
+ file-uri-to-path@1.0.0: {}
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ find-up@5.0.0:
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+
+ flat-cache@3.2.0:
+ dependencies:
+ flatted: 3.3.2
+ keyv: 4.5.4
+ rimraf: 3.0.2
+
+ flat@5.0.2: {}
+
+ flatted@3.3.2: {}
+
+ follow-redirects@1.15.9(debug@4.4.0):
+ optionalDependencies:
+ debug: 4.4.0
+
+ for-each@0.3.3:
+ dependencies:
+ is-callable: 1.2.7
+
+ foreground-child@3.3.0:
+ dependencies:
+ cross-spawn: 7.0.6
+ signal-exit: 4.1.0
+
+ form-data-encoder@1.7.2: {}
+
+ form-data@4.0.0:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+
+ form-data@4.0.1:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+
+ formdata-node@4.4.1:
+ dependencies:
+ node-domexception: 1.0.0
+ web-streams-polyfill: 4.0.0-beta.3
+
+ fraction.js@4.3.7: {}
+
+ fs.realpath@1.0.0: {}
+
+ fsevents@2.3.2:
+ optional: true
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ function.prototype.name@1.1.8:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ define-properties: 1.2.1
+ functions-have-names: 1.2.3
+ hasown: 2.0.2
+ is-callable: 1.2.7
+
+ functions-have-names@1.2.3: {}
+
+ get-intrinsic@1.2.6:
+ dependencies:
+ call-bind-apply-helpers: 1.0.1
+ dunder-proto: 1.0.1
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.0.0
+ function-bind: 1.1.2
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ math-intrinsics: 1.1.0
+
+ get-symbol-description@1.1.0:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.6
+
+ get-tsconfig@4.8.1:
+ dependencies:
+ resolve-pkg-maps: 1.0.0
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob-parent@6.0.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob@10.4.5:
+ dependencies:
+ foreground-child: 3.3.0
+ jackspeak: 3.4.3
+ minimatch: 9.0.5
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.1
+ path-scurry: 1.11.1
+
+ glob@7.1.7:
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ glob@7.2.3:
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ globals@13.24.0:
+ dependencies:
+ type-fest: 0.20.2
+
+ globalthis@1.0.4:
+ dependencies:
+ define-properties: 1.2.1
+ gopd: 1.2.0
+
+ globby@11.1.0:
+ dependencies:
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.3.2
+ ignore: 5.3.2
+ merge2: 1.4.1
+ slash: 3.0.0
+
+ gopd@1.2.0: {}
+
+ graceful-fs@4.2.11: {}
+
+ graphemer@1.4.0: {}
+
+ graphemesplit@2.4.4:
+ dependencies:
+ js-base64: 3.7.7
+ unicode-trie: 2.0.0
+
+ groq-sdk@0.5.0:
+ dependencies:
+ '@types/node': 18.19.68
+ '@types/node-fetch': 2.6.12
+ abort-controller: 3.0.0
+ agentkeepalive: 4.5.0
+ form-data-encoder: 1.7.2
+ formdata-node: 4.4.1
+ node-fetch: 2.7.0
+ web-streams-polyfill: 3.3.3
+ transitivePeerDependencies:
+ - encoding
+
+ gzip-size@6.0.0:
+ dependencies:
+ duplexer: 0.1.2
+
+ has-bigints@1.1.0: {}
+
+ has-flag@4.0.0: {}
+
+ has-property-descriptors@1.0.2:
+ dependencies:
+ es-define-property: 1.0.1
+
+ has-proto@1.2.0:
+ dependencies:
+ dunder-proto: 1.0.1
+
+ has-symbols@1.1.0: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.1.0
+
+ hash.js@1.1.7:
+ dependencies:
+ inherits: 2.0.4
+ minimalistic-assert: 1.0.1
+
+ hasown@2.0.2:
+ dependencies:
+ function-bind: 1.1.2
+
+ hast-util-to-html@9.0.4:
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/unist': 3.0.3
+ ccount: 2.0.1
+ comma-separated-tokens: 2.0.3
+ hast-util-whitespace: 3.0.0
+ html-void-elements: 3.0.0
+ mdast-util-to-hast: 13.2.0
+ property-information: 6.5.0
+ space-separated-tokens: 2.0.2
+ stringify-entities: 4.0.4
+ zwitch: 2.0.4
+
+ hast-util-whitespace@3.0.0:
+ dependencies:
+ '@types/hast': 3.0.4
+
+ html-encoding-sniffer@4.0.0:
+ dependencies:
+ whatwg-encoding: 3.1.1
+
+ html-void-elements@3.0.0: {}
+
+ http-proxy-agent@7.0.2:
+ dependencies:
+ agent-base: 7.1.3
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ https-proxy-agent@7.0.6:
+ dependencies:
+ agent-base: 7.1.3
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ humanize-ms@1.2.1:
+ dependencies:
+ ms: 2.1.3
+
+ ibm-cloud-sdk-core@5.1.0:
+ dependencies:
+ '@types/debug': 4.1.12
+ '@types/node': 10.14.22
+ '@types/tough-cookie': 4.0.5
+ axios: 1.7.4(debug@4.4.0)
+ camelcase: 6.3.0
+ debug: 4.4.0
+ dotenv: 16.4.7
+ extend: 3.0.2
+ file-type: 16.5.4
+ form-data: 4.0.0
+ isstream: 0.1.2
+ jsonwebtoken: 9.0.2
+ mime-types: 2.1.35
+ retry-axios: 2.6.0(axios@1.7.4(debug@4.4.0))
+ tough-cookie: 4.1.4
+ transitivePeerDependencies:
+ - supports-color
+
+ iconv-lite@0.6.3:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ ieee754@1.2.1: {}
+
+ ignore@5.3.2: {}
+
+ import-fresh@3.3.0:
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+
+ imurmurhash@0.1.4: {}
+
+ inflight@1.0.6:
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+
+ inherits@2.0.4: {}
+
+ internal-slot@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ hasown: 2.0.2
+ side-channel: 1.1.0
+
+ ipaddr.js@2.2.0: {}
+
+ is-arguments@1.2.0:
+ dependencies:
+ call-bound: 1.0.3
+ has-tostringtag: 1.0.2
+
+ is-array-buffer@3.0.5:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ get-intrinsic: 1.2.6
+
+ is-arrayish@0.3.2: {}
+
+ is-async-function@2.0.0:
+ dependencies:
+ has-tostringtag: 1.0.2
+
+ is-bigint@1.1.0:
+ dependencies:
+ has-bigints: 1.1.0
+
+ is-binary-path@2.1.0:
+ dependencies:
+ binary-extensions: 2.3.0
+
+ is-boolean-object@1.2.1:
+ dependencies:
+ call-bound: 1.0.3
+ has-tostringtag: 1.0.2
+
+ is-bun-module@1.3.0:
+ dependencies:
+ semver: 7.6.3
+
+ is-callable@1.2.7: {}
+
+ is-core-module@2.16.1:
+ dependencies:
+ hasown: 2.0.2
+
+ is-data-view@1.0.2:
+ dependencies:
+ call-bound: 1.0.3
+ get-intrinsic: 1.2.6
+ is-typed-array: 1.1.15
+
+ is-date-object@1.1.0:
+ dependencies:
+ call-bound: 1.0.3
+ has-tostringtag: 1.0.2
+
+ is-extglob@2.1.1: {}
+
+ is-finalizationregistry@1.1.1:
+ dependencies:
+ call-bound: 1.0.3
+
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-generator-function@1.0.10:
+ dependencies:
+ has-tostringtag: 1.0.2
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-map@2.0.3: {}
+
+ is-nan@1.3.2:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+
+ is-number-object@1.1.1:
+ dependencies:
+ call-bound: 1.0.3
+ has-tostringtag: 1.0.2
+
+ is-number@7.0.0: {}
+
+ is-path-inside@3.0.3: {}
+
+ is-potential-custom-element-name@1.0.1: {}
+
+ is-reference@3.0.3:
+ dependencies:
+ '@types/estree': 1.0.6
+
+ is-regex@1.2.1:
+ dependencies:
+ call-bound: 1.0.3
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ is-retry-allowed@2.2.0: {}
+
+ is-set@2.0.3: {}
+
+ is-shared-array-buffer@1.0.4:
+ dependencies:
+ call-bound: 1.0.3
+
+ is-string@1.1.1:
+ dependencies:
+ call-bound: 1.0.3
+ has-tostringtag: 1.0.2
+
+ is-symbol@1.1.1:
+ dependencies:
+ call-bound: 1.0.3
+ has-symbols: 1.1.0
+ safe-regex-test: 1.1.0
+
+ is-typed-array@1.1.15:
+ dependencies:
+ which-typed-array: 1.1.18
+
+ is-weakmap@2.0.2: {}
+
+ is-weakref@1.1.0:
+ dependencies:
+ call-bound: 1.0.3
+
+ is-weakset@2.0.4:
+ dependencies:
+ call-bound: 1.0.3
+ get-intrinsic: 1.2.6
+
+ isarray@2.0.5: {}
+
+ isexe@2.0.0: {}
+
+ isomorphic-dompurify@2.19.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ dependencies:
+ dompurify: 3.2.3
+ jsdom: 25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - bufferutil
+ - canvas
+ - supports-color
+ - utf-8-validate
+
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ dependencies:
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+
+ isomorphic-ws@4.0.1(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ dependencies:
+ ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+
+ isstream@0.1.2: {}
+
+ iterator.prototype@1.1.4:
+ dependencies:
+ define-data-property: 1.1.4
+ es-object-atoms: 1.0.0
+ get-intrinsic: 1.2.6
+ has-symbols: 1.1.0
+ reflect.getprototypeof: 1.0.9
+ set-function-name: 2.0.2
+
+ jackspeak@3.4.3:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
+
+ jayson@4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ dependencies:
+ '@types/connect': 3.4.38
+ '@types/node': 12.20.55
+ '@types/ws': 7.4.7
+ JSONStream: 1.3.5
+ commander: 2.20.3
+ delay: 5.0.0
+ es6-promisify: 5.0.0
+ eyes: 0.1.8
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ json-stringify-safe: 5.0.1
+ uuid: 8.3.2
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
+ jiti@1.21.7: {}
+
+ js-base64@3.7.7: {}
+
+ js-tiktoken@1.0.16:
+ dependencies:
+ base64-js: 1.5.1
+
+ js-tokens@4.0.0: {}
+
+ js-yaml@4.1.0:
+ dependencies:
+ argparse: 2.0.1
+
+ jsdom@25.0.1(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ dependencies:
+ cssstyle: 4.1.0
+ data-urls: 5.0.0
+ decimal.js: 10.4.3
+ form-data: 4.0.1
+ html-encoding-sniffer: 4.0.0
+ http-proxy-agent: 7.0.2
+ https-proxy-agent: 7.0.6
+ is-potential-custom-element-name: 1.0.1
+ nwsapi: 2.2.16
+ parse5: 7.2.1
+ rrweb-cssom: 0.7.1
+ saxes: 6.0.0
+ symbol-tree: 3.2.4
+ tough-cookie: 5.0.0
+ w3c-xmlserializer: 5.0.0
+ webidl-conversions: 7.0.0
+ whatwg-encoding: 3.1.1
+ whatwg-mimetype: 4.0.0
+ whatwg-url: 14.1.0
+ ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ xml-name-validator: 5.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ json-buffer@3.0.1: {}
+
+ json-schema-traverse@0.4.1: {}
+
+ json-schema@0.4.0: {}
+
+ json-stable-stringify-without-jsonify@1.0.1: {}
+
+ json-stringify-safe@5.0.1: {}
+
+ json5@1.0.2:
+ dependencies:
+ minimist: 1.2.8
+
+ json5@2.2.3: {}
+
+ jsondiffpatch@0.6.0:
+ dependencies:
+ '@types/diff-match-patch': 1.0.36
+ chalk: 5.4.1
+ diff-match-patch: 1.0.5
+
+ jsonfile@6.1.0:
+ dependencies:
+ universalify: 2.0.1
+ optionalDependencies:
+ graceful-fs: 4.2.11
+
+ jsonparse@1.3.1: {}
+
+ jsonpointer@5.0.1: {}
+
+ jsonwebtoken@9.0.2:
+ dependencies:
+ jws: 3.2.2
+ lodash.includes: 4.3.0
+ lodash.isboolean: 3.0.3
+ lodash.isinteger: 4.0.4
+ lodash.isnumber: 3.0.3
+ lodash.isplainobject: 4.0.6
+ lodash.isstring: 4.0.1
+ lodash.once: 4.1.1
+ ms: 2.1.3
+ semver: 7.6.3
+
+ jsx-ast-utils@3.3.5:
+ dependencies:
+ array-includes: 3.1.8
+ array.prototype.flat: 1.3.3
+ object.assign: 4.1.7
+ object.values: 1.2.1
+
+ jwa@1.4.1:
+ dependencies:
+ buffer-equal-constant-time: 1.0.1
+ ecdsa-sig-formatter: 1.0.11
+ safe-buffer: 5.2.1
+
+ jws@3.2.2:
+ dependencies:
+ jwa: 1.4.1
+ safe-buffer: 5.2.1
+
+ keyv@4.5.4:
+ dependencies:
+ json-buffer: 3.0.1
+
+ langchain@0.3.8(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(axios@1.7.4)(openai@4.77.0(zod@3.24.1)):
+ dependencies:
+ '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1))
+ '@langchain/openai': 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ js-tiktoken: 1.0.16
+ js-yaml: 4.1.0
+ jsonpointer: 5.0.1
+ langsmith: 0.2.14(openai@4.77.0(zod@3.24.1))
+ openapi-types: 12.1.3
+ p-retry: 4.6.2
+ uuid: 10.0.0
+ yaml: 2.6.1
+ zod: 3.24.1
+ zod-to-json-schema: 3.24.1(zod@3.24.1)
+ optionalDependencies:
+ '@langchain/groq': 0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ axios: 1.7.4(debug@4.4.0)
+ transitivePeerDependencies:
+ - encoding
+ - openai
+
+ langsmith@0.2.14(openai@4.77.0(zod@3.24.1)):
+ dependencies:
+ '@types/uuid': 10.0.0
+ commander: 10.0.1
+ p-queue: 6.6.2
+ p-retry: 4.6.2
+ semver: 7.6.3
+ uuid: 10.0.0
+ optionalDependencies:
+ openai: 4.77.0(zod@3.24.1)
+
+ language-subtag-registry@0.3.23: {}
+
+ language-tags@1.0.9:
+ dependencies:
+ language-subtag-registry: 0.3.23
+
+ levn@0.4.1:
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+
+ lilconfig@2.1.0: {}
+
+ lilconfig@3.1.3: {}
+
+ lines-and-columns@1.2.4: {}
+
+ linkify-it@5.0.0:
+ dependencies:
+ uc.micro: 2.1.0
+
+ locate-character@3.0.0: {}
+
+ locate-path@6.0.0:
+ dependencies:
+ p-locate: 5.0.0
+
+ lodash.castarray@4.4.0: {}
+
+ lodash.includes@4.3.0: {}
+
+ lodash.isboolean@3.0.3: {}
+
+ lodash.isinteger@4.0.4: {}
+
+ lodash.isnumber@3.0.3: {}
+
+ lodash.isplainobject@4.0.6: {}
+
+ lodash.isstring@4.0.1: {}
+
+ lodash.merge@4.6.2: {}
+
+ lodash.once@4.1.1: {}
+
+ lodash@4.17.21: {}
+
+ loose-envify@1.4.0:
+ dependencies:
+ js-tokens: 4.0.0
+
+ loupe@3.1.2: {}
+
+ lower-case@2.0.2:
+ dependencies:
+ tslib: 2.8.1
+
+ lru-cache@10.4.3: {}
+
+ lunr@2.3.9: {}
+
+ magic-string@0.30.17:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ markdown-it@14.1.0:
+ dependencies:
+ argparse: 2.0.1
+ entities: 4.5.0
+ linkify-it: 5.0.0
+ mdurl: 2.0.0
+ punycode.js: 2.3.1
+ uc.micro: 2.1.0
+
+ marked@15.0.4: {}
+
+ math-intrinsics@1.1.0: {}
+
+ mdast-util-to-hast@13.2.0:
+ dependencies:
+ '@types/hast': 3.0.4
+ '@types/mdast': 4.0.4
+ '@ungap/structured-clone': 1.2.1
+ devlop: 1.1.0
+ micromark-util-sanitize-uri: 2.0.1
+ trim-lines: 3.0.1
+ unist-util-position: 5.0.0
+ unist-util-visit: 5.0.0
+ vfile: 6.0.3
+
+ mdurl@2.0.0: {}
+
+ merge2@1.4.1: {}
+
+ micromark-util-character@2.1.1:
+ dependencies:
+ micromark-util-symbol: 2.0.1
+ micromark-util-types: 2.0.1
+
+ micromark-util-encode@2.0.1: {}
+
+ micromark-util-sanitize-uri@2.0.1:
+ dependencies:
+ micromark-util-character: 2.1.1
+ micromark-util-encode: 2.0.1
+ micromark-util-symbol: 2.0.1
+
+ micromark-util-symbol@2.0.1: {}
+
+ micromark-util-types@2.0.1: {}
+
+ micromatch@4.0.8:
+ dependencies:
+ braces: 3.0.3
+ picomatch: 2.3.1
+
+ mime-db@1.52.0: {}
+
+ mime-types@2.1.35:
+ dependencies:
+ mime-db: 1.52.0
+
+ minimalistic-assert@1.0.1: {}
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.11
+
+ minimatch@9.0.5:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ minimist@1.2.8: {}
+
+ minipass@7.1.2: {}
+
+ mrmime@1.0.1: {}
+
+ ms@2.1.3: {}
+
+ mustache@4.2.0: {}
+
+ mz@2.7.0:
+ dependencies:
+ any-promise: 1.3.0
+ object-assign: 4.1.1
+ thenify-all: 1.6.0
+
+ nanoid@3.3.8: {}
+
+ natural-compare@1.4.0: {}
+
+ next@14.2.21(@opentelemetry/api@1.9.0)(@playwright/test@1.49.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@next/env': 14.2.21
+ '@swc/helpers': 0.5.5
+ busboy: 1.6.0
+ caniuse-lite: 1.0.30001690
+ graceful-fs: 4.2.11
+ postcss: 8.4.31
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ styled-jsx: 5.1.1(react@18.3.1)
+ optionalDependencies:
+ '@next/swc-darwin-arm64': 14.2.21
+ '@next/swc-darwin-x64': 14.2.21
+ '@next/swc-linux-arm64-gnu': 14.2.21
+ '@next/swc-linux-arm64-musl': 14.2.21
+ '@next/swc-linux-x64-gnu': 14.2.21
+ '@next/swc-linux-x64-musl': 14.2.21
+ '@next/swc-win32-arm64-msvc': 14.2.21
+ '@next/swc-win32-ia32-msvc': 14.2.21
+ '@next/swc-win32-x64-msvc': 14.2.21
+ '@opentelemetry/api': 1.9.0
+ '@playwright/test': 1.49.1
+ transitivePeerDependencies:
+ - '@babel/core'
+ - babel-plugin-macros
+
+ no-case@3.0.4:
+ dependencies:
+ lower-case: 2.0.2
+ tslib: 2.8.1
+
+ node-domexception@1.0.0: {}
+
+ node-fetch@2.7.0:
+ dependencies:
+ whatwg-url: 5.0.0
+
+ node-gyp-build@4.8.4:
+ optional: true
+
+ node-releases@2.0.19: {}
+
+ normalize-path@3.0.0: {}
+
+ normalize-range@0.1.2: {}
+
+ nwsapi@2.2.16: {}
+
+ object-assign@4.1.1: {}
+
+ object-hash@3.0.0: {}
+
+ object-inspect@1.13.3: {}
+
+ object-is@1.1.6:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+
+ object-keys@1.1.1: {}
+
+ object.assign@4.1.7:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+ has-symbols: 1.1.0
+ object-keys: 1.1.1
+
+ object.entries@1.1.8:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+
+ object.fromentries@2.0.8:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+ es-object-atoms: 1.0.0
+
+ object.groupby@1.0.3:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+
+ object.values@1.2.1:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+
+ once@1.4.0:
+ dependencies:
+ wrappy: 1.0.2
+
+ oniguruma-to-es@0.8.1:
+ dependencies:
+ emoji-regex-xs: 1.0.0
+ regex: 5.0.2
+ regex-recursion: 5.0.0
+
+ openai@4.77.0(zod@3.24.1):
+ dependencies:
+ '@types/node': 18.19.68
+ '@types/node-fetch': 2.6.12
+ abort-controller: 3.0.0
+ agentkeepalive: 4.5.0
+ form-data-encoder: 1.7.2
+ formdata-node: 4.4.1
+ node-fetch: 2.7.0
+ optionalDependencies:
+ zod: 3.24.1
+ transitivePeerDependencies:
+ - encoding
+
+ openapi-types@12.1.3: {}
+
+ opener@1.5.2: {}
+
+ optionator@0.9.4:
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.5
+
+ p-finally@1.0.0: {}
+
+ p-limit@3.1.0:
+ dependencies:
+ yocto-queue: 0.1.0
+
+ p-locate@5.0.0:
+ dependencies:
+ p-limit: 3.1.0
+
+ p-queue@6.6.2:
+ dependencies:
+ eventemitter3: 4.0.7
+ p-timeout: 3.2.0
+
+ p-retry@4.6.2:
+ dependencies:
+ '@types/retry': 0.12.0
+ retry: 0.13.1
+
+ p-timeout@3.2.0:
+ dependencies:
+ p-finally: 1.0.0
+
+ package-json-from-dist@1.0.1: {}
+
+ pako@0.2.9: {}
+
+ pako@2.1.0: {}
+
+ parent-module@1.0.1:
+ dependencies:
+ callsites: 3.1.0
+
+ parse5@7.2.1:
+ dependencies:
+ entities: 4.5.0
+
+ path-exists@4.0.0: {}
+
+ path-is-absolute@1.0.1: {}
+
+ path-key@3.1.1: {}
+
+ path-parse@1.0.7: {}
+
+ path-scurry@1.11.1:
+ dependencies:
+ lru-cache: 10.4.3
+ minipass: 7.1.2
+
+ path-type@4.0.0: {}
+
+ pathval@2.0.0: {}
+
+ peek-readable@4.1.0: {}
+
+ picocolors@1.1.1: {}
+
+ picomatch@2.3.1: {}
+
+ pify@2.3.0: {}
+
+ pirates@4.0.6: {}
+
+ playwright-core@1.49.1: {}
+
+ playwright@1.49.1:
+ dependencies:
+ playwright-core: 1.49.1
+ optionalDependencies:
+ fsevents: 2.3.2
+
+ possible-typed-array-names@1.0.0: {}
+
+ postcss-import@15.1.0(postcss@8.4.27):
+ dependencies:
+ postcss: 8.4.27
+ postcss-value-parser: 4.2.0
+ read-cache: 1.0.0
+ resolve: 1.22.10
+
+ postcss-js@4.0.1(postcss@8.4.27):
+ dependencies:
+ camelcase-css: 2.0.1
+ postcss: 8.4.27
+
+ postcss-load-config@4.0.2(postcss@8.4.27):
+ dependencies:
+ lilconfig: 3.1.3
+ yaml: 2.6.1
+ optionalDependencies:
+ postcss: 8.4.27
+
+ postcss-nested@6.2.0(postcss@8.4.27):
+ dependencies:
+ postcss: 8.4.27
+ postcss-selector-parser: 6.1.2
+
+ postcss-selector-parser@6.0.10:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss-selector-parser@6.1.2:
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+
+ postcss-value-parser@4.2.0: {}
+
+ postcss@8.4.27:
+ dependencies:
+ nanoid: 3.3.8
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ postcss@8.4.31:
+ dependencies:
+ nanoid: 3.3.8
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ postcss@8.4.49:
+ dependencies:
+ nanoid: 3.3.8
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ prelude-ls@1.2.1: {}
+
+ prettier@3.0.0: {}
+
+ prop-types@15.8.1:
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ react-is: 16.13.1
+
+ property-information@6.5.0: {}
+
+ proxy-from-env@1.1.0: {}
+
+ psl@1.15.0:
+ dependencies:
+ punycode: 2.3.1
+
+ punycode.js@2.3.1: {}
+
+ punycode@2.3.1: {}
+
+ querystringify@2.2.0: {}
+
+ queue-microtask@1.2.3: {}
+
+ react-dom@18.3.1(react@18.3.1):
+ dependencies:
+ loose-envify: 1.4.0
+ react: 18.3.1
+ scheduler: 0.23.2
+
+ react-is@16.13.1: {}
+
+ react-toastify@9.1.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ clsx: 1.2.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+
+ react@18.3.1:
+ dependencies:
+ loose-envify: 1.4.0
+
+ read-cache@1.0.0:
+ dependencies:
+ pify: 2.3.0
+
+ readable-stream@3.6.2:
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+
+ readable-web-to-node-stream@3.0.2:
+ dependencies:
+ readable-stream: 3.6.2
+
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.1
+
+ reflect.getprototypeof@1.0.9:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ dunder-proto: 1.0.1
+ es-abstract: 1.23.7
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.6
+ gopd: 1.2.0
+ which-builtin-type: 1.2.1
+
+ regenerator-runtime@0.14.1: {}
+
+ regex-recursion@5.0.0:
+ dependencies:
+ regex-utilities: 2.3.0
+
+ regex-utilities@2.3.0: {}
+
+ regex@5.0.2:
+ dependencies:
+ regex-utilities: 2.3.0
+
+ regexp.prototype.flags@1.5.3:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-errors: 1.3.0
+ set-function-name: 2.0.2
+
+ requires-port@1.0.0: {}
+
+ resolve-from@4.0.0: {}
+
+ resolve-pkg-maps@1.0.0: {}
+
+ resolve@1.22.10:
+ dependencies:
+ is-core-module: 2.16.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ resolve@2.0.0-next.5:
+ dependencies:
+ is-core-module: 2.16.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
+ retry-axios@2.6.0(axios@1.7.4(debug@4.4.0)):
+ dependencies:
+ axios: 1.7.4(debug@4.4.0)
+
+ retry@0.13.1: {}
+
+ reusify@1.0.4: {}
+
+ rimraf@3.0.2:
+ dependencies:
+ glob: 7.2.3
+
+ rpc-websockets@9.0.4:
+ dependencies:
+ '@swc/helpers': 0.5.15
+ '@types/uuid': 8.3.4
+ '@types/ws': 8.5.13
+ buffer: 6.0.3
+ eventemitter3: 5.0.1
+ uuid: 8.3.2
+ ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ optionalDependencies:
+ bufferutil: 4.0.8
+ utf-8-validate: 5.0.10
+
+ rrweb-cssom@0.7.1: {}
+
+ run-parallel@1.2.0:
+ dependencies:
+ queue-microtask: 1.2.3
+
+ safe-array-concat@1.1.3:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ get-intrinsic: 1.2.6
+ has-symbols: 1.1.0
+ isarray: 2.0.5
+
+ safe-buffer@5.2.1: {}
+
+ safe-regex-test@1.1.0:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ is-regex: 1.2.1
+
+ safer-buffer@2.1.2: {}
+
+ saxes@6.0.0:
+ dependencies:
+ xmlchars: 2.2.0
+
+ scheduler@0.23.2:
+ dependencies:
+ loose-envify: 1.4.0
+
+ secure-json-parse@2.7.0: {}
+
+ semver@6.3.1: {}
+
+ semver@7.6.3: {}
+
+ set-function-length@1.2.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.6
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+
+ set-function-name@2.0.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ functions-have-names: 1.2.3
+ has-property-descriptors: 1.0.2
+
+ sharp@0.33.5:
+ dependencies:
+ color: 4.2.3
+ detect-libc: 2.0.3
+ semver: 7.6.3
+ optionalDependencies:
+ '@img/sharp-darwin-arm64': 0.33.5
+ '@img/sharp-darwin-x64': 0.33.5
+ '@img/sharp-libvips-darwin-arm64': 1.0.4
+ '@img/sharp-libvips-darwin-x64': 1.0.4
+ '@img/sharp-libvips-linux-arm': 1.0.5
+ '@img/sharp-libvips-linux-arm64': 1.0.4
+ '@img/sharp-libvips-linux-s390x': 1.0.4
+ '@img/sharp-libvips-linux-x64': 1.0.4
+ '@img/sharp-libvips-linuxmusl-arm64': 1.0.4
+ '@img/sharp-libvips-linuxmusl-x64': 1.0.4
+ '@img/sharp-linux-arm': 0.33.5
+ '@img/sharp-linux-arm64': 0.33.5
+ '@img/sharp-linux-s390x': 0.33.5
+ '@img/sharp-linux-x64': 0.33.5
+ '@img/sharp-linuxmusl-arm64': 0.33.5
+ '@img/sharp-linuxmusl-x64': 0.33.5
+ '@img/sharp-wasm32': 0.33.5
+ '@img/sharp-win32-ia32': 0.33.5
+ '@img/sharp-win32-x64': 0.33.5
+
+ shebang-command@2.0.0:
+ dependencies:
+ shebang-regex: 3.0.0
+
+ shebang-regex@3.0.0: {}
+
+ shiki@1.24.4:
+ dependencies:
+ '@shikijs/core': 1.24.4
+ '@shikijs/engine-javascript': 1.24.4
+ '@shikijs/engine-oniguruma': 1.24.4
+ '@shikijs/types': 1.24.4
+ '@shikijs/vscode-textmate': 9.3.1
+ '@types/hast': 3.0.4
+
+ side-channel-list@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.3
+
+ side-channel-map@1.0.1:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.6
+ object-inspect: 1.13.3
+
+ side-channel-weakmap@1.0.2:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.6
+ object-inspect: 1.13.3
+ side-channel-map: 1.0.1
+
+ side-channel@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.3
+ side-channel-list: 1.0.0
+ side-channel-map: 1.0.1
+ side-channel-weakmap: 1.0.2
+
+ signal-exit@4.1.0: {}
+
+ simple-swizzle@0.2.2:
+ dependencies:
+ is-arrayish: 0.3.2
+
+ sirv@1.0.19:
+ dependencies:
+ '@polka/url': 1.0.0-next.28
+ mrmime: 1.0.1
+ totalist: 1.1.0
+
+ slash@3.0.0: {}
+
+ snake-case@3.0.4:
+ dependencies:
+ dot-case: 3.0.4
+ tslib: 2.8.1
+
+ solana-agent-kit@1.3.0(@noble/hashes@1.6.1)(axios@1.7.4)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)(zod@3.24.1):
+ dependencies:
+ '@bonfida/spl-name-service': 3.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)
+ '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1))
+ '@langchain/groq': 0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ '@langchain/langgraph': 0.2.36(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ '@langchain/openai': 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ '@lightprotocol/compressed-token': 0.17.1(@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)
+ '@lightprotocol/stateless.js': 0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/mpl-core': 1.1.1(@metaplex-foundation/umi@0.9.2)(@noble/hashes@1.6.1)
+ '@metaplex-foundation/mpl-token-metadata': 3.3.0(@metaplex-foundation/umi@0.9.2)
+ '@metaplex-foundation/mpl-toolbox': 0.9.4(@metaplex-foundation/umi@0.9.2)
+ '@metaplex-foundation/umi': 0.9.2
+ '@metaplex-foundation/umi-bundle-defaults': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@onsol/tldparser': 0.6.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bn.js@5.2.1)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@orca-so/common-sdk': 0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3)
+ '@orca-so/whirlpools-sdk': 0.13.12(@coral-xyz/anchor@0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3))(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3)
+ '@pythnetwork/price-service-client': 1.9.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@raydium-io/raydium-sdk-v2': 0.1.95-alpha(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.1.6)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ bn.js: 5.2.1
+ bs58: 6.0.0
+ chai: 5.1.2
+ decimal.js: 10.4.3
+ dotenv: 16.4.7
+ form-data: 4.0.1
+ langchain: 0.3.8(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(axios@1.7.4)(openai@4.77.0(zod@3.24.1))
+ openai: 4.77.0(zod@3.24.1)
+ typedoc: 0.26.11(typescript@5.1.6)
+ transitivePeerDependencies:
+ - '@langchain/anthropic'
+ - '@langchain/aws'
+ - '@langchain/cohere'
+ - '@langchain/google-genai'
+ - '@langchain/google-vertexai'
+ - '@langchain/mistralai'
+ - '@langchain/ollama'
+ - '@noble/hashes'
+ - axios
+ - borsh
+ - buffer
+ - bufferutil
+ - cheerio
+ - debug
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - handlebars
+ - peggy
+ - supports-color
+ - typeorm
+ - typescript
+ - utf-8-validate
+ - zod
+
+ source-map-js@1.2.1: {}
+
+ space-separated-tokens@2.0.2: {}
+
+ sswr@2.1.0(svelte@5.16.0):
+ dependencies:
+ svelte: 5.16.0
+ swrev: 4.0.0
+
+ stable-hash@0.0.4: {}
+
+ streamsearch@1.1.0: {}
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ string-width@5.1.2:
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.0
+
+ string.prototype.includes@2.0.1:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+
+ string.prototype.matchall@4.0.12:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+ es-errors: 1.3.0
+ es-object-atoms: 1.0.0
+ get-intrinsic: 1.2.6
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ internal-slot: 1.1.0
+ regexp.prototype.flags: 1.5.3
+ set-function-name: 2.0.2
+ side-channel: 1.1.0
+
+ string.prototype.repeat@1.0.0:
+ dependencies:
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+
+ string.prototype.trim@1.2.10:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ define-data-property: 1.1.4
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+ es-object-atoms: 1.0.0
+ has-property-descriptors: 1.0.2
+
+ string.prototype.trimend@1.0.9:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+
+ string.prototype.trimstart@1.0.8:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+
+ string_decoder@1.3.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ stringify-entities@4.0.4:
+ dependencies:
+ character-entities-html4: 2.1.0
+ character-entities-legacy: 3.0.0
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strip-ansi@7.1.0:
+ dependencies:
+ ansi-regex: 6.1.0
+
+ strip-bom@3.0.0: {}
+
+ strip-json-comments@3.1.1: {}
+
+ strtok3@6.3.0:
+ dependencies:
+ '@tokenizer/token': 0.3.0
+ peek-readable: 4.1.0
+
+ styled-jsx@5.1.1(react@18.3.1):
+ dependencies:
+ client-only: 0.0.1
+ react: 18.3.1
+
+ sucrase@3.35.0:
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.8
+ commander: 4.1.1
+ glob: 10.4.5
+ lines-and-columns: 1.2.4
+ mz: 2.7.0
+ pirates: 4.0.6
+ ts-interface-checker: 0.1.13
+
+ superstruct@0.15.5: {}
+
+ superstruct@2.0.2: {}
+
+ supports-color@7.2.0:
+ dependencies:
+ has-flag: 4.0.0
+
+ supports-preserve-symlinks-flag@1.0.0: {}
+
+ svelte@5.16.0:
+ dependencies:
+ '@ampproject/remapping': 2.3.0
+ '@jridgewell/sourcemap-codec': 1.5.0
+ '@types/estree': 1.0.6
+ acorn: 8.14.0
+ acorn-typescript: 1.4.13(acorn@8.14.0)
+ aria-query: 5.3.2
+ axobject-query: 4.1.0
+ clsx: 2.1.1
+ esm-env: 1.2.1
+ esrap: 1.3.2
+ is-reference: 3.0.3
+ locate-character: 3.0.0
+ magic-string: 0.30.17
+ zimmerframe: 1.1.2
+
+ swr@2.3.0(react@18.3.1):
+ dependencies:
+ dequal: 2.0.3
+ react: 18.3.1
+ use-sync-external-store: 1.4.0(react@18.3.1)
+
+ swrev@4.0.0: {}
+
+ swrv@1.0.4(vue@3.5.13(typescript@5.1.6)):
+ dependencies:
+ vue: 3.5.13(typescript@5.1.6)
+
+ symbol-tree@3.2.4: {}
+
+ tailwindcss@3.3.3:
+ dependencies:
+ '@alloc/quick-lru': 5.2.0
+ arg: 5.0.2
+ chokidar: 3.6.0
+ didyoumean: 1.2.2
+ dlv: 1.1.3
+ fast-glob: 3.3.2
+ glob-parent: 6.0.2
+ is-glob: 4.0.3
+ jiti: 1.21.7
+ lilconfig: 2.1.0
+ micromatch: 4.0.8
+ normalize-path: 3.0.0
+ object-hash: 3.0.0
+ picocolors: 1.1.1
+ postcss: 8.4.27
+ postcss-import: 15.1.0(postcss@8.4.27)
+ postcss-js: 4.0.1(postcss@8.4.27)
+ postcss-load-config: 4.0.2(postcss@8.4.27)
+ postcss-nested: 6.2.0(postcss@8.4.27)
+ postcss-selector-parser: 6.1.2
+ resolve: 1.22.10
+ sucrase: 3.35.0
+ transitivePeerDependencies:
+ - ts-node
+
+ tapable@2.2.1: {}
+
+ text-encoding-utf-8@1.0.2: {}
+
+ text-table@0.2.0: {}
+
+ thenify-all@1.6.0:
+ dependencies:
+ thenify: 3.3.1
+
+ thenify@3.3.1:
+ dependencies:
+ any-promise: 1.3.0
+
+ throttleit@2.1.0: {}
+
+ through@2.3.8: {}
+
+ tiny-inflate@1.0.3: {}
+
+ tiny-invariant@1.3.3: {}
+
+ tldts-core@6.1.70: {}
+
+ tldts@6.1.70:
+ dependencies:
+ tldts-core: 6.1.70
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ toformat@2.0.0: {}
+
+ token-types@4.2.1:
+ dependencies:
+ '@tokenizer/token': 0.3.0
+ ieee754: 1.2.1
+
+ toml@3.0.0: {}
+
+ totalist@1.1.0: {}
+
+ tough-cookie@4.1.4:
+ dependencies:
+ psl: 1.15.0
+ punycode: 2.3.1
+ universalify: 0.2.0
+ url-parse: 1.5.10
+
+ tough-cookie@5.0.0:
+ dependencies:
+ tldts: 6.1.70
+
+ tr46@0.0.3: {}
+
+ tr46@5.0.0:
+ dependencies:
+ punycode: 2.3.1
+
+ trim-lines@3.0.1: {}
+
+ ts-interface-checker@0.1.13: {}
+
+ ts-log@2.2.7: {}
+
+ tsconfig-paths@3.15.0:
+ dependencies:
+ '@types/json5': 0.0.29
+ json5: 1.0.2
+ minimist: 1.2.8
+ strip-bom: 3.0.0
+
+ tsconfig-paths@4.2.0:
+ dependencies:
+ json5: 2.2.3
+ minimist: 1.2.8
+ strip-bom: 3.0.0
+
+ tslib@1.14.1: {}
+
+ tslib@2.8.1: {}
+
+ tsutils@3.21.0(typescript@5.1.6):
+ dependencies:
+ tslib: 1.14.1
+ typescript: 5.1.6
+
+ tweetnacl@1.0.3: {}
+
+ type-check@0.4.0:
+ dependencies:
+ prelude-ls: 1.2.1
+
+ type-fest@0.20.2: {}
+
+ typed-array-buffer@1.0.3:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ is-typed-array: 1.1.15
+
+ typed-array-byte-length@1.0.3:
+ dependencies:
+ call-bind: 1.0.8
+ for-each: 0.3.3
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+
+ typed-array-byte-offset@1.0.4:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ for-each: 0.3.3
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+ reflect.getprototypeof: 1.0.9
+
+ typed-array-length@1.0.7:
+ dependencies:
+ call-bind: 1.0.8
+ for-each: 0.3.3
+ gopd: 1.2.0
+ is-typed-array: 1.1.15
+ possible-typed-array-names: 1.0.0
+ reflect.getprototypeof: 1.0.9
+
+ typedoc@0.26.11(typescript@5.1.6):
+ dependencies:
+ lunr: 2.3.9
+ markdown-it: 14.1.0
+ minimatch: 9.0.5
+ shiki: 1.24.4
+ typescript: 5.1.6
+ yaml: 2.6.1
+
+ typescript@5.1.6: {}
+
+ uc.micro@2.1.0: {}
+
+ unbox-primitive@1.1.0:
+ dependencies:
+ call-bound: 1.0.3
+ has-bigints: 1.1.0
+ has-symbols: 1.1.0
+ which-boxed-primitive: 1.1.1
+
+ undici-types@5.26.5: {}
+
+ unicode-trie@2.0.0:
+ dependencies:
+ pako: 0.2.9
+ tiny-inflate: 1.0.3
+
+ unist-util-is@6.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-position@5.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-stringify-position@4.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+
+ unist-util-visit-parents@6.0.1:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.0
+
+ unist-util-visit@5.0.0:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-is: 6.0.0
+ unist-util-visit-parents: 6.0.1
+
+ universalify@0.2.0: {}
+
+ universalify@2.0.1: {}
+
+ update-browserslist-db@1.1.1(browserslist@4.24.3):
+ dependencies:
+ browserslist: 4.24.3
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
+ uri-js@4.4.1:
+ dependencies:
+ punycode: 2.3.1
+
+ url-parse@1.5.10:
+ dependencies:
+ querystringify: 2.2.0
+ requires-port: 1.0.0
+
+ use-sync-external-store@1.4.0(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ utf-8-validate@5.0.10:
+ dependencies:
+ node-gyp-build: 4.8.4
+ optional: true
+
+ util-deprecate@1.0.2: {}
+
+ util@0.12.5:
+ dependencies:
+ inherits: 2.0.4
+ is-arguments: 1.2.0
+ is-generator-function: 1.0.10
+ is-typed-array: 1.1.15
+ which-typed-array: 1.1.18
+
+ uuid@10.0.0: {}
+
+ uuid@8.3.2: {}
+
+ uuid@9.0.1: {}
+
+ vfile-message@4.0.2:
+ dependencies:
+ '@types/unist': 3.0.3
+ unist-util-stringify-position: 4.0.0
+
+ vfile@6.0.3:
+ dependencies:
+ '@types/unist': 3.0.3
+ vfile-message: 4.0.2
+
+ vue@3.5.13(typescript@5.1.6):
+ dependencies:
+ '@vue/compiler-dom': 3.5.13
+ '@vue/compiler-sfc': 3.5.13
+ '@vue/runtime-dom': 3.5.13
+ '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.1.6))
+ '@vue/shared': 3.5.13
+ optionalDependencies:
+ typescript: 5.1.6
+
+ w3c-xmlserializer@5.0.0:
+ dependencies:
+ xml-name-validator: 5.0.0
+
+ web-streams-polyfill@3.3.3: {}
+
+ web-streams-polyfill@4.0.0-beta.3: {}
+
+ webidl-conversions@3.0.1: {}
+
+ webidl-conversions@7.0.0: {}
+
+ webpack-bundle-analyzer@4.7.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ dependencies:
+ acorn: 8.14.0
+ acorn-walk: 8.3.4
+ chalk: 4.1.2
+ commander: 7.2.0
+ gzip-size: 6.0.0
+ lodash: 4.17.21
+ opener: 1.5.2
+ sirv: 1.0.19
+ ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ transitivePeerDependencies:
+ - bufferutil
+ - utf-8-validate
+
+ whatwg-encoding@3.1.1:
+ dependencies:
+ iconv-lite: 0.6.3
+
+ whatwg-mimetype@4.0.0: {}
+
+ whatwg-url@14.1.0:
+ dependencies:
+ tr46: 5.0.0
+ webidl-conversions: 7.0.0
+
+ whatwg-url@5.0.0:
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+
+ which-boxed-primitive@1.1.1:
+ dependencies:
+ is-bigint: 1.1.0
+ is-boolean-object: 1.2.1
+ is-number-object: 1.1.1
+ is-string: 1.1.1
+ is-symbol: 1.1.1
+
+ which-builtin-type@1.2.1:
+ dependencies:
+ call-bound: 1.0.3
+ function.prototype.name: 1.1.8
+ has-tostringtag: 1.0.2
+ is-async-function: 2.0.0
+ is-date-object: 1.1.0
+ is-finalizationregistry: 1.1.1
+ is-generator-function: 1.0.10
+ is-regex: 1.2.1
+ is-weakref: 1.1.0
+ isarray: 2.0.5
+ which-boxed-primitive: 1.1.1
+ which-collection: 1.0.2
+ which-typed-array: 1.1.18
+
+ which-collection@1.0.2:
+ dependencies:
+ is-map: 2.0.3
+ is-set: 2.0.3
+ is-weakmap: 2.0.2
+ is-weakset: 2.0.4
+
+ which-typed-array@1.1.18:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ for-each: 0.3.3
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+
+ which@2.0.2:
+ dependencies:
+ isexe: 2.0.0
+
+ word-wrap@1.2.5: {}
+
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ wrap-ansi@8.1.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 5.1.2
+ strip-ansi: 7.1.0
+
+ wrappy@1.0.2: {}
+
+ ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ optionalDependencies:
+ bufferutil: 4.0.8
+ utf-8-validate: 5.0.10
+
+ ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ optionalDependencies:
+ bufferutil: 4.0.8
+ utf-8-validate: 5.0.10
+
+ xml-name-validator@5.0.0: {}
+
+ xmlchars@2.2.0: {}
+
+ yaml@2.6.1: {}
+
+ yocto-queue@0.1.0: {}
+
+ zimmerframe@1.1.2: {}
+
+ zod-to-json-schema@3.24.1(zod@3.24.1):
+ dependencies:
+ zod: 3.24.1
+
+ zod@3.24.1: {}
+
+ zwitch@2.0.4: {}
diff --git a/examples/agent-kit-nextjs-langchain/postcss.config.js b/examples/agent-kit-nextjs-langchain/postcss.config.js
new file mode 100644
index 0000000..33ad091
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/postcss.config.js
@@ -0,0 +1,6 @@
+module.exports = {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+}
diff --git a/examples/agent-kit-nextjs-langchain/public/images/favicon.ico b/examples/agent-kit-nextjs-langchain/public/images/favicon.ico
new file mode 100644
index 0000000..4c29611
Binary files /dev/null and b/examples/agent-kit-nextjs-langchain/public/images/favicon.ico differ
diff --git a/examples/agent-kit-nextjs-langchain/public/images/og-image.png b/examples/agent-kit-nextjs-langchain/public/images/og-image.png
new file mode 100644
index 0000000..088b4bb
Binary files /dev/null and b/examples/agent-kit-nextjs-langchain/public/images/og-image.png differ
diff --git a/examples/agent-kit-nextjs-langchain/public/images/title-card.png b/examples/agent-kit-nextjs-langchain/public/images/title-card.png
new file mode 100644
index 0000000..f501bca
Binary files /dev/null and b/examples/agent-kit-nextjs-langchain/public/images/title-card.png differ
diff --git a/examples/agent-kit-nextjs-langchain/tailwind.config.js b/examples/agent-kit-nextjs-langchain/tailwind.config.js
new file mode 100644
index 0000000..84045aa
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/tailwind.config.js
@@ -0,0 +1,18 @@
+/** @type {import('tailwindcss').Config} */
+module.exports = {
+ content: [
+ "./pages/**/*.{js,ts,jsx,tsx,mdx}",
+ "./components/**/*.{js,ts,jsx,tsx,mdx}",
+ "./app/**/*.{js,ts,jsx,tsx,mdx}",
+ ],
+ theme: {
+ extend: {
+ backgroundImage: {
+ "gradient-radial": "radial-gradient(var(--tw-gradient-stops))",
+ "gradient-conic":
+ "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))",
+ },
+ },
+ },
+ plugins: [require("@tailwindcss/typography")],
+};
diff --git a/examples/agent-kit-nextjs-langchain/tsconfig.json b/examples/agent-kit-nextjs-langchain/tsconfig.json
new file mode 100644
index 0000000..23ba4fd
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/tsconfig.json
@@ -0,0 +1,28 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "bundler",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "paths": {
+ "@/*": ["./*"]
+ }
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
+ "exclude": ["node_modules"]
+}
diff --git a/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts b/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts
new file mode 100644
index 0000000..135fdd9
--- /dev/null
+++ b/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts
@@ -0,0 +1,30 @@
+import { marked } from "marked";
+import DOMPurify from "isomorphic-dompurify";
+
+interface MarkedOptions {
+ gfm: boolean;
+ breaks: boolean;
+ headerIds: boolean;
+ mangle: false;
+ highlight?: (code: string, lang: string) => string;
+}
+
+// Configure marked options
+const markedOptions: MarkedOptions = {
+ gfm: true, // GitHub Flavored Markdown
+ breaks: true, // Convert \n to
+ headerIds: true, // Add ids to headers
+ mangle: false, // Don't escape HTML
+ highlight: function (code: string, lang: string): string {
+ // You can add syntax highlighting here if needed
+ return code;
+ },
+};
+
+marked.setOptions(markedOptions);
+
+// Basic markdown to HTML conversion with sanitization
+export default function markdownToHtml(markdown: string) {
+ const rawHtml = marked.parse(markdown);
+ return DOMPurify.sanitize(rawHtml as string);
+}
diff --git a/examples/persistance-agent/.env.example b/examples/persistent-agent/.env.example
similarity index 100%
rename from examples/persistance-agent/.env.example
rename to examples/persistent-agent/.env.example
diff --git a/examples/persistance-agent/README.md b/examples/persistent-agent/README.md
similarity index 87%
rename from examples/persistance-agent/README.md
rename to examples/persistent-agent/README.md
index e451c29..133c179 100644
--- a/examples/persistance-agent/README.md
+++ b/examples/persistent-agent/README.md
@@ -13,9 +13,9 @@ This example showcases a persistent agent that retains memory across sessions us
To use this feature, ensure you have the following:
-1. **PostgreSQL Database URL**: Create and host ur PostgreSQL databse and enter the URL. It will be of the format "postgresql://user:password@localhost:5432/db"
+1. **PostgreSQL Database URL**: Create and host ur PostgreSQL database and enter the URL. It will be of the format "postgresql://user:password@localhost:5432/db"
-## Before applying persistance
+## Without persistence
```
Available modes:
1. chat
@@ -27,7 +27,7 @@ Starting chat mode... Type 'exit' to end.
Prompt: i am arpit
Hello Arpit! How can I assist you today?
Prompt: ^С
-® arpitsingh Mac persistance-agent & ts-node index.ts
+® arpitsingh Mac persistent-agent & ts-node index.ts
Starting Agent...
Available modes:
1. chat
@@ -39,7 +39,7 @@ Starting chat mode... Type 'exit' to end.
Prompt: do u know my name
I don't know your name yet. If you'd like, you can share it.
```
-## After applying persistence
+## With persistence
```
Available modes:
1. chat
@@ -51,7 +51,7 @@ Starting chat mode... Type 'exit' to end.
Prompt: i am arpit
Hello Arpit! How can I assist you today?
Prompt: ^С
-® arpitsingh Mac persistance-agent & ts-node index.ts
+® arpitsingh Mac persistent-agent & ts-node index.ts
Starting Agent...
Available modes:
1. chat
diff --git a/examples/persistance-agent/index.ts b/examples/persistent-agent/index.ts
similarity index 100%
rename from examples/persistance-agent/index.ts
rename to examples/persistent-agent/index.ts
diff --git a/examples/persistance-agent/package.json b/examples/persistent-agent/package.json
similarity index 100%
rename from examples/persistance-agent/package.json
rename to examples/persistent-agent/package.json
diff --git a/examples/persistance-agent/pnpm-lock.yaml b/examples/persistent-agent/pnpm-lock.yaml
similarity index 100%
rename from examples/persistance-agent/pnpm-lock.yaml
rename to examples/persistent-agent/pnpm-lock.yaml
diff --git a/examples/tg-bot-starter/README.md b/examples/tg-bot-starter/README.md
index 67b4670..2c0e760 100644
--- a/examples/tg-bot-starter/README.md
+++ b/examples/tg-bot-starter/README.md
@@ -1,8 +1,10 @@
-
# Telegram Bot Starter with Solana Agent Kit
This example showcases how we can make a telegram bot with the Solana Agent Kit by Send AI.
+## Quick Deploy
+[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fsendaifun%2Fsolana-agent-kit%2Ftree%2Fmain%2Fexamples%2Ftg-bot-starter&env=OPENAI_API_KEY,RPC_URL,SOLANA_PRIVATE_KEY,TELEGRAM_BOT_TOKEN&project-name=solana-agent-kit&repository-name=sak-yourprojectname)
+
## How to get the telegram bot token
You can check [here](https://help.zoho.com/portal/en/kb/desk/support-channels/instant-messaging/telegram/articles/telegram-integration-with-zoho-desk#How_to_find_a_token_for_an_existing_Telegram_Bot) how you can obtain a bot token for your telegram bot.
@@ -18,5 +20,5 @@ You can check [here](https://help.zoho.com/portal/en/kb/desk/support-channels/in
- You can host it on Vercel too as we have used NextJs in this.
- Once the URL is set successfully, you will see this ``` {"ok":true,"result":true,"description":"Webhook was set"} ```
-Done!!! Congrtulations you just hosted Solana Agent Kit on a Telegram bot.
+Done!!! Congratulations you just hosted Solana Agent Kit on a Telegram bot.
diff --git a/examples/tg-bot-starter/src/app/api/bot/route.ts b/examples/tg-bot-starter/src/app/api/bot/route.ts
index ac63719..2dcdf97 100644
--- a/examples/tg-bot-starter/src/app/api/bot/route.ts
+++ b/examples/tg-bot-starter/src/app/api/bot/route.ts
@@ -1,8 +1,8 @@
-export const dynamic = 'force-dynamic';
-export const fetchCache = 'force-no-store';
+export const dynamic = "force-dynamic";
+export const fetchCache = "force-no-store";
export const maxDuration = 300;
-import { Bot, webhookCallback } from 'grammy';
+import { Bot, webhookCallback } from "grammy";
import { SolanaAgentKit, createSolanaTools } from "solana-agent-kit";
import { ChatOpenAI } from "@langchain/openai";
import { MemorySaver } from "@langchain/langgraph";
@@ -10,10 +10,11 @@ import { createReactAgent } from "@langchain/langgraph/prebuilt";
import { HumanMessage } from "@langchain/core/messages";
const token = process.env.TELEGRAM_BOT_TOKEN;
-if (!token) throw new Error('TELEGRAM_BOT_TOKEN environment variable not found.');
+if (!token) {
+ throw new Error("TELEGRAM_BOT_TOKEN environment variable not found.");
+}
const bot = new Bot(token);
-
async function initializeAgent(userId: string) {
try {
const llm = new ChatOpenAI({
@@ -24,7 +25,7 @@ async function initializeAgent(userId: string) {
const solanaKit = new SolanaAgentKit(
process.env.SOLANA_PRIVATE_KEY!,
process.env.RPC_URL,
- process.env.OPENAI_API_KEY!
+ process.env.OPENAI_API_KEY!,
);
const tools = createSolanaTools(solanaKit);
@@ -51,24 +52,40 @@ async function initializeAgent(userId: string) {
}
}
// Telegram bot handler
-bot.on('message:text', async (ctx:any) => {
+bot.on("message:text", async (ctx: any) => {
const userId = ctx.from?.id.toString();
- if (!userId) return;
- const {agent, config} = await initializeAgent(userId);
- const stream = await agent.stream({ messages: [new HumanMessage(ctx.message.text)] }, config);
- const timeoutPromise = new Promise((_, reject) => setTimeout(() => reject(new Error('Timeout')), 20000));
+ if (!userId) {
+ return;
+ }
+ const { agent, config } = await initializeAgent(userId);
+ const stream = await agent.stream(
+ { messages: [new HumanMessage(ctx.message.text)] },
+ config,
+ );
+ const timeoutPromise = new Promise((_, reject) =>
+ setTimeout(() => reject(new Error("Timeout")), 20000),
+ );
try {
- for await (const chunk of await Promise.race([stream, timeoutPromise]) as AsyncIterable<{ agent?: any; tools?: any }>) {
+ for await (const chunk of (await Promise.race([
+ stream,
+ timeoutPromise,
+ ])) as AsyncIterable<{ agent?: any; tools?: any }>) {
if ("agent" in chunk) {
- if (chunk.agent.messages[0].content) await ctx.reply(String(chunk.agent.messages[0].content));
- }
+ if (chunk.agent.messages[0].content) {
+ await ctx.reply(String(chunk.agent.messages[0].content));
+ }
+ }
}
} catch (error: any) {
- if (error.message === 'Timeout') {
- await ctx.reply("I'm sorry, the operation took too long and timed out. Please try again.");
+ if (error.message === "Timeout") {
+ await ctx.reply(
+ "I'm sorry, the operation took too long and timed out. Please try again.",
+ );
} else {
console.error("Error processing stream:", error);
- await ctx.reply("I'm sorry, an error occurred while processing your request.");
+ await ctx.reply(
+ "I'm sorry, an error occurred while processing your request.",
+ );
}
}
});
@@ -77,10 +94,10 @@ bot.on('message:text', async (ctx:any) => {
export const POST = async (req: Request) => {
// Mark the function as a background function for Vercel
const headers = new Headers();
- headers.set('x-vercel-background', 'true');
+ headers.set("x-vercel-background", "true");
- const handler = webhookCallback(bot, 'std/http'); // Use the correct callback
+ const handler = webhookCallback(bot, "std/http"); // Use the correct callback
// Handle the incoming webhook request
return handler(req);
-};
\ No newline at end of file
+};
diff --git a/package.json b/package.json
index 08b0f8f..4ff2307 100644
--- a/package.json
+++ b/package.json
@@ -1,70 +1,78 @@
{
- "name": "solana-agent-kit",
- "version": "1.3.1",
- "description": "connect any ai agents to solana protocols",
- "main": "dist/index.js",
- "types": "dist/index.d.ts",
- "scripts": {
- "build": "tsc",
- "docs": "typedoc src --out docs",
- "test": "ts-node test/index.ts",
- "generate": "ts-node src/utils/keypair.ts",
- "lint": "eslint . --ext .ts",
- "lint:fix": "eslint . --ext .ts --fix",
- "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\""
- },
- "engines": {
- "node": ">=22.0.0",
- "pnpm": ">=8.0.0"
- },
- "keywords": [],
- "author": "sendaifun",
- "license": "Apache-2.0",
- "dependencies": {
- "@bonfida/spl-name-service": "^3.0.7",
- "@coral-xyz/anchor": "0.29",
- "@langchain/core": "^0.3.26",
- "@langchain/groq": "^0.1.2",
- "@langchain/langgraph": "^0.2.34",
- "@langchain/openai": "^0.3.13",
- "@lightprotocol/compressed-token": "^0.17.1",
- "@lightprotocol/stateless.js": "^0.17.1",
- "@metaplex-foundation/mpl-core": "^1.1.1",
- "@metaplex-foundation/mpl-token-metadata": "^3.3.0",
- "@metaplex-foundation/mpl-toolbox": "^0.9.4",
- "@metaplex-foundation/umi": "^0.9.2",
- "@metaplex-foundation/umi-bundle-defaults": "^0.9.2",
- "@metaplex-foundation/umi-web3js-adapters": "^0.9.2",
- "@onsol/tldparser": "^0.6.7",
- "@orca-so/common-sdk": "0.6.4",
- "@orca-so/whirlpools-sdk": "^0.13.12",
- "@pythnetwork/price-service-client": "^1.9.0",
- "@raydium-io/raydium-sdk-v2": "0.1.95-alpha",
- "@solana/spl-token": "^0.4.9",
- "@solana/web3.js": "^1.95.4",
+ "name": "solana-agent-kit",
+ "version": "1.3.7",
+ "description": "connect any ai agents to solana protocols",
+ "main": "dist/index.js",
+ "types": "dist/index.d.ts",
+ "scripts": {
+ "build": "tsc",
+ "docs": "typedoc src --out docs",
+ "test": "ts-node test/index.ts",
+ "test:vercel-ai": "ts-node test/agent_sdks/vercel_ai.ts",
+ "generate": "ts-node src/utils/keypair.ts",
+ "lint": "eslint . --ext .ts",
+ "lint:fix": "eslint . --ext .ts --fix",
+ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
+ "prepare": "husky"
+ },
+ "engines": {
+ "node": ">=22.0.0",
+ "pnpm": ">=8.0.0"
+ },
+ "keywords": [],
+ "author": "sendaifun",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@ai-sdk/openai": "^1.0.11",
+ "@bonfida/spl-name-service": "^3.0.7",
+ "@cks-systems/manifest-sdk": "0.1.59",
+ "@coral-xyz/anchor": "0.29",
+ "@langchain/core": "^0.3.26",
+ "@langchain/groq": "^0.1.2",
+ "@langchain/langgraph": "^0.2.36",
+ "@langchain/openai": "^0.3.16",
+ "@lightprotocol/compressed-token": "^0.17.1",
+ "@lightprotocol/stateless.js": "^0.17.1",
+ "@metaplex-foundation/mpl-core": "^1.1.1",
+ "@metaplex-foundation/mpl-token-metadata": "^3.3.0",
+ "@metaplex-foundation/mpl-toolbox": "^0.9.4",
+ "@metaplex-foundation/umi": "^0.9.2",
+ "@metaplex-foundation/umi-bundle-defaults": "^0.9.2",
+ "@metaplex-foundation/umi-web3js-adapters": "^0.9.2",
+ "@onsol/tldparser": "^0.6.7",
+ "@orca-so/common-sdk": "0.6.4",
+ "@orca-so/whirlpools-sdk": "^0.13.12",
+ "@raydium-io/raydium-sdk-v2": "0.1.95-alpha",
+ "@solana/spl-token": "^0.4.9",
+ "@solana/web3.js": "^1.98.0",
+ "@tensor-oss/tensorswap-sdk": "^4.5.0",
"@sqds/multisig": "^2.1.3",
- "@tiplink/api": "^0.3.1",
- "bn.js": "^5.2.1",
- "bs58": "^6.0.0",
- "chai": "^5.1.2",
- "decimal.js": "^10.4.3",
- "dotenv": "^16.4.5",
- "form-data": "^4.0.1",
- "langchain": "^0.3.6",
- "openai": "^4.75.0",
- "typedoc": "^0.26.11"
- },
- "devDependencies": {
- "@types/bn.js": "^5.1.5",
- "@types/chai": "^5.0.1",
- "@types/node": "^22.9.0",
- "@typescript-eslint/eslint-plugin": "^7.0.0",
- "@typescript-eslint/parser": "^7.0.0",
- "eslint": "^8.56.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-prettier": "^5.1.3",
- "prettier": "^3.2.5",
- "ts-node": "^10.9.2",
- "typescript": "^5.7.2"
- }
+ "@tiplink/api": "^0.3.1",
+ "ai": "^4.0.22",
+ "bn.js": "^5.2.1",
+ "bs58": "^6.0.0",
+ "chai": "^5.1.2",
+ "decimal.js": "^10.4.3",
+ "dotenv": "^16.4.7",
+ "form-data": "^4.0.1",
+ "langchain": "^0.3.8",
+ "openai": "^4.77.0",
+ "typedoc": "^0.27.6",
+ "zod": "^3.24.1"
+ },
+ "devDependencies": {
+ "@types/bn.js": "^5.1.6",
+ "@types/chai": "^5.0.1",
+ "@types/node": "^22.10.2",
+ "@typescript-eslint/eslint-plugin": "^8.18.2",
+ "@typescript-eslint/parser": "^8.18.2",
+ "eslint": "^8.56.0",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-plugin-prettier": "^5.2.1",
+ "husky": "^9.1.7",
+ "lint-staged": "^15.3.0",
+ "prettier": "^3.4.2",
+ "ts-node": "^10.9.2",
+ "typescript": "^5.7.2"
+ }
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 667c97f..9dcaeb6 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,33 +8,39 @@ importers:
.:
dependencies:
+ '@ai-sdk/openai':
+ specifier: ^1.0.11
+ version: 1.0.11(zod@3.24.1)
'@bonfida/spl-name-service':
specifier: ^3.0.7
- version: 3.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ version: 3.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ '@cks-systems/manifest-sdk':
+ specifier: 0.1.59
+ version: 0.1.59(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
'@coral-xyz/anchor':
specifier: '0.29'
- version: 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
'@langchain/core':
specifier: ^0.3.26
- version: 0.3.26(openai@4.77.0(zod@3.24.1))
+ version: 0.3.27(openai@4.77.3(zod@3.24.1))
'@langchain/groq':
specifier: ^0.1.2
- version: 0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ version: 0.1.2(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1)))
'@langchain/langgraph':
- specifier: ^0.2.34
- version: 0.2.34(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ specifier: ^0.2.36
+ version: 0.2.38(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1)))
'@langchain/openai':
- specifier: ^0.3.13
- version: 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ specifier: ^0.3.16
+ version: 0.3.16(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1)))
'@lightprotocol/compressed-token':
specifier: ^0.17.1
- version: 0.17.1(@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ version: 0.17.1(@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
'@lightprotocol/stateless.js':
specifier: ^0.17.1
- version: 0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.17.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
'@metaplex-foundation/mpl-core':
specifier: ^1.1.1
- version: 1.1.1(@metaplex-foundation/umi@0.9.2)(@noble/hashes@1.6.1)
+ version: 1.1.1(@metaplex-foundation/umi@0.9.2)(@noble/hashes@1.7.0)
'@metaplex-foundation/mpl-token-metadata':
specifier: ^3.3.0
version: 3.3.0(@metaplex-foundation/umi@0.9.2)
@@ -46,37 +52,40 @@ importers:
version: 0.9.2
'@metaplex-foundation/umi-bundle-defaults':
specifier: ^0.9.2
- version: 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ version: 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
'@metaplex-foundation/umi-web3js-adapters':
specifier: ^0.9.2
- version: 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ version: 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
'@onsol/tldparser':
specifier: ^0.6.7
- version: 0.6.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bn.js@5.2.1)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.6.7(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bn.js@5.2.1)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10)
'@orca-so/common-sdk':
specifier: 0.6.4
- version: 0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3)
+ version: 0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(decimal.js@10.4.3)
'@orca-so/whirlpools-sdk':
specifier: ^0.13.12
- version: 0.13.12(@coral-xyz/anchor@0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3))(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3)
- '@pythnetwork/price-service-client':
- specifier: ^1.9.0
- version: 1.9.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ version: 0.13.13(@coral-xyz/anchor@0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(decimal.js@10.4.3))(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(decimal.js@10.4.3)
'@raydium-io/raydium-sdk-v2':
specifier: 0.1.95-alpha
- version: 0.1.95-alpha(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ version: 0.1.95-alpha(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
'@solana/spl-token':
specifier: ^0.4.9
- version: 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ version: 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
'@solana/web3.js':
- specifier: ^1.95.4
- version: 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ specifier: ^1.98.0
+ version: 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@tensor-oss/tensorswap-sdk':
+ specifier: ^4.5.0
+ version: 4.5.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
'@sqds/multisig':
specifier: ^2.1.3
version: 2.1.3(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
'@tiplink/api':
specifier: ^0.3.1
- version: 0.3.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(sodium-native@3.4.1)(utf-8-validate@5.0.10)
+ version: 0.3.1(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(sodium-native@3.4.1)(utf-8-validate@5.0.10)
+ ai:
+ specifier: ^4.0.22
+ version: 4.0.22(react@19.0.0)(zod@3.24.1)
bn.js:
specifier: ^5.2.1
version: 5.2.1
@@ -90,36 +99,39 @@ importers:
specifier: ^10.4.3
version: 10.4.3
dotenv:
- specifier: ^16.4.5
+ specifier: ^16.4.7
version: 16.4.7
form-data:
specifier: ^4.0.1
version: 4.0.1
langchain:
- specifier: ^0.3.6
- version: 0.3.7(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(axios@1.7.9)(openai@4.77.0(zod@3.24.1))
+ specifier: ^0.3.8
+ version: 0.3.9(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1))))(axios@1.7.9)(openai@4.77.3(zod@3.24.1))
openai:
- specifier: ^4.75.0
- version: 4.77.0(zod@3.24.1)
+ specifier: ^4.77.0
+ version: 4.77.3(zod@3.24.1)
typedoc:
- specifier: ^0.26.11
- version: 0.26.11(typescript@5.7.2)
+ specifier: ^0.27.6
+ version: 0.27.6(typescript@5.7.2)
+ zod:
+ specifier: ^3.24.1
+ version: 3.24.1
devDependencies:
'@types/bn.js':
- specifier: ^5.1.5
+ specifier: ^5.1.6
version: 5.1.6
'@types/chai':
specifier: ^5.0.1
version: 5.0.1
'@types/node':
- specifier: ^22.9.0
- version: 22.10.2
+ specifier: ^22.10.2
+ version: 22.10.5
'@typescript-eslint/eslint-plugin':
- specifier: ^7.0.0
- version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)
+ specifier: ^8.18.2
+ version: 8.19.0(@typescript-eslint/parser@8.19.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)
'@typescript-eslint/parser':
- specifier: ^7.0.0
- version: 7.18.0(eslint@8.57.1)(typescript@5.7.2)
+ specifier: ^8.18.2
+ version: 8.19.0(eslint@8.57.1)(typescript@5.7.2)
eslint:
specifier: ^8.56.0
version: 8.57.1
@@ -127,20 +139,66 @@ importers:
specifier: ^9.1.0
version: 9.1.0(eslint@8.57.1)
eslint-plugin-prettier:
- specifier: ^5.1.3
+ specifier: ^5.2.1
version: 5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.4.2)
+ husky:
+ specifier: ^9.1.7
+ version: 9.1.7
+ lint-staged:
+ specifier: ^15.3.0
+ version: 15.3.0
prettier:
- specifier: ^3.2.5
+ specifier: ^3.4.2
version: 3.4.2
ts-node:
specifier: ^10.9.2
- version: 10.9.2(@types/node@22.10.2)(typescript@5.7.2)
+ version: 10.9.2(@types/node@22.10.5)(typescript@5.7.2)
typescript:
specifier: ^5.7.2
version: 5.7.2
packages:
+ '@ai-sdk/openai@1.0.11':
+ resolution: {integrity: sha512-qI9s7Slma5i5bB4yYVlFdcG3PNDwdqivPT1Dr8adDX92nSSpILjgFIooS5yys9sXjvvcfOi/WXbDvVhLSRRlvg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.0.0
+
+ '@ai-sdk/provider-utils@2.0.5':
+ resolution: {integrity: sha512-2M7vLhYN0ThGjNlzow7oO/lsL+DyMxvGMIYmVQvEYaCWhDzxH5dOp78VNjJIVwHzVLMbBDigX3rJuzAs853idw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ zod:
+ optional: true
+
+ '@ai-sdk/provider@1.0.3':
+ resolution: {integrity: sha512-WiuJEpHTrltOIzv3x2wx4gwksAHW0h6nK3SoDzjqCOJLu/2OJ1yASESTIX+f07ChFykHElVoP80Ol/fe9dw6tQ==}
+ engines: {node: '>=18'}
+
+ '@ai-sdk/react@1.0.7':
+ resolution: {integrity: sha512-j2/of4iCNq+r2Bjx0O9vdRhn5C/02t2Esenis71YtnsoynPz74eQlJ3N0RYYPheThiJes50yHdfdVdH9ulxs1A==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ react: ^18 || ^19 || ^19.0.0-rc
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ react:
+ optional: true
+ zod:
+ optional: true
+
+ '@ai-sdk/ui-utils@1.0.6':
+ resolution: {integrity: sha512-ZP6Vjj+VCnSPBIAvWAdKj2olQONJ/f4aZpkVCGkzprdhv8TjHwB6CTlXFS3zypuEGy4asg84dc1dvXKooQXFvg==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ zod:
+ optional: true
+
'@babel/runtime@7.26.0':
resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==}
engines: {node: '>=6.9.0'}
@@ -158,10 +216,23 @@ packages:
'@cfworker/json-schema@4.0.3':
resolution: {integrity: sha512-ZykIcDTVv5UNmKWSTLAs3VukO6NDJkkSKxrgUTDPBkAlORVT3H9n5DbRjRl8xIotklscHdbLIa0b9+y3mQq73g==}
+ '@cks-systems/manifest-sdk@0.1.59':
+ resolution: {integrity: sha512-ZYTwwDxrC2u74kF30iWZPZPYXB9MtOydLd4/SQdlMXrb6bj1OooMtZxukSCu/Tlkp+KR26bEr6gYuErFHdUFjg==}
+
+ '@coral-xyz/anchor@0.26.0':
+ resolution: {integrity: sha512-PxRl+wu5YyptWiR9F2MBHOLLibm87Z4IMUBPreX+DYBtPM+xggvcPi0KAN7+kIL4IrIhXI8ma5V0MCXxSN1pHg==}
+ engines: {node: '>=11'}
+
'@coral-xyz/anchor@0.29.0':
resolution: {integrity: sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA==}
engines: {node: '>=11'}
+ '@coral-xyz/borsh@0.26.0':
+ resolution: {integrity: sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==}
+ engines: {node: '>=10'}
+ peerDependencies:
+ '@solana/web3.js': ^1.68.0
+
'@coral-xyz/borsh@0.29.0':
resolution: {integrity: sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==}
engines: {node: '>=10'}
@@ -182,14 +253,47 @@ packages:
resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+ '@eslint/config-array@0.19.1':
+ resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/core@0.9.1':
+ resolution: {integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@eslint/eslintrc@2.1.4':
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@eslint/eslintrc@3.2.0':
+ resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@eslint/js@8.57.1':
resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ '@eslint/js@9.17.0':
+ resolution: {integrity: sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/object-schema@2.1.5':
+ resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@eslint/plugin-kit@0.2.4':
+ resolution: {integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+ '@ethereumjs/rlp@4.0.1':
+ resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==}
+ engines: {node: '>=14'}
+ hasBin: true
+
+ '@ethereumjs/util@8.1.0':
+ resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==}
+ engines: {node: '>=14'}
+
'@ethersproject/bytes@5.7.0':
resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==}
@@ -199,6 +303,17 @@ packages:
'@ethersproject/sha2@5.7.0':
resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==}
+ '@gerrit0/mini-shiki@1.26.1':
+ resolution: {integrity: sha512-gHFUvv9f1fU2Piou/5Y7Sx5moYxcERbC7CXc6rkDLQTUBg5Dgg9L4u29/nHqfoQ3Y9R0h0BcOhd14uOEZIBP7Q==}
+
+ '@humanfs/core@0.19.1':
+ resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==}
+ engines: {node: '>=18.18.0'}
+
+ '@humanfs/node@0.16.6':
+ resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==}
+ engines: {node: '>=18.18.0'}
+
'@humanwhocodes/config-array@0.13.0':
resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
engines: {node: '>=10.10.0'}
@@ -212,6 +327,18 @@ packages:
resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
deprecated: Use @eslint/object-schema instead
+ '@humanwhocodes/retry@0.3.1':
+ resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
+ engines: {node: '>=18.18'}
+
+ '@humanwhocodes/retry@0.4.1':
+ resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==}
+ engines: {node: '>=18.18'}
+
+ '@isaacs/cliui@8.0.2':
+ resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+ engines: {node: '>=12'}
+
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
@@ -222,8 +349,8 @@ packages:
'@jridgewell/trace-mapping@0.3.9':
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
- '@langchain/core@0.3.26':
- resolution: {integrity: sha512-6RUQHEp8wv+JwtYIIEBYBzbLlcAQZFc7EDOgAM0ukExjh9HiXoJzoWpgMRRCrr/koIbtwXPJUqBprZK1I1CXHQ==}
+ '@langchain/core@0.3.27':
+ resolution: {integrity: sha512-jtJKbJWB1NPU1YvtrExOB2rumvUFgkJwlWGxyjSIV9A6zcLVmUbcZGV8fCSuXgl5bbzOIQLJ1xcLYQmbW9TkTg==}
engines: {node: '>=18'}
'@langchain/groq@0.1.2':
@@ -238,11 +365,11 @@ packages:
peerDependencies:
'@langchain/core': '>=0.2.31 <0.4.0'
- '@langchain/langgraph-sdk@0.0.32':
- resolution: {integrity: sha512-KQyM9kLO7T6AxwNrceajH7JOybP3pYpvUPnhiI2rrVndI1WyZUJ1eVC1e722BVRAPi6o+WcoTT4uMSZVinPOtA==}
+ '@langchain/langgraph-sdk@0.0.33':
+ resolution: {integrity: sha512-l/hRbI6roLzplBXy2VyDUwqY1TkK7RcjPmrMUuVdvCCH4LTwLfIXh/G1kHatNiN7VUTskw0FkfBbgq6gtj0ang==}
- '@langchain/langgraph@0.2.34':
- resolution: {integrity: sha512-fSlmLYre+Skh5XJgBGe5YRtXaHyGMTlhu5UN3LzIgA3E9CmGODvH+Ydyk5vJzhXMjnPpLr8icqlKxKrYmZ3gTw==}
+ '@langchain/langgraph@0.2.38':
+ resolution: {integrity: sha512-mVy99pMftBGgUTBTCepSyzTovWCvpgdNcXsAjxTiMrMX6lzueNiBz0ljkY7UFoIoHYwurQbyl2WmMPFuxkSIAw==}
engines: {node: '>=18'}
peerDependencies:
'@langchain/core': '>=0.2.36 <0.3.0 || >=0.3.9 < 0.4.0'
@@ -267,12 +394,27 @@ packages:
'@lightprotocol/stateless.js@0.17.1':
resolution: {integrity: sha512-EjId1n33A6dBwpce33Wsa/fs/CDKtMtRrkxbApH0alXrnEXmbW6QhIViXOrKYXjZ4uJQM1xsBtsKe0vqJ4nbtQ==}
+ '@metaplex-foundation/beet-solana@0.3.1':
+ resolution: {integrity: sha512-tgyEl6dvtLln8XX81JyBvWjIiEcjTkUwZbrM5dIobTmoqMuGewSyk9CClno8qsMsFdB5T3jC91Rjeqmu/6xk2g==}
+
+ '@metaplex-foundation/beet-solana@0.4.0':
+ resolution: {integrity: sha512-B1L94N3ZGMo53b0uOSoznbuM5GBNJ8LwSeznxBxJ+OThvfHQ4B5oMUqb+0zdLRfkKGS7Q6tpHK9P+QK0j3w2cQ==}
+
'@metaplex-foundation/beet-solana@0.4.0':
resolution: {integrity: sha512-B1L94N3ZGMo53b0uOSoznbuM5GBNJ8LwSeznxBxJ+OThvfHQ4B5oMUqb+0zdLRfkKGS7Q6tpHK9P+QK0j3w2cQ==}
'@metaplex-foundation/beet-solana@0.4.1':
resolution: {integrity: sha512-/6o32FNUtwK8tjhotrvU/vorP7umBuRFvBZrC6XCk51aKidBHe5LPVPA5AjGPbV3oftMfRuXPNd9yAGeEqeCDQ==}
+ '@metaplex-foundation/beet@0.4.0':
+ resolution: {integrity: sha512-2OAKJnLatCc3mBXNL0QmWVQKAWK2C7XDfepgL0p/9+8oSx4bmRAFHFqptl1A/C0U5O3dxGwKfmKluW161OVGcA==}
+
+ '@metaplex-foundation/beet@0.6.1':
+ resolution: {integrity: sha512-OYgnijLFzw0cdUlRKH5POp0unQECPOW9muJ2X3QIVyak5G6I6l/rKo72sICgPLIFKdmsi2jmnkuLY7wp14iXdw==}
+
+ '@metaplex-foundation/beet@0.7.1':
+ resolution: {integrity: sha512-hNCEnS2WyCiYyko82rwuISsBY3KYpe828ubsd2ckeqZr7tl0WVLivGkoyA/qdiaaHEBGdGl71OpfWa2rqL3DiA==}
+
'@metaplex-foundation/beet@0.7.1':
resolution: {integrity: sha512-hNCEnS2WyCiYyko82rwuISsBY3KYpe828ubsd2ckeqZr7tl0WVLivGkoyA/qdiaaHEBGdGl71OpfWa2rqL3DiA==}
@@ -282,12 +424,24 @@ packages:
'@metaplex-foundation/cusper@0.0.2':
resolution: {integrity: sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA==}
+ '@metaplex-foundation/mpl-auction-house@2.5.1':
+ resolution: {integrity: sha512-O+IAdYVaoOvgACB8pm+1lF5BNEjl0COkqny2Ho8KQZwka6aC/vHbZ239yRwAMtJhf5992BPFdT4oifjyE0O+Mw==}
+
+ '@metaplex-foundation/mpl-bubblegum@0.7.0':
+ resolution: {integrity: sha512-HCo6q+nh8M3KRv9/aUaZcJo5/vPJEeZwPGRDWkqN7lUXoMIvhd83fZi7MB1rIg1gwpVHfHqim0A02LCYKisWFg==}
+
+ '@metaplex-foundation/cusper@0.0.2':
+ resolution: {integrity: sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA==}
+
'@metaplex-foundation/mpl-core@1.1.1':
resolution: {integrity: sha512-h1kLw+cGaV8SiykoHDb1/G01+VYqtJXAt0uGuO5+2Towsdtc6ET4M62iqUnh4EacTVMIW1yYHsKsG/LYWBCKaA==}
peerDependencies:
'@metaplex-foundation/umi': '>=0.8.2 < 1'
'@noble/hashes': ^1.3.1
+ '@metaplex-foundation/mpl-token-metadata@2.13.0':
+ resolution: {integrity: sha512-Fl/8I0L9rv4bKTV/RAl5YIbJe9SnQPInKvLz+xR1fEc4/VQkuCn3RPgypfUMEKWmCznzaw4sApDxy6CFS4qmJw==}
+
'@metaplex-foundation/mpl-token-metadata@3.3.0':
resolution: {integrity: sha512-t5vO8Wr3ZZZPGrVrGNcosX5FMkwQSgBiVMQMRNDG2De7voYFJmIibD5jdG05EoQ4Y5kZVEiwhYaO+wJB3aO5AA==}
peerDependencies:
@@ -298,6 +452,13 @@ packages:
peerDependencies:
'@metaplex-foundation/umi': '>= 0.8.2 < 1'
+ '@metaplex-foundation/rustbin@0.3.5':
+ resolution: {integrity: sha512-m0wkRBEQB/8krwMwKBvFugufZtYwMXiGHud2cTDAv+aGXK4M90y0Hx67/wpu+AqqoQfdV8VM9YezUOHKD+Z5kA==}
+
+ '@metaplex-foundation/solita@0.12.2':
+ resolution: {integrity: sha512-oczMfE43NNHWweSqhXPTkQBUbap/aAiwjDQw8zLKNnd/J8sXr/0+rKcN5yJIEgcHeKRkp90eTqkmt2WepQc8yw==}
+ hasBin: true
+
'@metaplex-foundation/umi-bundle-defaults@0.9.2':
resolution: {integrity: sha512-kV3tfvgvRjVP1p9OFOtH+ibOtN9omVJSwKr0We4/9r45e5LTj+32su0V/rixZUkG1EZzzOYBsxhtIE0kIw/Hrw==}
peerDependencies:
@@ -374,24 +535,31 @@ packages:
'@metaplex-foundation/umi@0.9.2':
resolution: {integrity: sha512-9i4Acm4pruQfJcpRrc2EauPBwkfDN0I9QTvJyZocIlKgoZwD6A6wH0PViH1AjOVG5CQCd1YI3tJd5XjYE1ElBw==}
+ '@msgpack/msgpack@2.8.0':
+ resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==}
+ engines: {node: '>= 10'}
+
'@msgpack/msgpack@3.0.0-beta2':
resolution: {integrity: sha512-y+l1PNV0XDyY8sM3YtuMLK5vE3/hkfId+Do8pLo/OPxfxuFAUwcGz3oiiUuV46/aBpwTzZ+mRWVMtlSKbradhw==}
engines: {node: '>= 14'}
- '@noble/curves@1.7.0':
- resolution: {integrity: sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==}
+ '@noble/curves@1.4.2':
+ resolution: {integrity: sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==}
+
+ '@noble/curves@1.8.0':
+ resolution: {integrity: sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==}
engines: {node: ^14.21.3 || >=16}
+ '@noble/hashes@1.4.0':
+ resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
+ engines: {node: '>= 16'}
+
'@noble/hashes@1.5.0':
resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==}
engines: {node: ^14.21.3 || >=16}
- '@noble/hashes@1.6.0':
- resolution: {integrity: sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==}
- engines: {node: ^14.21.3 || >=16}
-
- '@noble/hashes@1.6.1':
- resolution: {integrity: sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==}
+ '@noble/hashes@1.7.0':
+ resolution: {integrity: sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==}
engines: {node: ^14.21.3 || >=16}
'@nodelib/fs.scandir@2.1.5':
@@ -415,6 +583,10 @@ packages:
borsh: ^0.7.0
buffer: 6.0.1
+ '@opentelemetry/api@1.9.0':
+ resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
+ engines: {node: '>=8.0.0'}
+
'@orca-so/common-sdk@0.6.4':
resolution: {integrity: sha512-iOiC6exTA9t2CEOaUPoWlNP3soN/1yZFjoz1mSf7NvOqo/PJZeIdWpB7BRXwU0mGGatjxU4SFgMGQ8NrSx+ONw==}
peerDependencies:
@@ -422,8 +594,8 @@ packages:
'@solana/web3.js': ^1.90.0
decimal.js: ^10.4.3
- '@orca-so/whirlpools-sdk@0.13.12':
- resolution: {integrity: sha512-+LOqGTe0DYUsYwemltOU4WQIviqoICQlIcAmmEX/WnBh6wntpcLDcXkPV6dBHW7NA2/J8WEVAZ50biLJb4subg==}
+ '@orca-so/whirlpools-sdk@0.13.13':
+ resolution: {integrity: sha512-S3ovmnihBdZ5cmn3ylvJv+kAIUcGX5Y5RSWzv/WvF6etv/tLuO8FKc5mYxVenTa/NG78turTMbhujDdfGaahDw==}
peerDependencies:
'@coral-xyz/anchor': ~0.29.0
'@orca-so/common-sdk': 0.6.4
@@ -431,37 +603,58 @@ packages:
'@solana/web3.js': ^1.90.0
decimal.js: ^10.4.3
+ '@pkgjs/parseargs@0.11.0':
+ resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
+ engines: {node: '>=14'}
+
'@pkgr/core@0.1.1':
resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
- '@pythnetwork/price-service-client@1.9.0':
- resolution: {integrity: sha512-SLm3IFcfmy9iMqHeT4Ih6qMNZhJEefY14T9yTlpsH2D/FE5+BaGGnfcexUifVlfH6M7mwRC4hEFdNvZ6ebZjJg==}
- deprecated: This package is deprecated and is no longer maintained. Please use @pythnetwork/hermes-client instead.
-
- '@pythnetwork/price-service-sdk@1.8.0':
- resolution: {integrity: sha512-tFZ1thj3Zja06DzPIX2dEWSi7kIfIyqreoywvw5NQ3Z1pl5OJHQGMEhxt6Li3UCGSp2ooYZS9wl8/8XfrfrNSA==}
-
'@raydium-io/raydium-sdk-v2@0.1.95-alpha':
resolution: {integrity: sha512-+u7yxo/R1JDysTCzOuAlh90ioBe2DlM2Hbcz/tFsxP/YzmnYQzShvNjcmc0361a4zJhmlrEJfpFXW0J3kkX5vA==}
+ '@saberhq/option-utils@1.15.0':
+ resolution: {integrity: sha512-XVbS9H4b8PIGXJGaErkOurxV2FKFyvMwYq0pD8Y1iEPoi6HB//+HnpEKAv8tCssIQ5Nn1zQWzmQ9CmGkrwzcsw==}
+
+ '@saberhq/solana-contrib@1.15.0':
+ resolution: {integrity: sha512-OExL5qGrNMmIKINU7qFUDmY7+xIwVM2s360g99k8CRNHSnjpnqIzwDjr2CnvEFpeQPp22OdGlS63woDp0w0JsQ==}
+ peerDependencies:
+ '@solana/web3.js': ^1.42
+ bn.js: ^4 || ^5
+
+ '@scure/base@1.1.9':
+ resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==}
+
'@scure/base@1.2.1':
resolution: {integrity: sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==}
- '@shikijs/core@1.24.3':
- resolution: {integrity: sha512-VRcf4GYUIkxIchGM9DrapRcxtgojg4IWKUtX5EtW+4PJiGzF2xQqZSv27PJt+WLc18KT3CNLpNWow9JYV5n+Rg==}
+ '@scure/bip32@1.4.0':
+ resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==}
- '@shikijs/engine-javascript@1.24.3':
- resolution: {integrity: sha512-De8tNLvYjeK6V0Gb47jIH2M+OKkw+lWnSV1j3HVDFMlNIglmVcTMG2fASc29W0zuFbfEEwKjO8Fe4KYSO6Ce3w==}
+ '@scure/bip39@1.3.0':
+ resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==}
- '@shikijs/engine-oniguruma@1.24.3':
- resolution: {integrity: sha512-iNnx950gs/5Nk+zrp1LuF+S+L7SKEhn8k9eXgFYPGhVshKppsYwRmW8tpmAMvILIMSDfrgqZ0w+3xWVQB//1Xw==}
+ '@shikijs/core@1.26.1':
+ resolution: {integrity: sha512-yeo7sG+WZQblKPclUOKRPwkv1PyoHYkJ4gP9DzhFJbTdueKR7wYTI1vfF/bFi1NTgc545yG/DzvVhZgueVOXMA==}
- '@shikijs/types@1.24.3':
- resolution: {integrity: sha512-FPMrJ69MNxhRtldRk69CghvaGlbbN3pKRuvko0zvbfa2dXp4pAngByToqS5OY5jvN8D7LKR4RJE8UvzlCOuViw==}
+ '@shikijs/engine-javascript@1.26.1':
+ resolution: {integrity: sha512-CRhA0b8CaSLxS0E9A4Bzcb3LKBNpykfo9F85ozlNyArxjo2NkijtiwrJZ6eHa+NT5I9Kox2IXVdjUsP4dilsmw==}
- '@shikijs/vscode-textmate@9.3.1':
- resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==}
+ '@shikijs/engine-oniguruma@1.26.1':
+ resolution: {integrity: sha512-F5XuxN1HljLuvfXv7d+mlTkV7XukC1cawdtOo+7pKgPD83CAB1Sf8uHqP3PK0u7njFH0ZhoXE1r+0JzEgAQ+kg==}
+
+ '@shikijs/langs@1.26.1':
+ resolution: {integrity: sha512-oz/TQiIqZejEIZbGtn68hbJijAOTtYH4TMMSWkWYozwqdpKR3EXgILneQy26WItmJjp3xVspHdiUxUCws4gtuw==}
+
+ '@shikijs/themes@1.26.1':
+ resolution: {integrity: sha512-JDxVn+z+wgLCiUhBGx2OQrLCkKZQGzNH3nAxFir4PjUcYiyD8Jdms9izyxIogYmSwmoPTatFTdzyrRKbKlSfPA==}
+
+ '@shikijs/types@1.26.1':
+ resolution: {integrity: sha512-d4B00TKKAMaHuFYgRf3L0gwtvqpW4hVdVwKcZYbBfAAQXspgkbWqnFfuFl3MDH6gLbsubOcr+prcnsqah3ny7Q==}
+
+ '@shikijs/vscode-textmate@10.0.1':
+ resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==}
'@solana/buffer-layout-utils@0.2.0':
resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==}
@@ -569,6 +762,12 @@ packages:
peerDependencies:
typescript: '>=5'
+ '@solana/spl-account-compression@0.1.10':
+ resolution: {integrity: sha512-IQAOJrVOUo6LCgeWW9lHuXo6JDbi4g3/RkQtvY0SyalvSWk9BIkHHe4IkAzaQw8q/BxEVBIjz8e9bNYWIAESNw==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ '@solana/web3.js': ^1.50.1
+
'@solana/spl-token-group@0.0.4':
resolution: {integrity: sha512-7+80nrEMdUKlK37V6kOe024+T7J4nNss0F8LQ9OOPYdWCCfJmsGUzVx2W3oeizZR4IHM6N4yC9v1Xqwc3BTPWw==}
engines: {node: '>=16'}
@@ -593,6 +792,10 @@ packages:
peerDependencies:
'@solana/web3.js': ^1.95.3
+ '@solana/spl-token@0.1.8':
+ resolution: {integrity: sha512-LZmYCKcPQDtJgecvWOgT/cnoIQPWjdH+QVyzPcFvyDUiT0DiRjZaam4aqNUyvchLFhzgunv3d9xOoyE34ofdoQ==}
+ engines: {node: '>= 10'}
+
'@solana/spl-token@0.3.11':
resolution: {integrity: sha512-bvohO3rIMSVL24Pb+I4EYTJ6cL82eFpInEXD/I8K8upOGjpqHsKUoAempR/RnUlI1qSFNyFlWJfu6MNUgfbCQQ==}
engines: {node: '>=16'}
@@ -634,6 +837,12 @@ packages:
'@swc/helpers@0.5.15':
resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==}
+ '@tensor-hq/tensor-common@8.3.1':
+ resolution: {integrity: sha512-cgc+Z0nR23pi+1DfJgF1+afWd+xf1e6VYPM9yhECshmERr6BgojQfcuoltHHcgpwSlLrZXnm47kQ48I2M6rxFQ==}
+
+ '@tensor-oss/tensorswap-sdk@4.5.0':
+ resolution: {integrity: sha512-eNM6k1DT5V/GadxSHm8//z2wlLl8/EcA0KFQXKaxRba/2MirNySsoVGxDXO2UdOI4eZMse8f+8Et3P63WWjsIw==}
+
'@tiplink/api@0.3.1':
resolution: {integrity: sha512-HjnXethjKOHTYT0IP1BewlMS7wZJ+hsoDgRa6jA1cNvxvwQjE1WHOyvOUPpAi+DJDw4P4/omFtyHr7dwLfnB/g==}
@@ -652,6 +861,9 @@ packages:
'@types/bn.js@5.1.6':
resolution: {integrity: sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==}
+ '@types/body-parser@1.19.5':
+ resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
+
'@types/chai@5.0.1':
resolution: {integrity: sha512-5T8ajsg3M/FOncpLYW7sdOcD6yf4+722sze/tc4KQV0P8Z2rAr3SAuHCIkYmYpt8VbcQlnz8SxlOlPQYefe4cA==}
@@ -661,30 +873,66 @@ packages:
'@types/deep-eql@4.0.2':
resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==}
+ '@types/diff-match-patch@1.0.36':
+ resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==}
+
+ '@types/estree@1.0.6':
+ resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
+
+ '@types/express-serve-static-core@4.19.6':
+ resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==}
+
+ '@types/express@4.17.21':
+ resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==}
+
'@types/hast@3.0.4':
resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
+ '@types/http-errors@2.0.4':
+ resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==}
+
'@types/json-schema@7.0.15':
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
'@types/mdast@4.0.4':
resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
+ '@types/mime@1.3.5':
+ resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
+
'@types/node-fetch@2.6.12':
resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==}
'@types/node@12.20.55':
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
- '@types/node@18.19.68':
- resolution: {integrity: sha512-QGtpFH1vB99ZmTa63K4/FU8twThj4fuVSBkGddTp7uIL/cuoLWIUSL2RcOaigBhfR+hg5pgGkBnkoOxrTVBMKw==}
+ '@types/node@18.19.69':
+ resolution: {integrity: sha512-ECPdY1nlaiO/Y6GUnwgtAAhLNaQ53AyIVz+eILxpEo5OvuqE6yWkqWBIb5dU0DqhKQtMeny+FBD3PK6lm7L5xQ==}
- '@types/node@22.10.2':
- resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==}
+ '@types/node@22.10.5':
+ resolution: {integrity: sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==}
+
+ '@types/promise-retry@1.1.6':
+ resolution: {integrity: sha512-EC1+OMXV0PZb0pf+cmyxc43MEP2CDumZe4AfuxWboxxEixztIebknpJPZAX5XlodGF1OY+C1E/RAeNGzxf+bJA==}
+
+ '@types/qs@6.9.17':
+ resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==}
+
+ '@types/range-parser@1.2.7':
+ resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==}
'@types/retry@0.12.0':
resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==}
+ '@types/retry@0.12.5':
+ resolution: {integrity: sha512-3xSjTp3v03X/lSQLkczaN9UIEwJMoMCA1+Nb5HfbJEQWogdeQIyVtTvxPXDQjZ5zws8rFQfVfRdz03ARihPJgw==}
+
+ '@types/send@0.17.4':
+ resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==}
+
+ '@types/serve-static@1.15.7':
+ resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==}
+
'@types/unist@3.0.3':
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
@@ -700,63 +948,52 @@ packages:
'@types/ws@8.5.13':
resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==}
- '@typescript-eslint/eslint-plugin@7.18.0':
- resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==}
- engines: {node: ^18.18.0 || >=20.0.0}
+ '@typescript-eslint/eslint-plugin@8.19.0':
+ resolution: {integrity: sha512-NggSaEZCdSrFddbctrVjkVZvFC6KGfKfNK0CU7mNK/iKHGKbzT4Wmgm08dKpcZECBu9f5FypndoMyRHkdqfT1Q==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^7.0.0
- eslint: ^8.56.0
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
+ '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.8.0'
- '@typescript-eslint/parser@7.18.0':
- resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==}
- engines: {node: ^18.18.0 || >=20.0.0}
+ '@typescript-eslint/parser@8.19.0':
+ resolution: {integrity: sha512-6M8taKyOETY1TKHp0x8ndycipTVgmp4xtg5QpEZzXxDhNvvHOJi5rLRkLr8SK3jTgD5l4fTlvBiRdfsuWydxBw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- eslint: ^8.56.0
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.8.0'
- '@typescript-eslint/scope-manager@7.18.0':
- resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==}
- engines: {node: ^18.18.0 || >=20.0.0}
+ '@typescript-eslint/scope-manager@8.19.0':
+ resolution: {integrity: sha512-hkoJiKQS3GQ13TSMEiuNmSCvhz7ujyqD1x3ShbaETATHrck+9RaDdUbt+osXaUuns9OFwrDTTrjtwsU8gJyyRA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/type-utils@7.18.0':
- resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==}
- engines: {node: ^18.18.0 || >=20.0.0}
+ '@typescript-eslint/type-utils@8.19.0':
+ resolution: {integrity: sha512-TZs0I0OSbd5Aza4qAMpp1cdCYVnER94IziudE3JU328YUHgWu9gwiwhag+fuLeJ2LkWLXI+F/182TbG+JaBdTg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- eslint: ^8.56.0
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.8.0'
- '@typescript-eslint/types@7.18.0':
- resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==}
- engines: {node: ^18.18.0 || >=20.0.0}
+ '@typescript-eslint/types@8.19.0':
+ resolution: {integrity: sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/typescript-estree@7.18.0':
- resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==}
- engines: {node: ^18.18.0 || >=20.0.0}
+ '@typescript-eslint/typescript-estree@8.19.0':
+ resolution: {integrity: sha512-WW9PpDaLIFW9LCbucMSdYUuGeFUz1OkWYS/5fwZwTA+l2RwlWFdJvReQqMUMBw4yJWJOfqd7An9uwut2Oj8sLw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- typescript: '*'
- peerDependenciesMeta:
- typescript:
- optional: true
+ typescript: '>=4.8.4 <5.8.0'
- '@typescript-eslint/utils@7.18.0':
- resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==}
- engines: {node: ^18.18.0 || >=20.0.0}
+ '@typescript-eslint/utils@8.19.0':
+ resolution: {integrity: sha512-PTBG+0oEMPH9jCZlfg07LCB2nYI0I317yyvXGfxnvGvw4SHIOuRnQ3kadyyXY6tGdChusIHIbM5zfIbp4M6tCg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- eslint: ^8.56.0
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <5.8.0'
- '@typescript-eslint/visitor-keys@7.18.0':
- resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==}
- engines: {node: ^18.18.0 || >=20.0.0}
+ '@typescript-eslint/visitor-keys@8.19.0':
+ resolution: {integrity: sha512-mCFtBbFBJDCNCWUl5y6sZSCHXw1DEFEk3c/M3nRK2a4XUB8StGFtmcEMizdjKuBzB6e/smJAAWYug3VrdLMr1w==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@ungap/structured-clone@1.2.1':
resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==}
@@ -769,6 +1006,10 @@ packages:
resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
engines: {node: '>=6.5'}
+ accepts@1.3.8:
+ resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
+ engines: {node: '>= 0.6'}
+
acorn-jsx@5.3.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
@@ -783,17 +1024,37 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
- agentkeepalive@4.5.0:
- resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
+ agentkeepalive@4.6.0:
+ resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==}
engines: {node: '>= 8.0.0'}
+ ai@4.0.22:
+ resolution: {integrity: sha512-yvcjWtofI2HZwgT3jMkoNnDUhAY+S9cOvZ6xbbOzrS0ZeFl1/gcbasFnwAqUJ7uL/t72/3a0Vy/pKg6N19A2Mw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ react: ^18 || ^19 || ^19.0.0-rc
+ zod: ^3.0.0
+ peerDependenciesMeta:
+ react:
+ optional: true
+ zod:
+ optional: true
+
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ ansi-escapes@7.0.0:
+ resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==}
+ engines: {node: '>=18'}
+
ansi-regex@5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
+ ansi-regex@6.1.0:
+ resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
+ engines: {node: '>=12'}
+
ansi-styles@4.3.0:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: '>=8'}
@@ -802,6 +1063,10 @@ packages:
resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
engines: {node: '>=10'}
+ ansi-styles@6.2.1:
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ engines: {node: '>=12'}
+
ansicolors@0.3.2:
resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==}
@@ -811,9 +1076,8 @@ packages:
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
- array-union@2.1.0:
- resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
- engines: {node: '>=8'}
+ array-flatten@1.1.1:
+ resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
assert@2.1.0:
resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==}
@@ -829,8 +1093,8 @@ packages:
resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
engines: {node: '>= 0.4'}
- axios-retry@3.9.1:
- resolution: {integrity: sha512-8PJDLJv7qTTMMwdnbMvrLYuvB47M81wRtxQmEdV5w4rgbTXTt+vtPkXwajOfOdSyv/wZICJOC+/UhXH4aQ/R+w==}
+ axios@0.28.1:
+ resolution: {integrity: sha512-iUcGA5a7p0mVb4Gm/sy+FSECNkPFT4y7wt6OM/CDpO/OnNCvSs3PoMG8ibrC9jRoGYU0gUK5pXVC4NPXq6lHRQ==}
axios@1.7.9:
resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==}
@@ -867,9 +1131,19 @@ packages:
bindings@1.5.0:
resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
+ bintrees@1.0.2:
+ resolution: {integrity: sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==}
+
+ bn.js@4.11.6:
+ resolution: {integrity: sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==}
+
bn.js@5.2.1:
resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==}
+ body-parser@1.20.3:
+ resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==}
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+
borsh@0.7.0:
resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==}
@@ -902,16 +1176,23 @@ packages:
resolution: {integrity: sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==}
engines: {node: '>=4.5'}
+ buffer-reverse@1.0.1:
+ resolution: {integrity: sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==}
+
buffer@5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
buffer@6.0.3:
resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==}
- bufferutil@4.0.8:
- resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==}
+ bufferutil@4.0.9:
+ resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==}
engines: {node: '>=6.14.2'}
+ bytes@3.1.2:
+ resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
+ engines: {node: '>= 0.8'}
+
call-bind-apply-helpers@1.0.1:
resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==}
engines: {node: '>= 0.4'}
@@ -943,8 +1224,8 @@ packages:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
- chalk@5.4.0:
- resolution: {integrity: sha512-ZkD35Mx92acjB2yNJgziGqT9oKHEOxjTBTDRpOsRWtdecL/0jM3z5kM/CTzHWvHIen1GvkM85p6TuFfDGfc8/Q==}
+ chalk@5.4.1:
+ resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
character-entities-html4@2.1.0:
@@ -957,6 +1238,14 @@ packages:
resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
engines: {node: '>= 16'}
+ cli-cursor@5.0.0:
+ resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==}
+ engines: {node: '>=18'}
+
+ cli-truncate@4.0.0:
+ resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==}
+ engines: {node: '>=18'}
+
color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -964,6 +1253,9 @@ packages:
color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ colorette@2.0.20:
+ resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
+
combined-stream@1.0.8:
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
engines: {node: '>= 0.8'}
@@ -985,11 +1277,26 @@ packages:
concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+ content-disposition@0.5.4:
+ resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
+ engines: {node: '>= 0.6'}
+
+ content-type@1.0.5:
+ resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
+ engines: {node: '>= 0.6'}
+
+ cookie-signature@1.0.6:
+ resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
+
+ cookie@0.7.1:
+ resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==}
+ engines: {node: '>= 0.6'}
+
create-require@1.1.1:
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
- cross-fetch@3.1.8:
- resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==}
+ cross-fetch@3.2.0:
+ resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==}
cross-spawn@7.0.6:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
@@ -999,9 +1306,20 @@ packages:
resolution: {integrity: sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==}
engines: {node: '>=8'}
+ crypto-js@4.2.0:
+ resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==}
+
dayjs@1.11.13:
resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
+ debug@2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
debug@4.4.0:
resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==}
engines: {node: '>=6.0'}
@@ -1044,21 +1362,28 @@ packages:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
engines: {node: '>=0.4.0'}
+ depd@2.0.0:
+ resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==}
+ engines: {node: '>= 0.8'}
+
dequal@2.0.3:
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
engines: {node: '>=6'}
+ destroy@1.2.0:
+ resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
+ engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
+
devlop@1.1.0:
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
+ diff-match-patch@1.0.5:
+ resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==}
+
diff@4.0.2:
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
engines: {node: '>=0.3.1'}
- dir-glob@3.0.1:
- resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
- engines: {node: '>=8'}
-
doctrine@3.0.0:
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
engines: {node: '>=6.0.0'}
@@ -1066,6 +1391,10 @@ packages:
dot-case@3.0.4:
resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
+ dotenv@10.0.0:
+ resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==}
+ engines: {node: '>=10'}
+
dotenv@16.4.7:
resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==}
engines: {node: '>=12'}
@@ -1074,13 +1403,43 @@ packages:
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
engines: {node: '>= 0.4'}
+ eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+
+ ee-first@1.1.1:
+ resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
+
emoji-regex-xs@1.0.0:
resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==}
+ emoji-regex@10.4.0:
+ resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==}
+
+ emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
+ emoji-regex@9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+
+ encodeurl@1.0.2:
+ resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
+ engines: {node: '>= 0.8'}
+
+ encodeurl@2.0.0:
+ resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==}
+ engines: {node: '>= 0.8'}
+
entities@4.5.0:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'}
+ environment@1.1.0:
+ resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
+ engines: {node: '>=18'}
+
+ err-code@2.0.3:
+ resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
+
es-define-property@1.0.1:
resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==}
engines: {node: '>= 0.4'}
@@ -1099,6 +1458,9 @@ packages:
es6-promisify@5.0.0:
resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==}
+ escape-html@1.0.3:
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+
escape-string-regexp@4.0.0:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
@@ -1127,16 +1489,38 @@ packages:
resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ eslint-scope@8.2.0:
+ resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ eslint-visitor-keys@4.2.0:
+ resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
eslint@8.57.1:
resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options.
hasBin: true
+ eslint@9.17.0:
+ resolution: {integrity: sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ hasBin: true
+ peerDependencies:
+ jiti: '*'
+ peerDependenciesMeta:
+ jiti:
+ optional: true
+
+ espree@10.3.0:
+ resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
espree@9.6.1:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1157,6 +1541,20 @@ packages:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: '>=0.10.0'}
+ etag@1.8.1:
+ resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
+ engines: {node: '>= 0.6'}
+
+ ethereum-bloom-filters@1.2.0:
+ resolution: {integrity: sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==}
+
+ ethereum-cryptography@2.2.1:
+ resolution: {integrity: sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==}
+
+ ethjs-unit@0.1.6:
+ resolution: {integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==}
+ engines: {node: '>=6.5.0', npm: '>=3'}
+
event-target-shim@5.0.1:
resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
engines: {node: '>=6'}
@@ -1167,6 +1565,27 @@ packages:
eventemitter3@5.0.1:
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
+ eventsource-parser@3.0.0:
+ resolution: {integrity: sha512-T1C0XCUimhxVQzW4zFipdx0SficT651NnkR0ZSH3yQwh+mFMdLfgjABVi4YtMTtaL4s168593DaoaRLMqryavA==}
+ engines: {node: '>=18.0.0'}
+
+ execa@8.0.1:
+ resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
+ engines: {node: '>=16.17'}
+
+ exponential-backoff@3.1.1:
+ resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==}
+
+ express-prom-bundle@7.0.2:
+ resolution: {integrity: sha512-ffFV4HGHvCKnkNJFqm42sYztRJE5mLgOj8MpGey1HOatuFhtcwXoBD2m5gca7ZbcyjkIf7lOH5ZdrhlrBf0sGw==}
+ engines: {node: '>=18'}
+ peerDependencies:
+ prom-client: '>=15.0.0'
+
+ express@4.21.2:
+ resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==}
+ engines: {node: '>= 0.10.0'}
+
eyes@0.1.8:
resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==}
engines: {node: '> 0.1.90'}
@@ -1200,6 +1619,10 @@ packages:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
+ file-entry-cache@8.0.0:
+ resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+ engines: {node: '>=16.0.0'}
+
file-uri-to-path@1.0.0:
resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
@@ -1207,6 +1630,14 @@ packages:
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
engines: {node: '>=8'}
+ finalhandler@1.3.1:
+ resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==}
+ engines: {node: '>= 0.8'}
+
+ find-process@1.4.8:
+ resolution: {integrity: sha512-W2PIdgXfhYeIlTzGiDyGJhjslZcwQCRcSw6plgyLu3CFk1PhQrKkTbQ5jkJ2NhOabMwETTrhl7c+xBcQ7B2jRg==}
+ hasBin: true
+
find-up@5.0.0:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
@@ -1215,6 +1646,10 @@ packages:
resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
engines: {node: ^10.12.0 || >=12.0.0}
+ flat-cache@4.0.1:
+ resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+ engines: {node: '>=16'}
+
flatted@3.3.2:
resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==}
@@ -1230,6 +1665,10 @@ packages:
for-each@0.3.3:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
+ foreground-child@3.3.0:
+ resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
+ engines: {node: '>=14'}
+
form-data-encoder@1.7.2:
resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==}
@@ -1241,16 +1680,36 @@ packages:
resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==}
engines: {node: '>= 12.20'}
+ forwarded@0.2.0:
+ resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
+ engines: {node: '>= 0.6'}
+
+ fresh@0.5.2:
+ resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
+ engines: {node: '>= 0.6'}
+
fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
- get-intrinsic@1.2.6:
- resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==}
+ get-east-asian-width@1.3.0:
+ resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==}
+ engines: {node: '>=18'}
+
+ get-intrinsic@1.2.7:
+ resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==}
engines: {node: '>= 0.4'}
+ get-proto@1.0.1:
+ resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==}
+ engines: {node: '>= 0.4'}
+
+ get-stream@8.0.1:
+ resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
+ engines: {node: '>=16'}
+
glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
@@ -1259,6 +1718,15 @@ packages:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: '>=10.13.0'}
+ glob@10.4.5:
+ resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
+ hasBin: true
+
+ glob@11.0.0:
+ resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==}
+ engines: {node: 20 || >=22}
+ hasBin: true
+
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Glob versions prior to v9 are no longer supported
@@ -1267,9 +1735,9 @@ packages:
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
engines: {node: '>=8'}
- globby@11.1.0:
- resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
- engines: {node: '>=10'}
+ globals@14.0.0:
+ resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+ engines: {node: '>=18'}
gopd@1.2.0:
resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
@@ -1318,9 +1786,26 @@ packages:
html-void-elements@3.0.0:
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
+ http-errors@2.0.0:
+ resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
+ engines: {node: '>= 0.8'}
+
+ human-signals@5.0.0:
+ resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
+ engines: {node: '>=16.17.0'}
+
humanize-ms@1.2.1:
resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
+ husky@9.1.7:
+ resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==}
+ engines: {node: '>=18'}
+ hasBin: true
+
+ iconv-lite@0.4.24:
+ resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
+ engines: {node: '>=0.10.0'}
+
ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
@@ -1343,6 +1828,10 @@ packages:
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ ipaddr.js@1.9.1:
+ resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
+ engines: {node: '>= 0.10'}
+
invariant@2.2.4:
resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==}
@@ -1362,14 +1851,30 @@ packages:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
- is-generator-function@1.0.10:
- resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
+ is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+
+ is-fullwidth-code-point@4.0.0:
+ resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
+ engines: {node: '>=12'}
+
+ is-fullwidth-code-point@5.0.0:
+ resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==}
+ engines: {node: '>=18'}
+
+ is-generator-function@1.1.0:
+ resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==}
engines: {node: '>= 0.4'}
is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
+ is-hex-prefixed@1.0.0:
+ resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==}
+ engines: {node: '>=6.5.0', npm: '>=3'}
+
is-nan@1.3.2:
resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==}
engines: {node: '>= 0.4'}
@@ -1382,9 +1887,13 @@ packages:
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
engines: {node: '>=8'}
- is-retry-allowed@2.2.0:
- resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==}
- engines: {node: '>=10'}
+ is-regex@1.2.1:
+ resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
+ engines: {node: '>= 0.4'}
+
+ is-stream@3.0.0:
+ resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
is-typed-array@1.1.15:
resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
@@ -1401,6 +1910,13 @@ packages:
peerDependencies:
ws: '*'
+ jackspeak@3.4.3:
+ resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
+
+ jackspeak@4.0.2:
+ resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==}
+ engines: {node: 20 || >=22}
+
jayson@4.1.3:
resolution: {integrity: sha512-LtXh5aYZodBZ9Fc3j6f2w+MTNcnxteMOrb+QgIouguGOulWi0lieEkOUg+HkjjFs0DGoWDds6bi4E9hpNFLulQ==}
engines: {node: '>=8'}
@@ -1409,6 +1925,15 @@ packages:
js-base64@3.7.7:
resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==}
+ js-sha256@0.11.0:
+ resolution: {integrity: sha512-6xNlKayMZvds9h1Y1VWc0fQHQ82BxTXizWPEtEeGvmOUYpBRy4gbWroHLpzowe6xiQhHpelCQiE7HEdznyBL9Q==}
+
+ js-sha256@0.9.0:
+ resolution: {integrity: sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==}
+
+ js-sha3@0.8.0:
+ resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==}
+
js-tiktoken@1.0.16:
resolution: {integrity: sha512-nUVdO5k/M9llWpiaZlBBDdtmr6qWXwSD6fgaDu2zM8UP+OXxx9V37lFkI6w0/1IuaDx7WffZ37oYd9KvcWKElg==}
@@ -1425,6 +1950,9 @@ packages:
json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+ json-schema@0.4.0:
+ resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
+
json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
@@ -1436,6 +1964,11 @@ packages:
engines: {node: '>=6'}
hasBin: true
+ jsondiffpatch@0.6.0:
+ resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+
jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
@@ -1447,15 +1980,23 @@ packages:
resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==}
engines: {node: '>=0.10.0'}
+ keccak256@1.0.6:
+ resolution: {integrity: sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==}
+
+ keccak@3.0.4:
+ resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==}
+ engines: {node: '>=10.0.0'}
+
keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
- langchain@0.3.7:
- resolution: {integrity: sha512-6/Gkk9Zez3HkbsETFxZVo1iKLmaK3OzkDseC5MYFKVmYFDXFAOyJR3srJ9P61xF8heVdsPixqYIsejBn7/9dXg==}
+ langchain@0.3.9:
+ resolution: {integrity: sha512-uteRutI03Bt9f53nZmx8mWfJXkf6VlFVRuOprRJ0mWdCpkTP359sxrH4v6w4TokLiziPC/aMay662kmOz0dHlA==}
engines: {node: '>=18'}
peerDependencies:
'@langchain/anthropic': '*'
'@langchain/aws': '*'
+ '@langchain/cerebras': '*'
'@langchain/cohere': '*'
'@langchain/core': '>=0.2.21 <0.4.0'
'@langchain/google-genai': '*'
@@ -1473,6 +2014,8 @@ packages:
optional: true
'@langchain/aws':
optional: true
+ '@langchain/cerebras':
+ optional: true
'@langchain/cohere':
optional: true
'@langchain/google-genai':
@@ -1496,8 +2039,8 @@ packages:
typeorm:
optional: true
- langsmith@0.2.13:
- resolution: {integrity: sha512-16EOM5nhU6GlMCKGm5sgBIAKOKzS2d30qcDZmF21kSLZJiUhUNTROwvYdqgZLrGfIIzmSMJHCKA7RFd5qf50uw==}
+ langsmith@0.2.14:
+ resolution: {integrity: sha512-ClAuAgSf3m9miMYotLEaZKQyKdaWlfjhebCuYco8bc6g72dU2VwTg31Bv4YINBq7EH2i1cMwbOiJxbOXPqjGig==}
peerDependencies:
openai: '*'
peerDependenciesMeta:
@@ -1520,9 +2063,22 @@ packages:
libsodium@0.7.15:
resolution: {integrity: sha512-sZwRknt/tUpE2AwzHq3jEyUU5uvIZHtSssktXq7owd++3CSgn8RGrv6UZJJBpP7+iBghBqe7Z06/2M31rI2NKw==}
+ lilconfig@3.1.3:
+ resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
+ engines: {node: '>=14'}
+
linkify-it@5.0.0:
resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
+ lint-staged@15.3.0:
+ resolution: {integrity: sha512-vHFahytLoF2enJklgtOtCtIjZrKD/LoxlaUusd5nh7dWv/dkKQJY74ndFSzxCdv7g0ueGg1ORgTSt4Y9LPZn9A==}
+ engines: {node: '>=18.12.0'}
+ hasBin: true
+
+ listr2@8.2.5:
+ resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==}
+ engines: {node: '>=18.0.0'}
+
locate-path@6.0.0:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
@@ -1533,6 +2089,14 @@ packages:
lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ log-update@6.1.0:
+ resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
+ engines: {node: '>=18'}
+
+ loglevel@1.9.2:
+ resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==}
+ engines: {node: '>= 0.6.0'}
+
loose-envify@1.4.0:
resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
hasBin: true
@@ -1543,6 +2107,13 @@ packages:
lower-case@2.0.2:
resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
+ lru-cache@10.4.3:
+ resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
+
+ lru-cache@11.0.2:
+ resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==}
+ engines: {node: 20 || >=22}
+
lunr@2.3.9:
resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==}
@@ -1553,6 +2124,9 @@ packages:
resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
hasBin: true
+ math-expression-evaluator@2.0.6:
+ resolution: {integrity: sha512-DRung1qNcKbgkhFeQ0fBPUFB6voRUMY7KyRyp1TRQ2v95Rp2egC823xLRooM1mDx1rmbkY7ym6ZWmpaE/VimOA==}
+
math-intrinsics@1.1.0:
resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
engines: {node: '>= 0.4'}
@@ -1563,10 +2137,31 @@ packages:
mdurl@2.0.0:
resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
+ media-typer@0.3.0:
+ resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
+ engines: {node: '>= 0.6'}
+
+ merge-descriptors@1.0.3:
+ resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==}
+
+ merge-stream@2.0.0:
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+
merge2@1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
+ merkletreejs@0.3.11:
+ resolution: {integrity: sha512-LJKTl4iVNTndhL+3Uz/tfkjD0klIWsHlUzgtuNnNrsf7bAlXR30m+xYB7lHr5Z/l6e/yAIsr26Dabx6Buo4VGQ==}
+ engines: {node: '>= 7.6.0'}
+
+ methods@1.1.2:
+ resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
+ engines: {node: '>= 0.6'}
+
+ micro-ftch@0.3.1:
+ resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==}
+
micromark-util-character@2.1.1:
resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==}
@@ -1594,9 +2189,26 @@ packages:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
engines: {node: '>= 0.6'}
+ mime@1.6.0:
+ resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ mimic-fn@4.0.0:
+ resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
+ engines: {node: '>=12'}
+
+ mimic-function@5.0.1:
+ resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
+ engines: {node: '>=18'}
+
minimalistic-assert@1.0.1:
resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==}
+ minimatch@10.0.1:
+ resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
+ engines: {node: 20 || >=22}
+
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
@@ -1607,6 +2219,13 @@ packages:
minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+ minipass@7.1.2:
+ resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+ engines: {node: '>=16 || 14 >=14.17'}
+
+ ms@2.0.0:
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
+
ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
@@ -1622,9 +2241,16 @@ packages:
natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+ negotiator@0.6.3:
+ resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==}
+ engines: {node: '>= 0.6'}
+
no-case@3.0.4:
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
+ node-addon-api@2.0.2:
+ resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==}
+
node-domexception@1.0.0:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
@@ -1642,6 +2268,18 @@ packages:
resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==}
hasBin: true
+ npm-run-path@5.3.0:
+ resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+ number-to-bn@1.7.0:
+ resolution: {integrity: sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==}
+ engines: {node: '>=6.5.0', npm: '>=3'}
+
+ object-inspect@1.13.3:
+ resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==}
+ engines: {node: '>= 0.4'}
+
object-is@1.1.6:
resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==}
engines: {node: '>= 0.4'}
@@ -1654,14 +2292,26 @@ packages:
resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==}
engines: {node: '>= 0.4'}
+ on-finished@2.4.1:
+ resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==}
+ engines: {node: '>= 0.8'}
+
once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
- oniguruma-to-es@0.8.0:
- resolution: {integrity: sha512-rY+/a6b+uCgoYIL9itjY0x99UUDHXmGaw7Jjk5ZvM/3cxDJifyxFr/Zm4tTmF6Tre18gAakJo7AzhKUeMNLgHA==}
+ onetime@6.0.0:
+ resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
+ engines: {node: '>=12'}
- openai@4.77.0:
- resolution: {integrity: sha512-WWacavtns/7pCUkOWvQIjyOfcdr9X+9n9Vvb0zFeKVDAqwCMDHB+iSr24SVaBAhplvSG6JrRXFpcNM9gWhOGIw==}
+ onetime@7.0.0:
+ resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
+ engines: {node: '>=18'}
+
+ oniguruma-to-es@0.10.0:
+ resolution: {integrity: sha512-zapyOUOCJxt+xhiNRPPMtfJkHGsZ98HHB9qJEkdT8BGytO/+kpe4m1Ngf0MzbzTmhacn11w9yGeDP6tzDhnCdg==}
+
+ openai@4.77.3:
+ resolution: {integrity: sha512-wLDy4+KWHz31HRFMW2+9KQuVuT2QWhs0z94w1Gm1h2Ut9vIHr9/rHZggbykZEfyiaJRVgw8ZS9K6AylDWzvPYw==}
hasBin: true
peerDependencies:
zod: ^3.23.8
@@ -1700,6 +2350,9 @@ packages:
resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==}
engines: {node: '>=8'}
+ package-json-from-dist@1.0.1:
+ resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
+
pako@0.2.9:
resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==}
@@ -1710,6 +2363,10 @@ packages:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
+ parseurl@1.3.3:
+ resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
+ engines: {node: '>= 0.8'}
+
path-exists@4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
@@ -1722,18 +2379,37 @@ packages:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
- path-type@4.0.0:
- resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
- engines: {node: '>=8'}
+ path-key@4.0.0:
+ resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
+ engines: {node: '>=12'}
+
+ path-scurry@1.11.1:
+ resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
+ engines: {node: '>=16 || 14 >=14.18'}
+
+ path-scurry@2.0.0:
+ resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
+ engines: {node: 20 || >=22}
+
+ path-to-regexp@0.1.12:
+ resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==}
pathval@2.0.0:
resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
engines: {node: '>= 14.16'}
+ percentile@1.6.0:
+ resolution: {integrity: sha512-8vSyjdzwxGDHHwH+cSGch3A9Uj2On3UpgOWxWXMKwUvoAbnujx6DaqmV1duWXNiH/oEWpyVd6nSQccix6DM3Ng==}
+
picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
+ pidtree@0.6.0:
+ resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+
poly1305-js@0.4.4:
resolution: {integrity: sha512-5B6/S+vg5AOr66wJDkh5LOpU/F3EKANDy4VXKsNZLXea1uCy6CiOWOZ3VhcC0nYdhE7vJUMcLxqcVlrv2g/+Rg==}
@@ -1749,14 +2425,31 @@ packages:
resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
engines: {node: '>=6.0.0'}
+ prettier@2.8.8:
+ resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+
prettier@3.4.2:
resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==}
engines: {node: '>=14'}
hasBin: true
+ prom-client@15.1.3:
+ resolution: {integrity: sha512-6ZiOBfCywsD4k1BN9IX0uZhF+tJkV8q8llP64G5Hajs4JOeVLPCwpPVcpXy3BwYiUGgyJzsJJQeOIv7+hDSq8g==}
+ engines: {node: ^16 || ^18 || >=20}
+
+ promise-retry@2.0.1:
+ resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
+ engines: {node: '>=10'}
+
property-information@6.5.0:
resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==}
+ proxy-addr@2.0.7:
+ resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
+ engines: {node: '>= 0.10'}
+
proxy-from-env@1.1.0:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
@@ -1768,25 +2461,56 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
+ qs@6.13.0:
+ resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
+ engines: {node: '>=0.6'}
+
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+
+ range-parser@1.2.1:
+ resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
+ engines: {node: '>= 0.6'}
+
+ raw-body@2.5.2:
+ resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==}
+ engines: {node: '>= 0.8'}
+
+ react@19.0.0:
+ resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==}
+ engines: {node: '>=0.10.0'}
+
+ readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
+
regenerator-runtime@0.14.1:
resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
- regex-recursion@5.0.0:
- resolution: {integrity: sha512-UwyOqeobrCCqTXPcsSqH4gDhOjD5cI/b8kjngWgSZbxYh5yVjAwTjO5+hAuPRNiuR70+5RlWSs+U9PVcVcW9Lw==}
+ regex-recursion@5.1.1:
+ resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==}
regex-utilities@2.3.0:
resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==}
- regex@5.0.2:
- resolution: {integrity: sha512-/pczGbKIQgfTMRV0XjABvc5RzLqQmwqxLHdQao2RTXPk+pmTXB2P0IaUHYdYyk412YLwUIkaeMd5T+RzVgTqnQ==}
+ regex@5.1.1:
+ resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==}
resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
+ restore-cursor@5.1.0:
+ resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
+ engines: {node: '>=18'}
+
+ retry@0.12.0:
+ resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
+ engines: {node: '>= 4'}
+
retry@0.13.1:
resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==}
engines: {node: '>= 4'}
@@ -1795,11 +2519,23 @@ packages:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ rfdc@1.4.1:
+ resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
+
rimraf@3.0.2:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
deprecated: Rimraf versions prior to v4 are no longer supported
hasBin: true
+ rimraf@5.0.10:
+ resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==}
+ hasBin: true
+
+ rimraf@6.0.1:
+ resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==}
+ engines: {node: 20 || >=22}
+ hasBin: true
+
rpc-websockets@9.0.4:
resolution: {integrity: sha512-yWZWN0M+bivtoNLnaDbtny4XchdAIF5Q4g/ZsC5UC61Ckbp0QczwO8fg44rV3uYmY4WHd+EZQbn90W1d8ojzqQ==}
@@ -1809,15 +2545,40 @@ packages:
safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+ safe-regex-test@1.1.0:
+ resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
+ engines: {node: '>= 0.4'}
+
+ safer-buffer@2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+
+ secure-json-parse@2.7.0:
+ resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
+
+ semaphore@1.1.0:
+ resolution: {integrity: sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==}
+ engines: {node: '>=0.8.0'}
+
semver@7.6.3:
resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
engines: {node: '>=10'}
hasBin: true
+ send@0.19.0:
+ resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
+ engines: {node: '>= 0.8.0'}
+
+ serve-static@1.16.2:
+ resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==}
+ engines: {node: '>= 0.8.0'}
+
set-function-length@1.2.2:
resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
engines: {node: '>= 0.4'}
+ setprototypeof@1.2.0:
+ resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
+
shebang-command@2.0.0:
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
engines: {node: '>=8'}
@@ -1826,12 +2587,36 @@ packages:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
- shiki@1.24.3:
- resolution: {integrity: sha512-eMeX/ehE2IDKVs71kB4zVcDHjutNcOtm+yIRuR4sA6ThBbdFI0DffGJiyoKCodj0xRGxIoWC3pk/Anmm5mzHmA==}
+ shiki@1.26.1:
+ resolution: {integrity: sha512-Gqg6DSTk3wYqaZ5OaYtzjcdxcBvX5kCy24yvRJEgjT5U+WHlmqCThLuBUx0juyxQBi+6ug53IGeuQS07DWwpcw==}
- slash@3.0.0:
- resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
- engines: {node: '>=8'}
+ side-channel-list@1.0.0:
+ resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-map@1.0.1:
+ resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
+ engines: {node: '>= 0.4'}
+
+ side-channel-weakmap@1.0.2:
+ resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
+ engines: {node: '>= 0.4'}
+
+ side-channel@1.1.0:
+ resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
+ engines: {node: '>= 0.4'}
+
+ signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+
+ slice-ansi@5.0.0:
+ resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
+ engines: {node: '>=12'}
+
+ slice-ansi@7.1.0:
+ resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==}
+ engines: {node: '>=18'}
snake-case@3.0.4:
resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==}
@@ -1847,6 +2632,32 @@ packages:
space-separated-tokens@2.0.2:
resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
+ spok@1.5.5:
+ resolution: {integrity: sha512-IrJIXY54sCNFASyHPOY+jEirkiJ26JDqsGiI0Dvhwcnkl0PEWi1PSsrkYql0rzDw8LFVTcA7rdUCAJdE2HE+2Q==}
+
+ statuses@2.0.1:
+ resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
+ engines: {node: '>= 0.8'}
+
+ string-argv@0.3.2:
+ resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
+ engines: {node: '>=0.6.19'}
+
+ string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+
+ string-width@5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
+
+ string-width@7.2.0:
+ resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
+ engines: {node: '>=18'}
+
+ string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+
stringify-entities@4.0.4:
resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
@@ -1854,10 +2665,22 @@ packages:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
+ strip-ansi@7.1.0:
+ resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+ engines: {node: '>=12'}
+
strip-bom@3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
+ strip-final-newline@3.0.0:
+ resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
+ engines: {node: '>=12'}
+
+ strip-hex-prefix@1.0.0:
+ resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==}
+ engines: {node: '>=6.5.0', npm: '>=3'}
+
strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
@@ -1873,16 +2696,28 @@ packages:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
+ swr@2.3.0:
+ resolution: {integrity: sha512-NyZ76wA4yElZWBHzSgEJc28a0u6QZvhb6w0azeL2k7+Q1gAzVK+IqQYXhVOC/mzi+HZIozrZvBVeSeOZNR2bqA==}
+ peerDependencies:
+ react: ^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
synckit@0.9.2:
resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==}
engines: {node: ^14.18.0 || >=16.0.0}
+ tdigest@0.1.2:
+ resolution: {integrity: sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==}
+
text-encoding-utf-8@1.0.2:
resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==}
text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+ throttleit@2.1.0:
+ resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==}
+ engines: {node: '>=18'}
+
through@2.3.8:
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
@@ -1899,12 +2734,20 @@ packages:
toformat@2.0.0:
resolution: {integrity: sha512-03SWBVop6nU8bpyZCx7SodpYznbZF5R4ljwNLBcTQzKOD9xuihRo/psX58llS1BMFhhAI08H3luot5GoXJz2pQ==}
+ toidentifier@1.0.1:
+ resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
+ engines: {node: '>=0.6'}
+
toml@3.0.0:
resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==}
tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+ treeify@1.1.0:
+ resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==}
+ engines: {node: '>=0.6'}
+
trim-lines@3.0.1:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
@@ -1914,9 +2757,6 @@ packages:
peerDependencies:
typescript: '>=4.2.0'
- ts-log@2.2.7:
- resolution: {integrity: sha512-320x5Ggei84AxzlXp91QkIGSw5wgaLT6GeAH0KsqDmRZdVWW2OiSeVvElVoatk3f7nicwXlElXsoFkARiGE2yg==}
-
ts-node@10.9.2:
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
hasBin: true
@@ -1952,6 +2792,10 @@ packages:
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
engines: {node: '>=10'}
+ type-is@1.6.18:
+ resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
+ engines: {node: '>= 0.6'}
+
typedarray-to-buffer@3.1.5:
resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
@@ -1962,6 +2806,16 @@ packages:
peerDependencies:
typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x
+ typedoc@0.27.6:
+ resolution: {integrity: sha512-oBFRoh2Px6jFx366db0lLlihcalq/JzyCVp7Vaq1yphL/tbgx2e+bkpkCgJPunaPvPwoTOXSwasfklWHm7GfAw==}
+ engines: {node: '>= 18'}
+ hasBin: true
+ peerDependencies:
+ typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x
+
+ typescript-collections@1.3.3:
+ resolution: {integrity: sha512-7sI4e/bZijOzyURng88oOFZCISQPTHozfE2sUu5AviFYk5QV7fYGb6YiDl+vKjF/pICA354JImBImL9XJWUvdQ==}
+
typescript@4.9.5:
resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
engines: {node: '>=4.2.0'}
@@ -2003,16 +2857,39 @@ packages:
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'}
+ unpipe@1.0.0:
+ resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
+ engines: {node: '>= 0.8'}
+
uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+ url-value-parser@2.2.0:
+ resolution: {integrity: sha512-yIQdxJpgkPamPPAPuGdS7Q548rLhny42tg8d4vyTNzFqvOnwqrgHXvgehT09U7fwrzxi3RxCiXjoNUNnNOlQ8A==}
+ engines: {node: '>=6.0.0'}
+
+ use-sync-external-store@1.4.0:
+ resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
utf-8-validate@5.0.10:
resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==}
engines: {node: '>=6.14.2'}
+ utf8@3.0.0:
+ resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==}
+
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
util@0.12.5:
resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+ utils-merge@1.0.1:
+ resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
+ engines: {node: '>= 0.4.0'}
+
uuid@10.0.0:
resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==}
hasBin: true
@@ -2028,6 +2905,10 @@ packages:
v8-compile-cache-lib@3.0.1:
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
+ vary@1.1.2:
+ resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
+ engines: {node: '>= 0.8'}
+
vfile-message@4.0.2:
resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
@@ -2042,6 +2923,10 @@ packages:
resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==}
engines: {node: '>= 14'}
+ web3-utils@1.10.4:
+ resolution: {integrity: sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==}
+ engines: {node: '>=8.0.0'}
+
webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
@@ -2061,6 +2946,18 @@ packages:
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
engines: {node: '>=0.10.0'}
+ wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+
+ wrap-ansi@8.1.0:
+ resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+ engines: {node: '>=12'}
+
+ wrap-ansi@9.0.0:
+ resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==}
+ engines: {node: '>=18'}
+
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
@@ -2096,6 +2993,11 @@ packages:
engines: {node: '>= 14'}
hasBin: true
+ yaml@2.7.0:
+ resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==}
+ engines: {node: '>= 14'}
+ hasBin: true
+
yn@3.1.1:
resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
engines: {node: '>=6'}
@@ -2112,29 +3014,69 @@ packages:
zod@3.24.1:
resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==}
+ zstddec@0.0.2:
+ resolution: {integrity: sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA==}
+
zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
snapshots:
+ '@ai-sdk/openai@1.0.11(zod@3.24.1)':
+ dependencies:
+ '@ai-sdk/provider': 1.0.3
+ '@ai-sdk/provider-utils': 2.0.5(zod@3.24.1)
+ zod: 3.24.1
+
+ '@ai-sdk/provider-utils@2.0.5(zod@3.24.1)':
+ dependencies:
+ '@ai-sdk/provider': 1.0.3
+ eventsource-parser: 3.0.0
+ nanoid: 3.3.8
+ secure-json-parse: 2.7.0
+ optionalDependencies:
+ zod: 3.24.1
+
+ '@ai-sdk/provider@1.0.3':
+ dependencies:
+ json-schema: 0.4.0
+
+ '@ai-sdk/react@1.0.7(react@19.0.0)(zod@3.24.1)':
+ dependencies:
+ '@ai-sdk/provider-utils': 2.0.5(zod@3.24.1)
+ '@ai-sdk/ui-utils': 1.0.6(zod@3.24.1)
+ swr: 2.3.0(react@19.0.0)
+ throttleit: 2.1.0
+ optionalDependencies:
+ react: 19.0.0
+ zod: 3.24.1
+
+ '@ai-sdk/ui-utils@1.0.6(zod@3.24.1)':
+ dependencies:
+ '@ai-sdk/provider': 1.0.3
+ '@ai-sdk/provider-utils': 2.0.5(zod@3.24.1)
+ zod-to-json-schema: 3.24.1(zod@3.24.1)
+ optionalDependencies:
+ zod: 3.24.1
+
'@babel/runtime@7.26.0':
dependencies:
regenerator-runtime: 0.14.1
- '@bonfida/sns-records@0.0.1(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@bonfida/sns-records@0.0.1(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
borsh: 1.0.0
bs58: 5.0.0
buffer: 6.0.3
- '@bonfida/spl-name-service@3.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
+ '@bonfida/spl-name-service@3.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
dependencies:
- '@bonfida/sns-records': 0.0.1(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
- '@noble/curves': 1.7.0
+ '@bonfida/sns-records': 0.0.1(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
+ '@noble/curves': 1.8.0
'@scure/base': 1.2.1
- '@solana/spl-token': 0.4.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.4.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
borsh: 2.0.0
buffer: 6.0.3
graphemesplit: 2.4.4
@@ -2149,16 +3091,67 @@ snapshots:
'@cfworker/json-schema@4.0.3': {}
- '@coral-xyz/anchor@0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@cks-systems/manifest-sdk@0.1.59(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
dependencies:
- '@coral-xyz/borsh': 0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
- '@noble/hashes': 1.6.1
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet': 0.7.2
+ '@metaplex-foundation/rustbin': 0.3.5
+ '@metaplex-foundation/solita': 0.12.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ bn.js: 5.2.1
+ borsh: 0.7.0
+ bs58: 6.0.0
+ express: 4.21.2
+ express-prom-bundle: 7.0.2(prom-client@15.1.3)
+ js-sha256: 0.11.0
+ keccak256: 1.0.6
+ percentile: 1.6.0
+ prom-client: 15.1.3
+ rimraf: 5.0.10
+ typedoc: 0.26.11(typescript@5.7.2)
+ ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ zstddec: 0.0.2
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - jiti
+ - supports-color
+ - typescript
+ - utf-8-validate
+
+ '@coral-xyz/anchor@0.26.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@coral-xyz/borsh': 0.26.0(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ base64-js: 1.5.1
bn.js: 5.2.1
bs58: 4.0.1
buffer-layout: 1.2.2
camelcase: 6.3.0
- cross-fetch: 3.1.8
+ cross-fetch: 3.2.0
+ crypto-hash: 1.3.0
+ eventemitter3: 4.0.7
+ js-sha256: 0.9.0
+ pako: 2.1.0
+ snake-case: 3.0.4
+ superstruct: 0.15.5
+ toml: 3.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+
+ '@coral-xyz/anchor@0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@coral-xyz/borsh': 0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
+ '@noble/hashes': 1.7.0
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ bn.js: 5.2.1
+ bs58: 4.0.1
+ buffer-layout: 1.2.2
+ camelcase: 6.3.0
+ cross-fetch: 3.2.0
crypto-hash: 1.3.0
eventemitter3: 4.0.7
pako: 2.1.0
@@ -2170,9 +3163,15 @@ snapshots:
- encoding
- utf-8-validate
- '@coral-xyz/borsh@0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@coral-xyz/borsh@0.26.0(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))':
dependencies:
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ bn.js: 5.2.1
+ buffer-layout: 1.2.2
+
+ '@coral-xyz/borsh@0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))':
+ dependencies:
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
bn.js: 5.2.1
buffer-layout: 1.2.2
@@ -2185,8 +3184,25 @@ snapshots:
eslint: 8.57.1
eslint-visitor-keys: 3.4.3
+ '@eslint-community/eslint-utils@4.4.1(eslint@9.17.0)':
+ dependencies:
+ eslint: 9.17.0
+ eslint-visitor-keys: 3.4.3
+
'@eslint-community/regexpp@4.12.1': {}
+ '@eslint/config-array@0.19.1':
+ dependencies:
+ '@eslint/object-schema': 2.1.5
+ debug: 4.4.0
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@eslint/core@0.9.1':
+ dependencies:
+ '@types/json-schema': 7.0.15
+
'@eslint/eslintrc@2.1.4':
dependencies:
ajv: 6.12.6
@@ -2201,8 +3217,38 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@eslint/eslintrc@3.2.0':
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.4.0
+ espree: 10.3.0
+ globals: 14.0.0
+ ignore: 5.3.2
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+
'@eslint/js@8.57.1': {}
+ '@eslint/js@9.17.0': {}
+
+ '@eslint/object-schema@2.1.5': {}
+
+ '@eslint/plugin-kit@0.2.4':
+ dependencies:
+ levn: 0.4.1
+
+ '@ethereumjs/rlp@4.0.1': {}
+
+ '@ethereumjs/util@8.1.0':
+ dependencies:
+ '@ethereumjs/rlp': 4.0.1
+ ethereum-cryptography: 2.2.1
+ micro-ftch: 0.3.1
+
'@ethersproject/bytes@5.7.0':
dependencies:
'@ethersproject/logger': 5.7.0
@@ -2215,6 +3261,19 @@ snapshots:
'@ethersproject/logger': 5.7.0
hash.js: 1.1.7
+ '@gerrit0/mini-shiki@1.26.1':
+ dependencies:
+ '@shikijs/engine-oniguruma': 1.26.1
+ '@shikijs/types': 1.26.1
+ '@shikijs/vscode-textmate': 10.0.1
+
+ '@humanfs/core@0.19.1': {}
+
+ '@humanfs/node@0.16.6':
+ dependencies:
+ '@humanfs/core': 0.19.1
+ '@humanwhocodes/retry': 0.3.1
+
'@humanwhocodes/config-array@0.13.0':
dependencies:
'@humanwhocodes/object-schema': 2.0.3
@@ -2227,6 +3286,19 @@ snapshots:
'@humanwhocodes/object-schema@2.0.3': {}
+ '@humanwhocodes/retry@0.3.1': {}
+
+ '@humanwhocodes/retry@0.4.1': {}
+
+ '@isaacs/cliui@8.0.2':
+ dependencies:
+ string-width: 5.1.2
+ string-width-cjs: string-width@4.2.3
+ strip-ansi: 7.1.0
+ strip-ansi-cjs: strip-ansi@6.0.1
+ wrap-ansi: 8.1.0
+ wrap-ansi-cjs: wrap-ansi@7.0.0
+
'@jridgewell/resolve-uri@3.1.2': {}
'@jridgewell/sourcemap-codec@1.5.0': {}
@@ -2236,14 +3308,14 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.0
- '@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))':
+ '@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1))':
dependencies:
'@cfworker/json-schema': 4.0.3
ansi-styles: 5.2.0
camelcase: 6.3.0
decamelize: 1.2.0
js-tiktoken: 1.0.16
- langsmith: 0.2.13(openai@4.77.0(zod@3.24.1))
+ langsmith: 0.2.14(openai@4.77.3(zod@3.24.1))
mustache: 4.2.0
p-queue: 6.6.2
p-retry: 4.6.2
@@ -2253,57 +3325,57 @@ snapshots:
transitivePeerDependencies:
- openai
- '@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))':
+ '@langchain/groq@0.1.2(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1)))':
dependencies:
- '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1))
- '@langchain/openai': 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ '@langchain/core': 0.3.27(openai@4.77.3(zod@3.24.1))
+ '@langchain/openai': 0.3.16(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1)))
groq-sdk: 0.5.0
zod: 3.24.1
zod-to-json-schema: 3.24.1(zod@3.24.1)
transitivePeerDependencies:
- encoding
- '@langchain/langgraph-checkpoint@0.0.13(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))':
+ '@langchain/langgraph-checkpoint@0.0.13(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1)))':
dependencies:
- '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1))
+ '@langchain/core': 0.3.27(openai@4.77.3(zod@3.24.1))
uuid: 10.0.0
- '@langchain/langgraph-sdk@0.0.32':
+ '@langchain/langgraph-sdk@0.0.33':
dependencies:
'@types/json-schema': 7.0.15
p-queue: 6.6.2
p-retry: 4.6.2
uuid: 9.0.1
- '@langchain/langgraph@0.2.34(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))':
+ '@langchain/langgraph@0.2.38(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1)))':
dependencies:
- '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1))
- '@langchain/langgraph-checkpoint': 0.0.13(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
- '@langchain/langgraph-sdk': 0.0.32
+ '@langchain/core': 0.3.27(openai@4.77.3(zod@3.24.1))
+ '@langchain/langgraph-checkpoint': 0.0.13(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1)))
+ '@langchain/langgraph-sdk': 0.0.33
uuid: 10.0.0
zod: 3.24.1
- '@langchain/openai@0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))':
+ '@langchain/openai@0.3.16(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1)))':
dependencies:
- '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1))
+ '@langchain/core': 0.3.27(openai@4.77.3(zod@3.24.1))
js-tiktoken: 1.0.16
- openai: 4.77.0(zod@3.24.1)
+ openai: 4.77.3(zod@3.24.1)
zod: 3.24.1
zod-to-json-schema: 3.24.1(zod@3.24.1)
transitivePeerDependencies:
- encoding
- '@langchain/textsplitters@0.1.0(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))':
+ '@langchain/textsplitters@0.1.0(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1)))':
dependencies:
- '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1))
+ '@langchain/core': 0.3.27(openai@4.77.3(zod@3.24.1))
js-tiktoken: 1.0.16
- '@lightprotocol/compressed-token@0.17.1(@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
+ '@lightprotocol/compressed-token@0.17.1(@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
dependencies:
- '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@lightprotocol/stateless.js': 0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token': 0.4.8(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@lightprotocol/stateless.js': 0.17.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.4.8(@solana/web3.js@1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)
buffer: 6.0.3
tweetnacl: 1.0.3
transitivePeerDependencies:
@@ -2313,11 +3385,11 @@ snapshots:
- typescript
- utf-8-validate
- '@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
dependencies:
- '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
'@noble/hashes': 1.5.0
- '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)
buffer: 6.0.3
superstruct: 2.0.2
tweetnacl: 1.0.3
@@ -2338,10 +3410,10 @@ snapshots:
- supports-color
- utf-8-validate
- '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@metaplex-foundation/beet-solana@0.3.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
dependencies:
'@metaplex-foundation/beet': 0.7.2
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
bs58: 5.0.0
debug: 4.4.0
transitivePeerDependencies:
@@ -2350,6 +3422,54 @@ snapshots:
- supports-color
- utf-8-validate
+ '@metaplex-foundation/beet-solana@0.4.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@metaplex-foundation/beet': 0.7.1
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ bs58: 5.0.0
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@metaplex-foundation/beet': 0.7.2
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ bs58: 5.0.0
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ '@metaplex-foundation/beet@0.4.0':
+ dependencies:
+ ansicolors: 0.3.2
+ bn.js: 5.2.1
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@metaplex-foundation/beet@0.6.1':
+ dependencies:
+ ansicolors: 0.3.2
+ bn.js: 5.2.1
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@metaplex-foundation/beet@0.7.1':
+ dependencies:
+ ansicolors: 0.3.2
+ bn.js: 5.2.1
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
'@metaplex-foundation/beet@0.7.1':
dependencies:
ansicolors: 0.3.2
@@ -2369,11 +3489,64 @@ snapshots:
'@metaplex-foundation/cusper@0.0.2': {}
- '@metaplex-foundation/mpl-core@1.1.1(@metaplex-foundation/umi@0.9.2)(@noble/hashes@1.6.1)':
+ '@metaplex-foundation/cusper@0.0.2': {}
+
+ '@metaplex-foundation/mpl-auction-house@2.5.1(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@metaplex-foundation/beet': 0.6.1
+ '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/cusper': 0.0.2
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ bn.js: 5.2.1
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - supports-color
+ - typescript
+ - utf-8-validate
+
+ '@metaplex-foundation/mpl-bubblegum@0.7.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@metaplex-foundation/beet': 0.7.1
+ '@metaplex-foundation/beet-solana': 0.4.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/cusper': 0.0.2
+ '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.1.8(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ js-sha3: 0.8.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - supports-color
+ - typescript
+ - utf-8-validate
+
+ '@metaplex-foundation/mpl-core@1.1.1(@metaplex-foundation/umi@0.9.2)(@noble/hashes@1.7.0)':
dependencies:
'@metaplex-foundation/umi': 0.9.2
'@msgpack/msgpack': 3.0.0-beta2
- '@noble/hashes': 1.6.1
+ '@noble/hashes': 1.7.0
+
+ '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@metaplex-foundation/beet': 0.7.1
+ '@metaplex-foundation/beet-solana': 0.4.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/cusper': 0.0.2
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ bn.js: 5.2.1
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - supports-color
+ - typescript
+ - utf-8-validate
'@metaplex-foundation/mpl-token-metadata@3.3.0(@metaplex-foundation/umi@0.9.2)':
dependencies:
@@ -2384,18 +3557,46 @@ snapshots:
dependencies:
'@metaplex-foundation/umi': 0.9.2
- '@metaplex-foundation/umi-bundle-defaults@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@metaplex-foundation/rustbin@0.3.5':
+ dependencies:
+ debug: 4.4.0
+ semver: 7.6.3
+ text-table: 0.2.0
+ toml: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@metaplex-foundation/solita@0.12.2(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@metaplex-foundation/beet': 0.4.0
+ '@metaplex-foundation/beet-solana': 0.3.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/rustbin': 0.3.5
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ camelcase: 6.3.0
+ debug: 4.4.0
+ js-sha256: 0.9.0
+ prettier: 2.8.8
+ snake-case: 3.0.4
+ spok: 1.5.5
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - jiti
+ - supports-color
+ - utf-8-validate
+
+ '@metaplex-foundation/umi-bundle-defaults@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))':
dependencies:
'@metaplex-foundation/umi': 0.9.2
'@metaplex-foundation/umi-downloader-http': 0.9.2(@metaplex-foundation/umi@0.9.2)
- '@metaplex-foundation/umi-eddsa-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@metaplex-foundation/umi-eddsa-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
'@metaplex-foundation/umi-http-fetch': 0.9.2(@metaplex-foundation/umi@0.9.2)
'@metaplex-foundation/umi-program-repository': 0.9.2(@metaplex-foundation/umi@0.9.2)
'@metaplex-foundation/umi-rpc-chunk-get-accounts': 0.9.2(@metaplex-foundation/umi@0.9.2)
- '@metaplex-foundation/umi-rpc-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ '@metaplex-foundation/umi-rpc-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
'@metaplex-foundation/umi-serializer-data-view': 0.9.2(@metaplex-foundation/umi@0.9.2)
- '@metaplex-foundation/umi-transaction-factory-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/umi-transaction-factory-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- encoding
@@ -2403,12 +3604,12 @@ snapshots:
dependencies:
'@metaplex-foundation/umi': 0.9.2
- '@metaplex-foundation/umi-eddsa-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@metaplex-foundation/umi-eddsa-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))':
dependencies:
'@metaplex-foundation/umi': 0.9.2
- '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
- '@noble/curves': 1.7.0
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
+ '@noble/curves': 1.8.0
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
'@metaplex-foundation/umi-http-fetch@0.9.2(@metaplex-foundation/umi@0.9.2)':
dependencies:
@@ -2431,11 +3632,11 @@ snapshots:
dependencies:
'@metaplex-foundation/umi': 0.9.2
- '@metaplex-foundation/umi-rpc-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@metaplex-foundation/umi-rpc-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))':
dependencies:
'@metaplex-foundation/umi': 0.9.2
- '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
'@metaplex-foundation/umi-serializer-data-view@0.9.2(@metaplex-foundation/umi@0.9.2)':
dependencies:
@@ -2459,16 +3660,16 @@ snapshots:
'@metaplex-foundation/umi-serializers-encodings': 0.8.9
'@metaplex-foundation/umi-serializers-numbers': 0.8.9
- '@metaplex-foundation/umi-transaction-factory-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@metaplex-foundation/umi-transaction-factory-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))':
dependencies:
'@metaplex-foundation/umi': 0.9.2
- '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
- '@metaplex-foundation/umi-web3js-adapters@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))':
+ '@metaplex-foundation/umi-web3js-adapters@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))':
dependencies:
'@metaplex-foundation/umi': 0.9.2
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
buffer: 6.0.3
'@metaplex-foundation/umi@0.9.2':
@@ -2477,17 +3678,23 @@ snapshots:
'@metaplex-foundation/umi-public-keys': 0.8.9
'@metaplex-foundation/umi-serializers': 0.9.0
+ '@msgpack/msgpack@2.8.0': {}
+
'@msgpack/msgpack@3.0.0-beta2': {}
- '@noble/curves@1.7.0':
+ '@noble/curves@1.4.2':
dependencies:
- '@noble/hashes': 1.6.0
+ '@noble/hashes': 1.4.0
+
+ '@noble/curves@1.8.0':
+ dependencies:
+ '@noble/hashes': 1.7.0
+
+ '@noble/hashes@1.4.0': {}
'@noble/hashes@1.5.0': {}
- '@noble/hashes@1.6.0': {}
-
- '@noble/hashes@1.6.1': {}
+ '@noble/hashes@1.7.0': {}
'@nodelib/fs.scandir@2.1.5':
dependencies:
@@ -2501,11 +3708,11 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.18.0
- '@onsol/tldparser@0.6.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bn.js@5.2.1)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@onsol/tldparser@0.6.7(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bn.js@5.2.1)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
dependencies:
'@ethersproject/sha2': 5.7.0
- '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
bn.js: 5.2.1
borsh: 2.0.0
buffer: 6.0.3
@@ -2515,47 +3722,34 @@ snapshots:
- supports-color
- utf-8-validate
- '@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3)':
+ '@opentelemetry/api@1.9.0': {}
+
+ '@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(decimal.js@10.4.3)':
dependencies:
- '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
decimal.js: 10.4.3
tiny-invariant: 1.3.3
- '@orca-so/whirlpools-sdk@0.13.12(@coral-xyz/anchor@0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3))(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3)':
+ '@orca-so/whirlpools-sdk@0.13.13(@coral-xyz/anchor@0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(decimal.js@10.4.3))(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(decimal.js@10.4.3)':
dependencies:
- '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@orca-so/common-sdk': 0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3)
- '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@orca-so/common-sdk': 0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(decimal.js@10.4.3)
+ '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
decimal.js: 10.4.3
tiny-invariant: 1.3.3
+ '@pkgjs/parseargs@0.11.0':
+ optional: true
+
'@pkgr/core@0.1.1': {}
- '@pythnetwork/price-service-client@1.9.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
- dependencies:
- '@pythnetwork/price-service-sdk': 1.8.0
- '@types/ws': 8.5.13
- axios: 1.7.9
- axios-retry: 3.9.1
- isomorphic-ws: 4.0.1(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))
- ts-log: 2.2.7
- ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- transitivePeerDependencies:
- - bufferutil
- - debug
- - utf-8-validate
-
- '@pythnetwork/price-service-sdk@1.8.0':
- dependencies:
- bn.js: 5.2.1
-
- '@raydium-io/raydium-sdk-v2@0.1.95-alpha(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
+ '@raydium-io/raydium-sdk-v2@0.1.95-alpha(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
axios: 1.7.9
big.js: 6.2.2
bn.js: 5.2.1
@@ -2573,39 +3767,77 @@ snapshots:
- typescript
- utf-8-validate
+ '@saberhq/option-utils@1.15.0':
+ dependencies:
+ tslib: 2.8.1
+
+ '@saberhq/solana-contrib@1.15.0(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bn.js@5.2.1)':
+ dependencies:
+ '@saberhq/option-utils': 1.15.0
+ '@solana/buffer-layout': 4.0.1
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@types/promise-retry': 1.1.6
+ '@types/retry': 0.12.5
+ bn.js: 5.2.1
+ promise-retry: 2.0.1
+ retry: 0.13.1
+ tiny-invariant: 1.3.3
+ tslib: 2.8.1
+
+ '@scure/base@1.1.9': {}
+
'@scure/base@1.2.1': {}
- '@shikijs/core@1.24.3':
+ '@scure/bip32@1.4.0':
dependencies:
- '@shikijs/engine-javascript': 1.24.3
- '@shikijs/engine-oniguruma': 1.24.3
- '@shikijs/types': 1.24.3
- '@shikijs/vscode-textmate': 9.3.1
+ '@noble/curves': 1.4.2
+ '@noble/hashes': 1.4.0
+ '@scure/base': 1.1.9
+
+ '@scure/bip39@1.3.0':
+ dependencies:
+ '@noble/hashes': 1.4.0
+ '@scure/base': 1.1.9
+
+ '@shikijs/core@1.26.1':
+ dependencies:
+ '@shikijs/engine-javascript': 1.26.1
+ '@shikijs/engine-oniguruma': 1.26.1
+ '@shikijs/types': 1.26.1
+ '@shikijs/vscode-textmate': 10.0.1
'@types/hast': 3.0.4
hast-util-to-html: 9.0.4
- '@shikijs/engine-javascript@1.24.3':
+ '@shikijs/engine-javascript@1.26.1':
dependencies:
- '@shikijs/types': 1.24.3
- '@shikijs/vscode-textmate': 9.3.1
- oniguruma-to-es: 0.8.0
+ '@shikijs/types': 1.26.1
+ '@shikijs/vscode-textmate': 10.0.1
+ oniguruma-to-es: 0.10.0
- '@shikijs/engine-oniguruma@1.24.3':
+ '@shikijs/engine-oniguruma@1.26.1':
dependencies:
- '@shikijs/types': 1.24.3
- '@shikijs/vscode-textmate': 9.3.1
+ '@shikijs/types': 1.26.1
+ '@shikijs/vscode-textmate': 10.0.1
- '@shikijs/types@1.24.3':
+ '@shikijs/langs@1.26.1':
dependencies:
- '@shikijs/vscode-textmate': 9.3.1
+ '@shikijs/types': 1.26.1
+
+ '@shikijs/themes@1.26.1':
+ dependencies:
+ '@shikijs/types': 1.26.1
+
+ '@shikijs/types@1.26.1':
+ dependencies:
+ '@shikijs/vscode-textmate': 10.0.1
'@types/hast': 3.0.4
- '@shikijs/vscode-textmate@9.3.1': {}
+ '@shikijs/vscode-textmate@10.0.1': {}
- '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
bigint-buffer: 1.1.5
bignumber.js: 9.1.2
transitivePeerDependencies:
@@ -2762,24 +3994,24 @@ snapshots:
'@solana/errors@2.0.0-preview.2':
dependencies:
- chalk: 5.4.0
+ chalk: 5.4.1
commander: 12.1.0
'@solana/errors@2.0.0-preview.4(typescript@5.7.2)':
dependencies:
- chalk: 5.4.0
+ chalk: 5.4.1
commander: 12.1.0
typescript: 5.7.2
'@solana/errors@2.0.0-rc.1(typescript@4.9.5)':
dependencies:
- chalk: 5.4.0
+ chalk: 5.4.1
commander: 12.1.0
typescript: 4.9.5
'@solana/errors@2.0.0-rc.1(typescript@5.7.2)':
dependencies:
- chalk: 5.4.0
+ chalk: 5.4.1
commander: 12.1.0
typescript: 5.7.2
@@ -2821,61 +4053,89 @@ snapshots:
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token-group@0.0.4(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
+ '@solana/spl-account-compression@0.1.10(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@metaplex-foundation/beet': 0.7.2
+ '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ bn.js: 5.2.1
+ borsh: 0.7.0
+ js-sha3: 0.8.0
+ typescript-collections: 1.3.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - supports-color
+ - utf-8-validate
+
+ '@solana/spl-token-group@0.0.4(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)':
dependencies:
'@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- '@solana/spl-token-group@0.0.5(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)':
+ '@solana/spl-token-group@0.0.5(@solana/web3.js@1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)':
dependencies:
'@solana/codecs': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)
'@solana/spl-type-length-value': 0.1.0
- '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- typescript
- '@solana/spl-token-group@0.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)':
+ '@solana/spl-token-group@0.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)':
dependencies:
'@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- typescript
- '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)':
+ '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)':
dependencies:
'@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)
- '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- typescript
- '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)':
+ '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)':
dependencies:
'@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- typescript
- '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)':
+ '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)':
dependencies:
'@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- fastestsmallesttextencoderdecoder
- typescript
- '@solana/spl-token@0.3.11(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.1.8(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@babel/runtime': 7.26.0
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ bn.js: 5.2.1
+ buffer: 6.0.3
+ buffer-layout: 1.2.2
+ dotenv: 10.0.0
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+
+ '@solana/spl-token@0.3.11(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
@@ -2898,13 +4158,12 @@ snapshots:
- typescript
- utf-8-validate
- '@solana/spl-token@0.4.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.3.11(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-group': 0.0.4(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
- '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
@@ -2913,13 +4172,13 @@ snapshots:
- typescript
- utf-8-validate
- '@solana/spl-token@0.4.8(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.4.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-group': 0.0.5(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)
- '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)
- '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@solana/spl-token-group': 0.0.4(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
@@ -2928,13 +4187,28 @@ snapshots:
- typescript
- utf-8-validate
- '@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
+ '@solana/spl-token@0.4.8(@solana/web3.js@1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
dependencies:
'@solana/buffer-layout': 4.0.1
- '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)
- '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@solana/spl-token-group': 0.0.5(@solana/web3.js@1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)
+ '@solana/web3.js': 1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ buffer: 6.0.3
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - typescript
+ - utf-8-validate
+
+ '@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@solana/buffer-layout': 4.0.1
+ '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)
+ '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
buffer: 6.0.3
transitivePeerDependencies:
- bufferutil
@@ -2947,20 +4221,20 @@ snapshots:
dependencies:
buffer: 6.0.3
- '@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.26.0
- '@noble/curves': 1.7.0
- '@noble/hashes': 1.6.1
+ '@noble/curves': 1.8.0
+ '@noble/hashes': 1.7.0
'@solana/buffer-layout': 4.0.1
- agentkeepalive: 4.5.0
+ agentkeepalive: 4.6.0
bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
buffer: 6.0.3
fast-stable-stringify: 1.0.0
- jayson: 4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)
node-fetch: 2.7.0
rpc-websockets: 9.0.4
superstruct: 2.0.2
@@ -2969,20 +4243,20 @@ snapshots:
- encoding
- utf-8-validate
- '@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)':
+ '@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)':
dependencies:
'@babel/runtime': 7.26.0
- '@noble/curves': 1.7.0
- '@noble/hashes': 1.6.1
+ '@noble/curves': 1.8.0
+ '@noble/hashes': 1.7.0
'@solana/buffer-layout': 4.0.1
- agentkeepalive: 4.5.0
+ agentkeepalive: 4.6.0
bigint-buffer: 1.1.5
bn.js: 5.2.1
borsh: 0.7.0
bs58: 4.0.1
buffer: 6.0.3
fast-stable-stringify: 1.0.0
- jayson: 4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ jayson: 4.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)
node-fetch: 2.7.0
rpc-websockets: 9.0.4
superstruct: 2.0.2
@@ -3015,11 +4289,61 @@ snapshots:
dependencies:
tslib: 2.8.1
- '@tiplink/api@0.3.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(sodium-native@3.4.1)(utf-8-validate@5.0.10)':
+ '@tensor-hq/tensor-common@8.3.1(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
dependencies:
- '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
- '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)
- '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@coral-xyz/anchor': 0.26.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/mpl-auction-house': 2.5.1(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ '@metaplex-foundation/mpl-bubblegum': 0.7.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ '@solana/spl-account-compression': 0.1.10(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ axios: 0.28.1
+ big.js: 6.2.2
+ bn.js: 5.2.1
+ borsh: 0.7.0
+ bs58: 5.0.0
+ exponential-backoff: 3.1.1
+ js-sha3: 0.8.0
+ semaphore: 1.1.0
+ transitivePeerDependencies:
+ - bufferutil
+ - debug
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - supports-color
+ - typescript
+ - utf-8-validate
+
+ '@tensor-oss/tensorswap-sdk@4.5.0(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@coral-xyz/anchor': 0.26.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@msgpack/msgpack': 2.8.0
+ '@saberhq/solana-contrib': 1.15.0(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bn.js@5.2.1)
+ '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@tensor-hq/tensor-common': 8.3.1(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)
+ '@types/bn.js': 5.1.6
+ big.js: 6.2.2
+ bn.js: 5.2.1
+ js-sha256: 0.9.0
+ keccak256: 1.0.6
+ math-expression-evaluator: 2.0.6
+ merkletreejs: 0.3.11
+ uuid: 8.3.2
+ transitivePeerDependencies:
+ - bufferutil
+ - debug
+ - encoding
+ - fastestsmallesttextencoderdecoder
+ - supports-color
+ - typescript
+ - utf-8-validate
+
+ '@tiplink/api@0.3.1(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(sodium-native@3.4.1)(utf-8-validate@5.0.10)':
+ dependencies:
+ '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+ '@solana/spl-token': 0.3.11(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)(utf-8-validate@5.0.10)
+ '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
bs58: 5.0.0
libsodium: 0.7.15
libsodium-wrappers-sumo: 0.7.15
@@ -3045,7 +4369,12 @@ snapshots:
'@types/bn.js@5.1.6':
dependencies:
- '@types/node': 22.10.2
+ '@types/node': 22.10.5
+
+ '@types/body-parser@1.19.5':
+ dependencies:
+ '@types/connect': 3.4.38
+ '@types/node': 22.10.5
'@types/chai@5.0.1':
dependencies:
@@ -3053,37 +4382,80 @@ snapshots:
'@types/connect@3.4.38':
dependencies:
- '@types/node': 22.10.2
+ '@types/node': 22.10.5
'@types/deep-eql@4.0.2': {}
+ '@types/diff-match-patch@1.0.36': {}
+
+ '@types/estree@1.0.6': {}
+
+ '@types/express-serve-static-core@4.19.6':
+ dependencies:
+ '@types/node': 22.10.5
+ '@types/qs': 6.9.17
+ '@types/range-parser': 1.2.7
+ '@types/send': 0.17.4
+
+ '@types/express@4.17.21':
+ dependencies:
+ '@types/body-parser': 1.19.5
+ '@types/express-serve-static-core': 4.19.6
+ '@types/qs': 6.9.17
+ '@types/serve-static': 1.15.7
+
'@types/hast@3.0.4':
dependencies:
'@types/unist': 3.0.3
+ '@types/http-errors@2.0.4': {}
+
'@types/json-schema@7.0.15': {}
'@types/mdast@4.0.4':
dependencies:
'@types/unist': 3.0.3
+ '@types/mime@1.3.5': {}
+
'@types/node-fetch@2.6.12':
dependencies:
- '@types/node': 22.10.2
+ '@types/node': 22.10.5
form-data: 4.0.1
'@types/node@12.20.55': {}
- '@types/node@18.19.68':
+ '@types/node@18.19.69':
dependencies:
undici-types: 5.26.5
- '@types/node@22.10.2':
+ '@types/node@22.10.5':
dependencies:
undici-types: 6.20.0
+ '@types/promise-retry@1.1.6':
+ dependencies:
+ '@types/retry': 0.12.5
+
+ '@types/qs@6.9.17': {}
+
+ '@types/range-parser@1.2.7': {}
+
'@types/retry@0.12.0': {}
+ '@types/retry@0.12.5': {}
+
+ '@types/send@0.17.4':
+ dependencies:
+ '@types/mime': 1.3.5
+ '@types/node': 22.10.5
+
+ '@types/serve-static@1.15.7':
+ dependencies:
+ '@types/http-errors': 2.0.4
+ '@types/node': 22.10.5
+ '@types/send': 0.17.4
+
'@types/unist@3.0.3': {}
'@types/uuid@10.0.0': {}
@@ -3092,92 +4464,88 @@ snapshots:
'@types/ws@7.4.7':
dependencies:
- '@types/node': 22.10.2
+ '@types/node': 22.10.5
'@types/ws@8.5.13':
dependencies:
- '@types/node': 22.10.2
+ '@types/node': 22.10.5
- '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)':
+ '@typescript-eslint/eslint-plugin@8.19.0(@typescript-eslint/parser@8.19.0(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.2)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.7.2)
- '@typescript-eslint/scope-manager': 7.18.0
- '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.7.2)
- '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.7.2)
- '@typescript-eslint/visitor-keys': 7.18.0
+ '@typescript-eslint/parser': 8.19.0(eslint@8.57.1)(typescript@5.7.2)
+ '@typescript-eslint/scope-manager': 8.19.0
+ '@typescript-eslint/type-utils': 8.19.0(eslint@8.57.1)(typescript@5.7.2)
+ '@typescript-eslint/utils': 8.19.0(eslint@8.57.1)(typescript@5.7.2)
+ '@typescript-eslint/visitor-keys': 8.19.0
eslint: 8.57.1
graphemer: 1.4.0
ignore: 5.3.2
natural-compare: 1.4.0
ts-api-utils: 1.4.3(typescript@5.7.2)
- optionalDependencies:
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.7.2)':
+ '@typescript-eslint/parser@8.19.0(eslint@8.57.1)(typescript@5.7.2)':
dependencies:
- '@typescript-eslint/scope-manager': 7.18.0
- '@typescript-eslint/types': 7.18.0
- '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2)
- '@typescript-eslint/visitor-keys': 7.18.0
+ '@typescript-eslint/scope-manager': 8.19.0
+ '@typescript-eslint/types': 8.19.0
+ '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.7.2)
+ '@typescript-eslint/visitor-keys': 8.19.0
debug: 4.4.0
eslint: 8.57.1
- optionalDependencies:
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@7.18.0':
+ '@typescript-eslint/scope-manager@8.19.0':
dependencies:
- '@typescript-eslint/types': 7.18.0
- '@typescript-eslint/visitor-keys': 7.18.0
+ '@typescript-eslint/types': 8.19.0
+ '@typescript-eslint/visitor-keys': 8.19.0
- '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.7.2)':
+ '@typescript-eslint/type-utils@8.19.0(eslint@8.57.1)(typescript@5.7.2)':
dependencies:
- '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2)
- '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.7.2)
+ '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.7.2)
+ '@typescript-eslint/utils': 8.19.0(eslint@8.57.1)(typescript@5.7.2)
debug: 4.4.0
eslint: 8.57.1
ts-api-utils: 1.4.3(typescript@5.7.2)
- optionalDependencies:
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/types@7.18.0': {}
+ '@typescript-eslint/types@8.19.0': {}
- '@typescript-eslint/typescript-estree@7.18.0(typescript@5.7.2)':
+ '@typescript-eslint/typescript-estree@8.19.0(typescript@5.7.2)':
dependencies:
- '@typescript-eslint/types': 7.18.0
- '@typescript-eslint/visitor-keys': 7.18.0
+ '@typescript-eslint/types': 8.19.0
+ '@typescript-eslint/visitor-keys': 8.19.0
debug: 4.4.0
- globby: 11.1.0
+ fast-glob: 3.3.2
is-glob: 4.0.3
minimatch: 9.0.5
semver: 7.6.3
ts-api-utils: 1.4.3(typescript@5.7.2)
- optionalDependencies:
typescript: 5.7.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.7.2)':
+ '@typescript-eslint/utils@8.19.0(eslint@8.57.1)(typescript@5.7.2)':
dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1)
- '@typescript-eslint/scope-manager': 7.18.0
- '@typescript-eslint/types': 7.18.0
- '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.2)
+ '@typescript-eslint/scope-manager': 8.19.0
+ '@typescript-eslint/types': 8.19.0
+ '@typescript-eslint/typescript-estree': 8.19.0(typescript@5.7.2)
eslint: 8.57.1
+ typescript: 5.7.2
transitivePeerDependencies:
- supports-color
- - typescript
- '@typescript-eslint/visitor-keys@7.18.0':
+ '@typescript-eslint/visitor-keys@8.19.0':
dependencies:
- '@typescript-eslint/types': 7.18.0
- eslint-visitor-keys: 3.4.3
+ '@typescript-eslint/types': 8.19.0
+ eslint-visitor-keys: 4.2.0
'@ungap/structured-clone@1.2.1': {}
@@ -3190,6 +4558,11 @@ snapshots:
dependencies:
event-target-shim: 5.0.1
+ accepts@1.3.8:
+ dependencies:
+ mime-types: 2.1.35
+ negotiator: 0.6.3
+
acorn-jsx@5.3.2(acorn@8.14.0):
dependencies:
acorn: 8.14.0
@@ -3200,10 +4573,23 @@ snapshots:
acorn@8.14.0: {}
- agentkeepalive@4.5.0:
+ agentkeepalive@4.6.0:
dependencies:
humanize-ms: 1.2.1
+ ai@4.0.22(react@19.0.0)(zod@3.24.1):
+ dependencies:
+ '@ai-sdk/provider': 1.0.3
+ '@ai-sdk/provider-utils': 2.0.5(zod@3.24.1)
+ '@ai-sdk/react': 1.0.7(react@19.0.0)(zod@3.24.1)
+ '@ai-sdk/ui-utils': 1.0.6(zod@3.24.1)
+ '@opentelemetry/api': 1.9.0
+ jsondiffpatch: 0.6.0
+ zod-to-json-schema: 3.24.1(zod@3.24.1)
+ optionalDependencies:
+ react: 19.0.0
+ zod: 3.24.1
+
ajv@6.12.6:
dependencies:
fast-deep-equal: 3.1.3
@@ -3211,21 +4597,29 @@ snapshots:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
+ ansi-escapes@7.0.0:
+ dependencies:
+ environment: 1.1.0
+
ansi-regex@5.0.1: {}
+ ansi-regex@6.1.0: {}
+
ansi-styles@4.3.0:
dependencies:
color-convert: 2.0.1
ansi-styles@5.2.0: {}
+ ansi-styles@6.2.1: {}
+
ansicolors@0.3.2: {}
arg@4.1.3: {}
argparse@2.0.1: {}
- array-union@2.1.0: {}
+ array-flatten@1.1.1: {}
assert@2.1.0:
dependencies:
@@ -3243,10 +4637,13 @@ snapshots:
dependencies:
possible-typed-array-names: 1.0.0
- axios-retry@3.9.1:
+ axios@0.28.1:
dependencies:
- '@babel/runtime': 7.26.0
- is-retry-allowed: 2.2.0
+ follow-redirects: 1.15.9
+ form-data: 4.0.1
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
axios@1.7.9:
dependencies:
@@ -3282,8 +4679,29 @@ snapshots:
dependencies:
file-uri-to-path: 1.0.0
+ bintrees@1.0.2: {}
+
+ bn.js@4.11.6: {}
+
bn.js@5.2.1: {}
+ body-parser@1.20.3:
+ dependencies:
+ bytes: 3.1.2
+ content-type: 1.0.5
+ debug: 2.6.9
+ depd: 2.0.0
+ destroy: 1.2.0
+ http-errors: 2.0.0
+ iconv-lite: 0.4.24
+ on-finished: 2.4.1
+ qs: 6.13.0
+ raw-body: 2.5.2
+ type-is: 1.6.18
+ unpipe: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+
borsh@0.7.0:
dependencies:
bn.js: 5.2.1
@@ -3321,6 +4739,8 @@ snapshots:
buffer-layout@1.2.2: {}
+ buffer-reverse@1.0.1: {}
+
buffer@5.7.1:
dependencies:
base64-js: 1.5.1
@@ -3331,11 +4751,13 @@ snapshots:
base64-js: 1.5.1
ieee754: 1.2.1
- bufferutil@4.0.8:
+ bufferutil@4.0.9:
dependencies:
node-gyp-build: 4.8.4
optional: true
+ bytes@3.1.2: {}
+
call-bind-apply-helpers@1.0.1:
dependencies:
es-errors: 1.3.0
@@ -3345,13 +4767,13 @@ snapshots:
dependencies:
call-bind-apply-helpers: 1.0.1
es-define-property: 1.0.1
- get-intrinsic: 1.2.6
+ get-intrinsic: 1.2.7
set-function-length: 1.2.2
call-bound@1.0.3:
dependencies:
call-bind-apply-helpers: 1.0.1
- get-intrinsic: 1.2.6
+ get-intrinsic: 1.2.7
callsites@3.1.0: {}
@@ -3372,7 +4794,7 @@ snapshots:
ansi-styles: 4.3.0
supports-color: 7.2.0
- chalk@5.4.0: {}
+ chalk@5.4.1: {}
character-entities-html4@2.1.0: {}
@@ -3380,12 +4802,23 @@ snapshots:
check-error@2.1.1: {}
+ cli-cursor@5.0.0:
+ dependencies:
+ restore-cursor: 5.1.0
+
+ cli-truncate@4.0.0:
+ dependencies:
+ slice-ansi: 5.0.0
+ string-width: 7.2.0
+
color-convert@2.0.1:
dependencies:
color-name: 1.1.4
color-name@1.1.4: {}
+ colorette@2.0.20: {}
+
combined-stream@1.0.8:
dependencies:
delayed-stream: 1.0.0
@@ -3400,9 +4833,19 @@ snapshots:
concat-map@0.0.1: {}
+ content-disposition@0.5.4:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ content-type@1.0.5: {}
+
+ cookie-signature@1.0.6: {}
+
+ cookie@0.7.1: {}
+
create-require@1.1.1: {}
- cross-fetch@3.1.8:
+ cross-fetch@3.2.0:
dependencies:
node-fetch: 2.7.0
transitivePeerDependencies:
@@ -3416,8 +4859,14 @@ snapshots:
crypto-hash@1.3.0: {}
+ crypto-js@4.2.0: {}
+
dayjs@1.11.13: {}
+ debug@2.6.9:
+ dependencies:
+ ms: 2.0.0
+
debug@4.4.0:
dependencies:
ms: 2.1.3
@@ -3448,17 +4897,19 @@ snapshots:
delayed-stream@1.0.0: {}
+ depd@2.0.0: {}
+
dequal@2.0.3: {}
+ destroy@1.2.0: {}
+
devlop@1.1.0:
dependencies:
dequal: 2.0.3
- diff@4.0.2: {}
+ diff-match-patch@1.0.5: {}
- dir-glob@3.0.1:
- dependencies:
- path-type: 4.0.0
+ diff@4.0.2: {}
doctrine@3.0.0:
dependencies:
@@ -3469,6 +4920,8 @@ snapshots:
no-case: 3.0.4
tslib: 2.8.1
+ dotenv@10.0.0: {}
+
dotenv@16.4.7: {}
dunder-proto@1.0.1:
@@ -3477,10 +4930,28 @@ snapshots:
es-errors: 1.3.0
gopd: 1.2.0
+ eastasianwidth@0.2.0: {}
+
+ ee-first@1.1.1: {}
+
emoji-regex-xs@1.0.0: {}
+ emoji-regex@10.4.0: {}
+
+ emoji-regex@8.0.0: {}
+
+ emoji-regex@9.2.2: {}
+
+ encodeurl@1.0.2: {}
+
+ encodeurl@2.0.0: {}
+
entities@4.5.0: {}
+ environment@1.1.0: {}
+
+ err-code@2.0.3: {}
+
es-define-property@1.0.1: {}
es-errors@1.3.0: {}
@@ -3495,6 +4966,8 @@ snapshots:
dependencies:
es6-promise: 4.2.8
+ escape-html@1.0.3: {}
+
escape-string-regexp@4.0.0: {}
eslint-config-prettier@9.1.0(eslint@8.57.1):
@@ -3515,8 +4988,15 @@ snapshots:
esrecurse: 4.3.0
estraverse: 5.3.0
+ eslint-scope@8.2.0:
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+
eslint-visitor-keys@3.4.3: {}
+ eslint-visitor-keys@4.2.0: {}
+
eslint@8.57.1:
dependencies:
'@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1)
@@ -3560,6 +5040,51 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ eslint@9.17.0:
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0)
+ '@eslint-community/regexpp': 4.12.1
+ '@eslint/config-array': 0.19.1
+ '@eslint/core': 0.9.1
+ '@eslint/eslintrc': 3.2.0
+ '@eslint/js': 9.17.0
+ '@eslint/plugin-kit': 0.2.4
+ '@humanfs/node': 0.16.6
+ '@humanwhocodes/module-importer': 1.0.1
+ '@humanwhocodes/retry': 0.4.1
+ '@types/estree': 1.0.6
+ '@types/json-schema': 7.0.15
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.6
+ debug: 4.4.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 8.2.0
+ eslint-visitor-keys: 4.2.0
+ espree: 10.3.0
+ esquery: 1.6.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 8.0.0
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ ignore: 5.3.2
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ json-stable-stringify-without-jsonify: 1.0.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.4
+ transitivePeerDependencies:
+ - supports-color
+
+ espree@10.3.0:
+ dependencies:
+ acorn: 8.14.0
+ acorn-jsx: 5.3.2(acorn@8.14.0)
+ eslint-visitor-keys: 4.2.0
+
espree@9.6.1:
dependencies:
acorn: 8.14.0
@@ -3578,12 +5103,92 @@ snapshots:
esutils@2.0.3: {}
+ etag@1.8.1: {}
+
+ ethereum-bloom-filters@1.2.0:
+ dependencies:
+ '@noble/hashes': 1.7.0
+
+ ethereum-cryptography@2.2.1:
+ dependencies:
+ '@noble/curves': 1.4.2
+ '@noble/hashes': 1.4.0
+ '@scure/bip32': 1.4.0
+ '@scure/bip39': 1.3.0
+
+ ethjs-unit@0.1.6:
+ dependencies:
+ bn.js: 4.11.6
+ number-to-bn: 1.7.0
+
event-target-shim@5.0.1: {}
eventemitter3@4.0.7: {}
eventemitter3@5.0.1: {}
+ eventsource-parser@3.0.0: {}
+
+ execa@8.0.1:
+ dependencies:
+ cross-spawn: 7.0.6
+ get-stream: 8.0.1
+ human-signals: 5.0.0
+ is-stream: 3.0.0
+ merge-stream: 2.0.0
+ npm-run-path: 5.3.0
+ onetime: 6.0.0
+ signal-exit: 4.1.0
+ strip-final-newline: 3.0.0
+
+ exponential-backoff@3.1.1: {}
+
+ express-prom-bundle@7.0.2(prom-client@15.1.3):
+ dependencies:
+ '@types/express': 4.17.21
+ express: 4.21.2
+ on-finished: 2.4.1
+ prom-client: 15.1.3
+ url-value-parser: 2.2.0
+ transitivePeerDependencies:
+ - supports-color
+
+ express@4.21.2:
+ dependencies:
+ accepts: 1.3.8
+ array-flatten: 1.1.1
+ body-parser: 1.20.3
+ content-disposition: 0.5.4
+ content-type: 1.0.5
+ cookie: 0.7.1
+ cookie-signature: 1.0.6
+ debug: 2.6.9
+ depd: 2.0.0
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ etag: 1.8.1
+ finalhandler: 1.3.1
+ fresh: 0.5.2
+ http-errors: 2.0.0
+ merge-descriptors: 1.0.3
+ methods: 1.1.2
+ on-finished: 2.4.1
+ parseurl: 1.3.3
+ path-to-regexp: 0.1.12
+ proxy-addr: 2.0.7
+ qs: 6.13.0
+ range-parser: 1.2.1
+ safe-buffer: 5.2.1
+ send: 0.19.0
+ serve-static: 1.16.2
+ setprototypeof: 1.2.0
+ statuses: 2.0.1
+ type-is: 1.6.18
+ utils-merge: 1.0.1
+ vary: 1.1.2
+ transitivePeerDependencies:
+ - supports-color
+
eyes@0.1.8: {}
fast-deep-equal@3.1.3: {}
@@ -3614,12 +5219,41 @@ snapshots:
dependencies:
flat-cache: 3.2.0
+ file-entry-cache@8.0.0:
+ dependencies:
+ flat-cache: 4.0.1
+
file-uri-to-path@1.0.0: {}
fill-range@7.1.1:
dependencies:
to-regex-range: 5.0.1
+ finalhandler@1.3.1:
+ dependencies:
+ debug: 2.6.9
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ on-finished: 2.4.1
+ parseurl: 1.3.3
+ statuses: 2.0.1
+ unpipe: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ find-process@1.4.8:
+ dependencies:
+ chalk: 5.4.1
+ commander: 12.1.0
+ debug: 4.4.0
+ eslint: 9.17.0
+ glob: 11.0.0
+ loglevel: 1.9.2
+ rimraf: 6.0.1
+ transitivePeerDependencies:
+ - jiti
+ - supports-color
+
find-up@5.0.0:
dependencies:
locate-path: 6.0.0
@@ -3631,6 +5265,11 @@ snapshots:
keyv: 4.5.4
rimraf: 3.0.2
+ flat-cache@4.0.1:
+ dependencies:
+ flatted: 3.3.2
+ keyv: 4.5.4
+
flatted@3.3.2: {}
follow-redirects@1.15.9: {}
@@ -3639,6 +5278,11 @@ snapshots:
dependencies:
is-callable: 1.2.7
+ foreground-child@3.3.0:
+ dependencies:
+ cross-spawn: 7.0.6
+ signal-exit: 4.1.0
+
form-data-encoder@1.7.2: {}
form-data@4.0.1:
@@ -3652,23 +5296,36 @@ snapshots:
node-domexception: 1.0.0
web-streams-polyfill: 4.0.0-beta.3
+ forwarded@0.2.0: {}
+
+ fresh@0.5.2: {}
+
fs.realpath@1.0.0: {}
function-bind@1.1.2: {}
- get-intrinsic@1.2.6:
+ get-east-asian-width@1.3.0: {}
+
+ get-intrinsic@1.2.7:
dependencies:
call-bind-apply-helpers: 1.0.1
- dunder-proto: 1.0.1
es-define-property: 1.0.1
es-errors: 1.3.0
es-object-atoms: 1.0.0
function-bind: 1.1.2
+ get-proto: 1.0.1
gopd: 1.2.0
has-symbols: 1.1.0
hasown: 2.0.2
math-intrinsics: 1.1.0
+ get-proto@1.0.1:
+ dependencies:
+ dunder-proto: 1.0.1
+ es-object-atoms: 1.0.0
+
+ get-stream@8.0.1: {}
+
glob-parent@5.1.2:
dependencies:
is-glob: 4.0.3
@@ -3677,6 +5334,24 @@ snapshots:
dependencies:
is-glob: 4.0.3
+ glob@10.4.5:
+ dependencies:
+ foreground-child: 3.3.0
+ jackspeak: 3.4.3
+ minimatch: 9.0.5
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.1
+ path-scurry: 1.11.1
+
+ glob@11.0.0:
+ dependencies:
+ foreground-child: 3.3.0
+ jackspeak: 4.0.2
+ minimatch: 10.0.1
+ minipass: 7.1.2
+ package-json-from-dist: 1.0.1
+ path-scurry: 2.0.0
+
glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
@@ -3690,14 +5365,7 @@ snapshots:
dependencies:
type-fest: 0.20.2
- globby@11.1.0:
- dependencies:
- array-union: 2.1.0
- dir-glob: 3.0.1
- fast-glob: 3.3.2
- ignore: 5.3.2
- merge2: 1.4.1
- slash: 3.0.0
+ globals@14.0.0: {}
gopd@1.2.0: {}
@@ -3713,10 +5381,10 @@ snapshots:
groq-sdk@0.5.0:
dependencies:
- '@types/node': 18.19.68
+ '@types/node': 18.19.69
'@types/node-fetch': 2.6.12
abort-controller: 3.0.0
- agentkeepalive: 4.5.0
+ agentkeepalive: 4.6.0
form-data-encoder: 1.7.2
formdata-node: 4.4.1
node-fetch: 2.7.0
@@ -3765,10 +5433,26 @@ snapshots:
html-void-elements@3.0.0: {}
+ http-errors@2.0.0:
+ dependencies:
+ depd: 2.0.0
+ inherits: 2.0.4
+ setprototypeof: 1.2.0
+ statuses: 2.0.1
+ toidentifier: 1.0.1
+
+ human-signals@5.0.0: {}
+
humanize-ms@1.2.1:
dependencies:
ms: 2.1.3
+ husky@9.1.7: {}
+
+ iconv-lite@0.4.24:
+ dependencies:
+ safer-buffer: 2.1.2
+
ieee754@1.2.1: {}
ignore@5.3.2: {}
@@ -3787,9 +5471,7 @@ snapshots:
inherits@2.0.4: {}
- invariant@2.2.4:
- dependencies:
- loose-envify: 1.4.0
+ ipaddr.js@1.9.1: {}
ipaddr.js@2.2.0: {}
@@ -3802,14 +5484,27 @@ snapshots:
is-extglob@2.1.1: {}
- is-generator-function@1.0.10:
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-fullwidth-code-point@4.0.0: {}
+
+ is-fullwidth-code-point@5.0.0:
dependencies:
+ get-east-asian-width: 1.3.0
+
+ is-generator-function@1.1.0:
+ dependencies:
+ call-bound: 1.0.3
+ get-proto: 1.0.1
has-tostringtag: 1.0.2
+ safe-regex-test: 1.1.0
is-glob@4.0.3:
dependencies:
is-extglob: 2.1.1
+ is-hex-prefixed@1.0.0: {}
+
is-nan@1.3.2:
dependencies:
call-bind: 1.0.8
@@ -3819,7 +5514,14 @@ snapshots:
is-path-inside@3.0.3: {}
- is-retry-allowed@2.2.0: {}
+ is-regex@1.2.1:
+ dependencies:
+ call-bound: 1.0.3
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ is-stream@3.0.0: {}
is-typed-array@1.1.15:
dependencies:
@@ -3829,15 +5531,21 @@ snapshots:
isexe@2.0.0: {}
- isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)):
dependencies:
- ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)
- isomorphic-ws@4.0.1(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)):
+ jackspeak@3.4.3:
dependencies:
- ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
- jayson@4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ jackspeak@4.0.2:
+ dependencies:
+ '@isaacs/cliui': 8.0.2
+
+ jayson@4.1.3(bufferutil@4.0.9)(utf-8-validate@5.0.10):
dependencies:
'@types/connect': 3.4.38
'@types/node': 12.20.55
@@ -3847,16 +5555,22 @@ snapshots:
delay: 5.0.0
es6-promisify: 5.0.0
eyes: 0.1.8
- isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10))
+ isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10))
json-stringify-safe: 5.0.1
uuid: 8.3.2
- ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10)
transitivePeerDependencies:
- bufferutil
- utf-8-validate
js-base64@3.7.7: {}
+ js-sha256@0.11.0: {}
+
+ js-sha256@0.9.0: {}
+
+ js-sha3@0.8.0: {}
+
js-tiktoken@1.0.16:
dependencies:
base64-js: 1.5.1
@@ -3871,12 +5585,20 @@ snapshots:
json-schema-traverse@0.4.1: {}
+ json-schema@0.4.0: {}
+
json-stable-stringify-without-jsonify@1.0.1: {}
json-stringify-safe@5.0.1: {}
json5@2.2.3: {}
+ jsondiffpatch@0.6.0:
+ dependencies:
+ '@types/diff-match-patch': 1.0.36
+ chalk: 5.4.1
+ diff-match-patch: 1.0.5
+
jsonfile@6.1.0:
dependencies:
universalify: 2.0.1
@@ -3887,33 +5609,45 @@ snapshots:
jsonpointer@5.0.1: {}
+ keccak256@1.0.6:
+ dependencies:
+ bn.js: 5.2.1
+ buffer: 6.0.3
+ keccak: 3.0.4
+
+ keccak@3.0.4:
+ dependencies:
+ node-addon-api: 2.0.2
+ node-gyp-build: 4.8.4
+ readable-stream: 3.6.2
+
keyv@4.5.4:
dependencies:
json-buffer: 3.0.1
- langchain@0.3.7(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(axios@1.7.9)(openai@4.77.0(zod@3.24.1)):
+ langchain@0.3.9(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1))))(axios@1.7.9)(openai@4.77.3(zod@3.24.1)):
dependencies:
- '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1))
- '@langchain/openai': 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
- '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ '@langchain/core': 0.3.27(openai@4.77.3(zod@3.24.1))
+ '@langchain/openai': 0.3.16(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1)))
+ '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1)))
js-tiktoken: 1.0.16
js-yaml: 4.1.0
jsonpointer: 5.0.1
- langsmith: 0.2.13(openai@4.77.0(zod@3.24.1))
+ langsmith: 0.2.14(openai@4.77.3(zod@3.24.1))
openapi-types: 12.1.3
p-retry: 4.6.2
uuid: 10.0.0
- yaml: 2.6.1
+ yaml: 2.7.0
zod: 3.24.1
zod-to-json-schema: 3.24.1(zod@3.24.1)
optionalDependencies:
- '@langchain/groq': 0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))
+ '@langchain/groq': 0.1.2(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1)))
axios: 1.7.9
transitivePeerDependencies:
- encoding
- openai
- langsmith@0.2.13(openai@4.77.0(zod@3.24.1)):
+ langsmith@0.2.14(openai@4.77.3(zod@3.24.1)):
dependencies:
'@types/uuid': 10.0.0
commander: 10.0.1
@@ -3922,7 +5656,7 @@ snapshots:
semver: 7.6.3
uuid: 10.0.0
optionalDependencies:
- openai: 4.77.0(zod@3.24.1)
+ openai: 4.77.3(zod@3.24.1)
levn@0.4.1:
dependencies:
@@ -3941,10 +5675,36 @@ snapshots:
libsodium@0.7.15: {}
+ lilconfig@3.1.3: {}
+
linkify-it@5.0.0:
dependencies:
uc.micro: 2.1.0
+ lint-staged@15.3.0:
+ dependencies:
+ chalk: 5.4.1
+ commander: 12.1.0
+ debug: 4.4.0
+ execa: 8.0.1
+ lilconfig: 3.1.3
+ listr2: 8.2.5
+ micromatch: 4.0.8
+ pidtree: 0.6.0
+ string-argv: 0.3.2
+ yaml: 2.6.1
+ transitivePeerDependencies:
+ - supports-color
+
+ listr2@8.2.5:
+ dependencies:
+ cli-truncate: 4.0.0
+ colorette: 2.0.20
+ eventemitter3: 5.0.1
+ log-update: 6.1.0
+ rfdc: 1.4.1
+ wrap-ansi: 9.0.0
+
locate-path@6.0.0:
dependencies:
p-locate: 5.0.0
@@ -3953,9 +5713,15 @@ snapshots:
lodash@4.17.21: {}
- loose-envify@1.4.0:
+ log-update@6.1.0:
dependencies:
- js-tokens: 4.0.0
+ ansi-escapes: 7.0.0
+ cli-cursor: 5.0.0
+ slice-ansi: 7.1.0
+ strip-ansi: 7.1.0
+ wrap-ansi: 9.0.0
+
+ loglevel@1.9.2: {}
loupe@3.1.2: {}
@@ -3963,6 +5729,10 @@ snapshots:
dependencies:
tslib: 2.8.1
+ lru-cache@10.4.3: {}
+
+ lru-cache@11.0.2: {}
+
lunr@2.3.9: {}
make-error@1.3.6: {}
@@ -3976,6 +5746,8 @@ snapshots:
punycode.js: 2.3.1
uc.micro: 2.1.0
+ math-expression-evaluator@2.0.6: {}
+
math-intrinsics@1.1.0: {}
mdast-util-to-hast@13.2.0:
@@ -3992,8 +5764,26 @@ snapshots:
mdurl@2.0.0: {}
+ media-typer@0.3.0: {}
+
+ merge-descriptors@1.0.3: {}
+
+ merge-stream@2.0.0: {}
+
merge2@1.4.1: {}
+ merkletreejs@0.3.11:
+ dependencies:
+ bignumber.js: 9.1.2
+ buffer-reverse: 1.0.1
+ crypto-js: 4.2.0
+ treeify: 1.1.0
+ web3-utils: 1.10.4
+
+ methods@1.1.2: {}
+
+ micro-ftch@0.3.1: {}
+
micromark-util-character@2.1.1:
dependencies:
micromark-util-symbol: 2.0.1
@@ -4022,8 +5812,18 @@ snapshots:
dependencies:
mime-db: 1.52.0
+ mime@1.6.0: {}
+
+ mimic-fn@4.0.0: {}
+
+ mimic-function@5.0.1: {}
+
minimalistic-assert@1.0.1: {}
+ minimatch@10.0.1:
+ dependencies:
+ brace-expansion: 2.0.1
+
minimatch@3.1.2:
dependencies:
brace-expansion: 1.1.11
@@ -4034,6 +5834,10 @@ snapshots:
minimist@1.2.8: {}
+ minipass@7.1.2: {}
+
+ ms@2.0.0: {}
+
ms@2.1.3: {}
mustache@4.2.0: {}
@@ -4042,11 +5846,15 @@ snapshots:
natural-compare@1.4.0: {}
+ negotiator@0.6.3: {}
+
no-case@3.0.4:
dependencies:
lower-case: 2.0.2
tslib: 2.8.1
+ node-addon-api@2.0.2: {}
+
node-domexception@1.0.0: {}
node-fetch@2.7.0:
@@ -4055,6 +5863,17 @@ snapshots:
node-gyp-build@4.8.4: {}
+ npm-run-path@5.3.0:
+ dependencies:
+ path-key: 4.0.0
+
+ number-to-bn@1.7.0:
+ dependencies:
+ bn.js: 4.11.6
+ strip-hex-prefix: 1.0.0
+
+ object-inspect@1.13.3: {}
+
object-is@1.1.6:
dependencies:
call-bind: 1.0.8
@@ -4071,22 +5890,34 @@ snapshots:
has-symbols: 1.1.0
object-keys: 1.1.1
+ on-finished@2.4.1:
+ dependencies:
+ ee-first: 1.1.1
+
once@1.4.0:
dependencies:
wrappy: 1.0.2
- oniguruma-to-es@0.8.0:
+ onetime@6.0.0:
+ dependencies:
+ mimic-fn: 4.0.0
+
+ onetime@7.0.0:
+ dependencies:
+ mimic-function: 5.0.1
+
+ oniguruma-to-es@0.10.0:
dependencies:
emoji-regex-xs: 1.0.0
- regex: 5.0.2
- regex-recursion: 5.0.0
+ regex: 5.1.1
+ regex-recursion: 5.1.1
- openai@4.77.0(zod@3.24.1):
+ openai@4.77.3(zod@3.24.1):
dependencies:
- '@types/node': 18.19.68
+ '@types/node': 18.19.69
'@types/node-fetch': 2.6.12
abort-controller: 3.0.0
- agentkeepalive: 4.5.0
+ agentkeepalive: 4.6.0
form-data-encoder: 1.7.2
formdata-node: 4.4.1
node-fetch: 2.7.0
@@ -4130,6 +5961,8 @@ snapshots:
dependencies:
p-finally: 1.0.0
+ package-json-from-dist@1.0.1: {}
+
pako@0.2.9: {}
pako@2.1.0: {}
@@ -4138,18 +5971,36 @@ snapshots:
dependencies:
callsites: 3.1.0
+ parseurl@1.3.3: {}
+
path-exists@4.0.0: {}
path-is-absolute@1.0.1: {}
path-key@3.1.1: {}
- path-type@4.0.0: {}
+ path-key@4.0.0: {}
+
+ path-scurry@1.11.1:
+ dependencies:
+ lru-cache: 10.4.3
+ minipass: 7.1.2
+
+ path-scurry@2.0.0:
+ dependencies:
+ lru-cache: 11.0.2
+ minipass: 7.1.2
+
+ path-to-regexp@0.1.12: {}
pathval@2.0.0: {}
+ percentile@1.6.0: {}
+
picomatch@2.3.1: {}
+ pidtree@0.6.0: {}
+
poly1305-js@0.4.4:
dependencies:
big-integer: 1.6.52
@@ -4162,40 +6013,101 @@ snapshots:
dependencies:
fast-diff: 1.3.0
+ prettier@2.8.8: {}
+
prettier@3.4.2: {}
+ prom-client@15.1.3:
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ tdigest: 0.1.2
+
+ promise-retry@2.0.1:
+ dependencies:
+ err-code: 2.0.3
+ retry: 0.12.0
+
property-information@6.5.0: {}
+ proxy-addr@2.0.7:
+ dependencies:
+ forwarded: 0.2.0
+ ipaddr.js: 1.9.1
+
proxy-from-env@1.1.0: {}
punycode.js@2.3.1: {}
punycode@2.3.1: {}
+ qs@6.13.0:
+ dependencies:
+ side-channel: 1.1.0
+
queue-microtask@1.2.3: {}
+ randombytes@2.1.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ range-parser@1.2.1: {}
+
+ raw-body@2.5.2:
+ dependencies:
+ bytes: 3.1.2
+ http-errors: 2.0.0
+ iconv-lite: 0.4.24
+ unpipe: 1.0.0
+
+ react@19.0.0: {}
+
+ readable-stream@3.6.2:
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+
regenerator-runtime@0.14.1: {}
- regex-recursion@5.0.0:
+ regex-recursion@5.1.1:
dependencies:
+ regex: 5.1.1
regex-utilities: 2.3.0
regex-utilities@2.3.0: {}
- regex@5.0.2:
+ regex@5.1.1:
dependencies:
regex-utilities: 2.3.0
resolve-from@4.0.0: {}
+ restore-cursor@5.1.0:
+ dependencies:
+ onetime: 7.0.0
+ signal-exit: 4.1.0
+
+ retry@0.12.0: {}
+
retry@0.13.1: {}
reusify@1.0.4: {}
+ rfdc@1.4.1: {}
+
rimraf@3.0.2:
dependencies:
glob: 7.2.3
+ rimraf@5.0.10:
+ dependencies:
+ glob: 10.4.5
+
+ rimraf@6.0.1:
+ dependencies:
+ glob: 11.0.0
+ package-json-from-dist: 1.0.1
+
rpc-websockets@9.0.4:
dependencies:
'@swc/helpers': 0.5.15
@@ -4204,9 +6116,9 @@ snapshots:
buffer: 6.0.3
eventemitter3: 5.0.1
uuid: 8.3.2
- ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)
+ ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
optionalDependencies:
- bufferutil: 4.0.8
+ bufferutil: 4.0.9
utf-8-validate: 5.0.10
run-parallel@1.2.0:
@@ -4215,33 +6127,114 @@ snapshots:
safe-buffer@5.2.1: {}
+ safe-regex-test@1.1.0:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ is-regex: 1.2.1
+
+ safer-buffer@2.1.2: {}
+
+ secure-json-parse@2.7.0: {}
+
+ semaphore@1.1.0: {}
+
semver@7.6.3: {}
+ send@0.19.0:
+ dependencies:
+ debug: 2.6.9
+ depd: 2.0.0
+ destroy: 1.2.0
+ encodeurl: 1.0.2
+ escape-html: 1.0.3
+ etag: 1.8.1
+ fresh: 0.5.2
+ http-errors: 2.0.0
+ mime: 1.6.0
+ ms: 2.1.3
+ on-finished: 2.4.1
+ range-parser: 1.2.1
+ statuses: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+
+ serve-static@1.16.2:
+ dependencies:
+ encodeurl: 2.0.0
+ escape-html: 1.0.3
+ parseurl: 1.3.3
+ send: 0.19.0
+ transitivePeerDependencies:
+ - supports-color
+
set-function-length@1.2.2:
dependencies:
define-data-property: 1.1.4
es-errors: 1.3.0
function-bind: 1.1.2
- get-intrinsic: 1.2.6
+ get-intrinsic: 1.2.7
gopd: 1.2.0
has-property-descriptors: 1.0.2
+ setprototypeof@1.2.0: {}
+
shebang-command@2.0.0:
dependencies:
shebang-regex: 3.0.0
shebang-regex@3.0.0: {}
- shiki@1.24.3:
+ shiki@1.26.1:
dependencies:
- '@shikijs/core': 1.24.3
- '@shikijs/engine-javascript': 1.24.3
- '@shikijs/engine-oniguruma': 1.24.3
- '@shikijs/types': 1.24.3
- '@shikijs/vscode-textmate': 9.3.1
+ '@shikijs/core': 1.26.1
+ '@shikijs/engine-javascript': 1.26.1
+ '@shikijs/engine-oniguruma': 1.26.1
+ '@shikijs/langs': 1.26.1
+ '@shikijs/themes': 1.26.1
+ '@shikijs/types': 1.26.1
+ '@shikijs/vscode-textmate': 10.0.1
'@types/hast': 3.0.4
- slash@3.0.0: {}
+ side-channel-list@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.3
+
+ side-channel-map@1.0.1:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.7
+ object-inspect: 1.13.3
+
+ side-channel-weakmap@1.0.2:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.7
+ object-inspect: 1.13.3
+ side-channel-map: 1.0.1
+
+ side-channel@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.3
+ side-channel-list: 1.0.0
+ side-channel-map: 1.0.1
+ side-channel-weakmap: 1.0.2
+
+ signal-exit@4.1.0: {}
+
+ slice-ansi@5.0.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ is-fullwidth-code-point: 4.0.0
+
+ slice-ansi@7.1.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ is-fullwidth-code-point: 5.0.0
snake-case@3.0.4:
dependencies:
@@ -4263,6 +6256,40 @@ snapshots:
space-separated-tokens@2.0.2: {}
+ spok@1.5.5:
+ dependencies:
+ ansicolors: 0.3.2
+ find-process: 1.4.8
+ transitivePeerDependencies:
+ - jiti
+ - supports-color
+
+ statuses@2.0.1: {}
+
+ string-argv@0.3.2: {}
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ string-width@5.1.2:
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.0
+
+ string-width@7.2.0:
+ dependencies:
+ emoji-regex: 10.4.0
+ get-east-asian-width: 1.3.0
+ strip-ansi: 7.1.0
+
+ string_decoder@1.3.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
stringify-entities@4.0.4:
dependencies:
character-entities-html4: 2.1.0
@@ -4272,8 +6299,18 @@ snapshots:
dependencies:
ansi-regex: 5.0.1
+ strip-ansi@7.1.0:
+ dependencies:
+ ansi-regex: 6.1.0
+
strip-bom@3.0.0: {}
+ strip-final-newline@3.0.0: {}
+
+ strip-hex-prefix@1.0.0:
+ dependencies:
+ is-hex-prefixed: 1.0.0
+
strip-json-comments@3.1.1: {}
superstruct@0.15.5: {}
@@ -4284,15 +6321,27 @@ snapshots:
dependencies:
has-flag: 4.0.0
+ swr@2.3.0(react@19.0.0):
+ dependencies:
+ dequal: 2.0.3
+ react: 19.0.0
+ use-sync-external-store: 1.4.0(react@19.0.0)
+
synckit@0.9.2:
dependencies:
'@pkgr/core': 0.1.1
tslib: 2.8.1
+ tdigest@0.1.2:
+ dependencies:
+ bintrees: 1.0.2
+
text-encoding-utf-8@1.0.2: {}
text-table@0.2.0: {}
+ throttleit@2.1.0: {}
+
through@2.3.8: {}
tiny-inflate@1.0.3: {}
@@ -4305,26 +6354,28 @@ snapshots:
toformat@2.0.0: {}
+ toidentifier@1.0.1: {}
+
toml@3.0.0: {}
tr46@0.0.3: {}
+ treeify@1.1.0: {}
+
trim-lines@3.0.1: {}
ts-api-utils@1.4.3(typescript@5.7.2):
dependencies:
typescript: 5.7.2
- ts-log@2.2.7: {}
-
- ts-node@10.9.2(@types/node@22.10.2)(typescript@5.7.2):
+ ts-node@10.9.2(@types/node@22.10.5)(typescript@5.7.2):
dependencies:
'@cspotcode/source-map-support': 0.8.1
'@tsconfig/node10': 1.0.11
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
- '@types/node': 22.10.2
+ '@types/node': 22.10.5
acorn: 8.14.0
acorn-walk: 8.3.4
arg: 4.1.3
@@ -4353,6 +6404,11 @@ snapshots:
type-fest@0.20.2: {}
+ type-is@1.6.18:
+ dependencies:
+ media-typer: 0.3.0
+ mime-types: 2.1.35
+
typedarray-to-buffer@3.1.5:
dependencies:
is-typedarray: 1.0.0
@@ -4362,9 +6418,20 @@ snapshots:
lunr: 2.3.9
markdown-it: 14.1.0
minimatch: 9.0.5
- shiki: 1.24.3
+ shiki: 1.26.1
typescript: 5.7.2
- yaml: 2.6.1
+ yaml: 2.7.0
+
+ typedoc@0.27.6(typescript@5.7.2):
+ dependencies:
+ '@gerrit0/mini-shiki': 1.26.1
+ lunr: 2.3.9
+ markdown-it: 14.1.0
+ minimatch: 9.0.5
+ typescript: 5.7.2
+ yaml: 2.7.0
+
+ typescript-collections@1.3.3: {}
typescript@4.9.5: {}
@@ -4406,23 +6473,37 @@ snapshots:
universalify@2.0.1: {}
+ unpipe@1.0.0: {}
+
uri-js@4.4.1:
dependencies:
punycode: 2.3.1
+ url-value-parser@2.2.0: {}
+
+ use-sync-external-store@1.4.0(react@19.0.0):
+ dependencies:
+ react: 19.0.0
+
utf-8-validate@5.0.10:
dependencies:
node-gyp-build: 4.8.4
optional: true
+ utf8@3.0.0: {}
+
+ util-deprecate@1.0.2: {}
+
util@0.12.5:
dependencies:
inherits: 2.0.4
is-arguments: 1.2.0
- is-generator-function: 1.0.10
+ is-generator-function: 1.1.0
is-typed-array: 1.1.15
which-typed-array: 1.1.18
+ utils-merge@1.0.1: {}
+
uuid@10.0.0: {}
uuid@8.3.2: {}
@@ -4431,6 +6512,8 @@ snapshots:
v8-compile-cache-lib@3.0.1: {}
+ vary@1.1.2: {}
+
vfile-message@4.0.2:
dependencies:
'@types/unist': 3.0.3
@@ -4445,6 +6528,17 @@ snapshots:
web-streams-polyfill@4.0.0-beta.3: {}
+ web3-utils@1.10.4:
+ dependencies:
+ '@ethereumjs/util': 8.1.0
+ bn.js: 5.2.1
+ ethereum-bloom-filters: 1.2.0
+ ethereum-cryptography: 2.2.1
+ ethjs-unit: 0.1.6
+ number-to-bn: 1.7.0
+ randombytes: 2.1.0
+ utf8: 3.0.0
+
webidl-conversions@3.0.1: {}
whatwg-url@5.0.0:
@@ -4467,22 +6561,42 @@ snapshots:
word-wrap@1.2.5: {}
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ wrap-ansi@8.1.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 5.1.2
+ strip-ansi: 7.1.0
+
+ wrap-ansi@9.0.0:
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 7.2.0
+ strip-ansi: 7.1.0
+
wrappy@1.0.2: {}
- ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10):
optionalDependencies:
- bufferutil: 4.0.8
+ bufferutil: 4.0.9
utf-8-validate: 5.0.10
- ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10):
+ ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10):
optionalDependencies:
- bufferutil: 4.0.8
+ bufferutil: 4.0.9
utf-8-validate: 5.0.10
xsalsa20@1.2.0: {}
yaml@2.6.1: {}
+ yaml@2.7.0: {}
+
yn@3.1.1: {}
yocto-queue@0.1.0: {}
@@ -4493,4 +6607,6 @@ snapshots:
zod@3.24.1: {}
+ zstddec@0.0.2: {}
+
zwitch@2.0.4: {}
diff --git a/src/actions/balance.ts b/src/actions/balance.ts
new file mode 100644
index 0000000..381b2a5
--- /dev/null
+++ b/src/actions/balance.ts
@@ -0,0 +1,62 @@
+import { PublicKey } from "@solana/web3.js";
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { get_balance } from "../tools";
+
+const balanceAction: Action = {
+ name: "BALANCE_ACTION",
+ similes: [
+ "check balance",
+ "get wallet balance",
+ "view balance",
+ "show balance",
+ "check token balance",
+ ],
+ description: `Get the balance of a Solana wallet or token account.
+ If you want to get the balance of your wallet, you don't need to provide the tokenAddress.
+ If no tokenAddress is provided, the balance will be in SOL.`,
+ examples: [
+ [
+ {
+ input: {},
+ output: {
+ status: "success",
+ balance: "100",
+ token: "SOL",
+ },
+ explanation: "Get SOL balance of the wallet",
+ },
+ ],
+ [
+ {
+ input: {
+ tokenAddress: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
+ },
+ output: {
+ status: "success",
+ balance: "1000",
+ token: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
+ },
+ explanation: "Get USDC token balance",
+ },
+ ],
+ ],
+ schema: z.object({
+ tokenAddress: z.string().optional(),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ const balance = await get_balance(
+ agent,
+ input.tokenAddress && new PublicKey(input.tokenAddress),
+ );
+
+ return {
+ status: "success",
+ balance: balance,
+ token: input.tokenAddress || "SOL",
+ };
+ },
+};
+
+export default balanceAction;
diff --git a/src/actions/compressedAirdrop.ts b/src/actions/compressedAirdrop.ts
new file mode 100644
index 0000000..107d352
--- /dev/null
+++ b/src/actions/compressedAirdrop.ts
@@ -0,0 +1,104 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { sendCompressedAirdrop } from "../tools";
+
+const compressedAirdropAction: Action = {
+ name: "COMPRESSED_AIRDROP",
+ similes: [
+ "ZK Compressed airdrop",
+ "Airdrop tokens with compression",
+ "Send compressed SPL airdrop",
+ "Airdrop to multiple recipients",
+ ],
+ description:
+ "Airdrop SPL tokens with ZK Compression (also known as airdropping tokens) to multiple recipients",
+ examples: [
+ [
+ {
+ input: {
+ mintAddress: "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN",
+ amount: 42,
+ decimals: 6,
+ recipients: [
+ "1nc1nerator11111111111111111111111111111111",
+ "BrFndAe111111111111111111111111111111111",
+ ],
+ priorityFeeInLamports: 30000,
+ shouldLog: true,
+ },
+ output: {
+ status: "success",
+ message: "Airdropped 42 tokens to 2 recipients.",
+ transactionHashes: ["4uyfBN...", "9XsF2N..."],
+ },
+ explanation:
+ "Airdrops 42 tokens (with 6 decimals) to 2 recipients, optionally logging progress to stdout.",
+ },
+ ],
+ ],
+ // Validate inputs with zod
+ schema: z.object({
+ mintAddress: z
+ .string()
+ .min(1)
+ .describe("Mint address of the token, e.g., 'JUPy...'"),
+ amount: z
+ .number()
+ .positive()
+ .describe("Number of tokens to airdrop per recipient, e.g., 42"),
+ decimals: z
+ .number()
+ .nonnegative()
+ .int()
+ .describe("Decimals of the token, e.g., 6"),
+ recipients: z
+ .array(z.string())
+ .nonempty()
+ .describe("Array of recipient addresses, e.g., ['1nc1n...']"),
+ priorityFeeInLamports: z
+ .number()
+ .optional()
+ .describe("Priority fee in lamports (default is 30_000)"),
+ shouldLog: z
+ .boolean()
+ .optional()
+ .describe("Whether to log progress to stdout (default is false)"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const {
+ mintAddress,
+ amount,
+ decimals,
+ recipients,
+ priorityFeeInLamports,
+ shouldLog,
+ } = input;
+
+ // Call your airdrop method on the SolanaAgentKit
+ const txs = await sendCompressedAirdrop(
+ mintAddress,
+ amount,
+ decimals,
+ recipients,
+ priorityFeeInLamports || 30_000,
+ shouldLog || false,
+ );
+
+ return {
+ status: "success",
+ message: `Airdropped ${amount} tokens to ${recipients.length} recipients.`,
+ transactionHashes: txs,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to airdrop tokens: ${error.message}`,
+ code: error.code || "UNKNOWN_ERROR",
+ };
+ }
+ },
+};
+
+export default compressedAirdropAction;
diff --git a/src/actions/createGibworkTask.ts b/src/actions/createGibworkTask.ts
new file mode 100644
index 0000000..12aa809
--- /dev/null
+++ b/src/actions/createGibworkTask.ts
@@ -0,0 +1,86 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { PublicKey } from "@solana/web3.js";
+import { create_gibwork_task } from "../tools";
+
+const createGibworkTaskAction: Action = {
+ name: "CREATE_GIBWORK_TASK",
+ similes: [
+ "create task",
+ "post job",
+ "create gig",
+ "post task",
+ "create work",
+ "new task on gibwork",
+ ],
+ description:
+ "Create a new task on the Gibwork platform with payment in SPL tokens",
+ examples: [
+ [
+ {
+ input: {
+ title: "Build a Solana dApp",
+ content: "Create a simple Solana dApp with React frontend",
+ requirements: "Experience with Rust and React",
+ tags: ["solana", "rust", "react"],
+ tokenMintAddress: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
+ tokenAmount: 100,
+ },
+ output: {
+ status: "success",
+ taskId: "task_123",
+ signature: "3YKpM1...",
+ message: "Successfully created task: Build a Solana dApp",
+ },
+ explanation: "Create a new task on Gibwork with 100 USDC payment",
+ },
+ ],
+ ],
+ schema: z.object({
+ title: z.string().min(1).describe("Title of the task"),
+ content: z.string().min(1).describe("Description of the task"),
+ requirements: z
+ .string()
+ .min(1)
+ .describe("Requirements to complete the task"),
+ tags: z
+ .array(z.string())
+ .min(1)
+ .describe("List of tags associated with the task"),
+ tokenMintAddress: z.string().describe("Token mint address for payment"),
+ tokenAmount: z.number().positive().describe("Payment amount for the task"),
+ payer: z
+ .string()
+ .optional()
+ .describe("Optional payer address (defaults to wallet address)"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const responseData = await create_gibwork_task(
+ agent,
+ input.title,
+ input.content,
+ input.requirements,
+ input.tags,
+ new PublicKey(input.tokenMintAddress),
+ input.tokenAmount,
+ input.payer ? new PublicKey(input.payer) : undefined,
+ );
+
+ return {
+ status: "success",
+ taskId: responseData.taskId,
+ signature: responseData.signature,
+ message: `Successfully created task: ${input.title}`,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to create task: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default createGibworkTaskAction;
diff --git a/src/actions/createImage.ts b/src/actions/createImage.ts
new file mode 100644
index 0000000..adbf55c
--- /dev/null
+++ b/src/actions/createImage.ts
@@ -0,0 +1,101 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { create_image } from "../tools/create_image";
+
+const createImageAction: Action = {
+ name: "CREATE_IMAGE",
+ similes: [
+ "generate image",
+ "create artwork",
+ "make image",
+ "generate artwork",
+ "create picture",
+ "generate picture",
+ ],
+ description:
+ "Create an AI-generated image based on a text prompt using OpenAI's DALL-E models",
+ examples: [
+ [
+ {
+ input: {
+ prompt: "A beautiful sunset over a mountain landscape",
+ model: "dall-e-3",
+ size: "1024x1024",
+ quality: "standard",
+ style: "natural",
+ },
+ output: {
+ status: "success",
+ imageUrl: "https://example.com/image.png",
+ message: "Successfully generated image",
+ },
+ explanation: "Generate an image of a sunset landscape using DALL-E 3",
+ },
+ ],
+ ],
+ schema: z.object({
+ prompt: z
+ .string()
+ .min(1)
+ .max(1000)
+ .describe("The text description of the image to generate"),
+ model: z
+ .enum(["dall-e-3"])
+ .default("dall-e-3")
+ .describe("The AI model to use for generation"),
+ size: z
+ .enum(["256x256", "512x512", "1024x1024", "1792x1024", "1024x1792"])
+ .default("1024x1024")
+ .describe("The size of the generated image"),
+ quality: z
+ .enum(["standard", "hd"])
+ .default("standard")
+ .describe("The quality level of the generated image"),
+ style: z
+ .enum(["natural", "vivid"])
+ .default("natural")
+ .describe("The style of the generated image"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ if (!agent.config.OPENAI_API_KEY) {
+ return {
+ status: "error",
+ message: "OpenAI API key not found in agent configuration",
+ };
+ }
+
+ const { prompt, model, size } = input;
+ const response = await create_image(agent, prompt, model, size);
+
+ return {
+ status: "success",
+ imageUrl: response.images[0].url,
+ message: "Successfully generated image",
+ };
+ } catch (error: any) {
+ // Handle specific OpenAI error types
+ if (error.response) {
+ const { status, data } = error.response;
+ if (status === 429) {
+ return {
+ status: "error",
+ message: "Rate limit exceeded. Please try again later.",
+ };
+ }
+ return {
+ status: "error",
+ message: `OpenAI API error: ${data.error?.message || error.message}`,
+ };
+ }
+
+ return {
+ status: "error",
+ message: `Failed to generate image: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default createImageAction;
diff --git a/src/actions/createOpenbookMarket.ts b/src/actions/createOpenbookMarket.ts
new file mode 100644
index 0000000..ae76559
--- /dev/null
+++ b/src/actions/createOpenbookMarket.ts
@@ -0,0 +1,80 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { PublicKey } from "@solana/web3.js";
+import { openbookCreateMarket } from "../tools";
+
+const createOpenbookMarketAction: Action = {
+ name: "CREATE_OPENBOOK_MARKET",
+ similes: [
+ "create openbook market",
+ "setup trading market",
+ "new openbook market",
+ "create trading pair",
+ "setup dex market",
+ "new trading market",
+ ],
+ description: "Create a new trading market on Openbook DEX",
+ examples: [
+ [
+ {
+ input: {
+ baseMint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", // USDC
+ quoteMint: "So11111111111111111111111111111111111111112", // SOL
+ lotSize: 1,
+ tickSize: 0.01,
+ },
+ output: {
+ status: "success",
+ signatures: ["2ZE7Rz...", "3YKpM1..."],
+ message: "Successfully created Openbook market",
+ },
+ explanation:
+ "Create a new USDC/SOL market on Openbook with default lot and tick sizes",
+ },
+ ],
+ ],
+ schema: z.object({
+ baseMint: z.string().min(1).describe("The base token's mint address"),
+ quoteMint: z.string().min(1).describe("The quote token's mint address"),
+ lotSize: z
+ .number()
+ .positive()
+ .default(1)
+ .describe("The minimum order size (lot size)"),
+ tickSize: z
+ .number()
+ .positive()
+ .default(0.01)
+ .describe("The minimum price increment (tick size)"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const baseMint = new PublicKey(input.baseMint);
+ const quoteMint = new PublicKey(input.quoteMint);
+ const lotSize = input.lotSize || 1;
+ const tickSize = input.tickSize || 0.01;
+
+ const signatures = await openbookCreateMarket(
+ agent,
+ baseMint,
+ quoteMint,
+ lotSize,
+ tickSize,
+ );
+
+ return {
+ status: "success",
+ signatures,
+ message: "Successfully created Openbook market",
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to create Openbook market: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default createOpenbookMarketAction;
diff --git a/src/actions/createOrcaSingleSidedWhirlpool.ts b/src/actions/createOrcaSingleSidedWhirlpool.ts
new file mode 100644
index 0000000..f53c881
--- /dev/null
+++ b/src/actions/createOrcaSingleSidedWhirlpool.ts
@@ -0,0 +1,116 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { PublicKey } from "@solana/web3.js";
+import { Decimal } from "decimal.js";
+import { orcaCreateSingleSidedLiquidityPool } from "../tools";
+
+// Fee tiers mapping from the original tool
+const FEE_TIERS = {
+ 0.01: 1,
+ 0.02: 2,
+ 0.04: 4,
+ 0.05: 8,
+ 0.16: 16,
+ 0.3: 64,
+ 0.65: 96,
+ 1.0: 128,
+ 2.0: 256,
+} as const;
+
+const createOrcaSingleSidedWhirlpoolAction: Action = {
+ name: "CREATE_ORCA_SINGLE_SIDED_WHIRLPOOL",
+ similes: [
+ "create orca whirlpool",
+ "setup orca single sided pool",
+ "initialize orca whirlpool",
+ "create orca concentrated pool",
+ "setup orca concentrated liquidity",
+ "create orca trading pair",
+ ],
+ description:
+ "Create a new single-sided whirlpool on Orca with concentrated liquidity",
+ examples: [
+ [
+ {
+ input: {
+ depositTokenAmount: "1000000000000", // 1 million tokens with 6 decimals
+ depositTokenMint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", // USDC
+ otherTokenMint: "So11111111111111111111111111111111111111112", // SOL
+ initialPrice: "0.001",
+ maxPrice: "5.0",
+ feeTier: 0.3,
+ },
+ output: {
+ status: "success",
+ signature: "2ZE7Rz...",
+ message: "Successfully created Orca single-sided whirlpool",
+ },
+ explanation:
+ "Create a USDC/SOL whirlpool with 1M USDC initial liquidity",
+ },
+ ],
+ ],
+ schema: z.object({
+ depositTokenAmount: z
+ .string()
+ .min(1)
+ .describe(
+ "The amount of deposit token to provide as liquidity (including decimals)",
+ ),
+ depositTokenMint: z
+ .string()
+ .min(1)
+ .describe("The mint address of the token being deposited"),
+ otherTokenMint: z
+ .string()
+ .min(1)
+ .describe("The mint address of the other token in the pool"),
+ initialPrice: z
+ .string()
+ .min(1)
+ .describe("Initial price of deposit token in terms of the other token"),
+ maxPrice: z
+ .string()
+ .min(1)
+ .describe("Maximum price at which liquidity is added"),
+ feeTier: z
+ .number()
+ .refine((val) => val in FEE_TIERS, "Invalid fee tier")
+ .describe("Fee tier percentage for the pool (e.g., 0.3 for 0.3%)"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const depositTokenAmount = Number(input.depositTokenAmount);
+ const depositTokenMint = new PublicKey(input.depositTokenMint);
+ const otherTokenMint = new PublicKey(input.otherTokenMint);
+ const initialPrice = new Decimal(input.initialPrice);
+ const maxPrice = new Decimal(input.maxPrice);
+ const feeTier = input.feeTier;
+
+ // Create the whirlpool
+ const signature = await orcaCreateSingleSidedLiquidityPool(
+ agent,
+ depositTokenAmount,
+ depositTokenMint,
+ otherTokenMint,
+ initialPrice,
+ maxPrice,
+ feeTier,
+ );
+
+ return {
+ status: "success",
+ signature,
+ message: "Successfully created Orca single-sided whirlpool",
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to create whirlpool: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default createOrcaSingleSidedWhirlpoolAction;
diff --git a/src/actions/deployCollection.ts b/src/actions/deployCollection.ts
new file mode 100644
index 0000000..1ca5e14
--- /dev/null
+++ b/src/actions/deployCollection.ts
@@ -0,0 +1,78 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { deploy_collection } from "../tools";
+
+interface CollectionOptions {
+ name: string;
+ uri: string;
+ royaltyBasisPoints?: number;
+}
+
+const deployCollectionAction: Action = {
+ name: "DEPLOY_COLLECTION",
+ similes: [
+ "create collection",
+ "launch collection",
+ "deploy nft collection",
+ "create nft collection",
+ "mint collection",
+ ],
+ description: `Deploy a new NFT collection on Solana blockchain.`,
+ examples: [
+ [
+ {
+ input: {
+ name: "My Collection",
+ uri: "https://example.com/collection.json",
+ royaltyBasisPoints: 500,
+ },
+ output: {
+ status: "success",
+ message: "Collection deployed successfully",
+ collectionAddress: "7nE9GvcwsqzYxmJLSrYmSB1V1YoJWVK1KWzAcWAzjXkN",
+ name: "My Collection",
+ },
+ explanation: "Deploy an NFT collection with 5% royalty",
+ },
+ ],
+ [
+ {
+ input: {
+ name: "Basic Collection",
+ uri: "https://example.com/basic.json",
+ },
+ output: {
+ status: "success",
+ message: "Collection deployed successfully",
+ collectionAddress: "8nE9GvcwsqzYxmJLSrYmSB1V1YoJWVK1KWzAcWAzjXkM",
+ name: "Basic Collection",
+ },
+ explanation: "Deploy a basic NFT collection without royalties",
+ },
+ ],
+ ],
+ schema: z.object({
+ name: z.string().min(1, "Name is required"),
+ uri: z.string().url("URI must be a valid URL"),
+ royaltyBasisPoints: z.number().min(0).max(10000).optional(),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ const options: CollectionOptions = {
+ name: input.name,
+ uri: input.uri,
+ royaltyBasisPoints: input.royaltyBasisPoints,
+ };
+
+ const result = await deploy_collection(agent, options);
+
+ return {
+ status: "success",
+ message: "Collection deployed successfully",
+ collectionAddress: result.collectionAddress.toString(),
+ name: input.name,
+ };
+ },
+};
+
+export default deployCollectionAction;
diff --git a/src/actions/deployToken.ts b/src/actions/deployToken.ts
new file mode 100644
index 0000000..3a3f25d
--- /dev/null
+++ b/src/actions/deployToken.ts
@@ -0,0 +1,83 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { deploy_token } from "../tools";
+
+const deployTokenAction: Action = {
+ name: "DEPLOY_TOKEN",
+ similes: [
+ "create token",
+ "launch token",
+ "deploy new token",
+ "create new token",
+ "mint token",
+ ],
+ description:
+ "Deploy a new SPL token on the Solana blockchain with specified parameters",
+ examples: [
+ [
+ {
+ input: {
+ name: "My Token",
+ uri: "https://example.com/token.json",
+ symbol: "MTK",
+ decimals: 9,
+ initialSupply: 1000000,
+ },
+ output: {
+ mint: "7nE9GvcwsqzYxmJLSrYmSB1V1YoJWVK1KWzAcWAzjXkN",
+ status: "success",
+ message: "Token deployed successfully",
+ },
+ explanation: "Deploy a token with initial supply and metadata",
+ },
+ ],
+ [
+ {
+ input: {
+ name: "Basic Token",
+ uri: "https://example.com/basic.json",
+ symbol: "BASIC",
+ },
+ output: {
+ mint: "8nE9GvcwsqzYxmJLSrYmSB1V1YoJWVK1KWzAcWAzjXkM",
+ status: "success",
+ message: "Token deployed successfully",
+ },
+ explanation: "Deploy a basic token with minimal parameters",
+ },
+ ],
+ ],
+ schema: z.object({
+ name: z.string().min(1, "Name is required"),
+ uri: z.string().url("URI must be a valid URL"),
+ symbol: z.string().min(1, "Symbol is required"),
+ decimals: z.number().optional(),
+ initialSupply: z.number().optional(),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const result = await deploy_token(
+ agent,
+ input.name,
+ input.uri,
+ input.symbol,
+ input.decimals,
+ input.initialSupply,
+ );
+
+ return {
+ mint: result.mint.toString(),
+ status: "success",
+ message: "Token deployed successfully",
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Token deployment failed: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default deployTokenAction;
diff --git a/src/actions/fetchPrice.ts b/src/actions/fetchPrice.ts
new file mode 100644
index 0000000..b232671
--- /dev/null
+++ b/src/actions/fetchPrice.ts
@@ -0,0 +1,57 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { PublicKey } from "@solana/web3.js";
+import { fetchPrice } from "../tools";
+
+const fetchPriceAction: Action = {
+ name: "FETCH_PRICE",
+ similes: [
+ "get token price",
+ "check price",
+ "token value",
+ "price check",
+ "get price in usd",
+ ],
+ description:
+ "Fetch the current price of a Solana token in USDC using Jupiter API",
+ examples: [
+ [
+ {
+ input: {
+ tokenAddress: "So11111111111111111111111111111111111111112",
+ },
+ output: {
+ status: "success",
+ price: "23.45",
+ message: "Current price: $23.45 USDC",
+ },
+ explanation: "Get the current price of SOL token in USDC",
+ },
+ ],
+ ],
+ schema: z.object({
+ tokenAddress: z
+ .string()
+ .describe("The mint address of the token to fetch the price for"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const tokenId = new PublicKey(input.tokenAddress);
+ const price = await fetchPrice(tokenId);
+
+ return {
+ status: "success",
+ price,
+ message: `Current price: $${price} USDC`,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to fetch price: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default fetchPriceAction;
diff --git a/src/actions/getAllDomainsTLDs.ts b/src/actions/getAllDomainsTLDs.ts
new file mode 100644
index 0000000..d8d2b64
--- /dev/null
+++ b/src/actions/getAllDomainsTLDs.ts
@@ -0,0 +1,52 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { getAllDomainsTLDs } from "../tools";
+
+const getAllDomainsTLDsAction: Action = {
+ name: "GET_ALL_TLDS",
+ similes: [
+ "list domain tlds",
+ "get domain extensions",
+ "fetch domain tlds",
+ "get top level domains",
+ "list available tlds",
+ "get domain suffixes",
+ ],
+ description:
+ "Get a list of all available top-level domains (TLDs) for Solana domains",
+ examples: [
+ [
+ {
+ input: {},
+ output: {
+ status: "success",
+ tlds: [".sol", ".abc", ".backpack", ".bonk"],
+ message: "Successfully retrieved all domain TLDs",
+ },
+ explanation:
+ "Get a list of all available TLDs that can be used for Solana domains",
+ },
+ ],
+ ],
+ schema: z.object({}),
+ handler: async (agent: SolanaAgentKit) => {
+ try {
+ // Get all domain TLDs
+ const tlds = await getAllDomainsTLDs(agent);
+
+ return {
+ status: "success",
+ tlds,
+ message: "Successfully retrieved all domain TLDs",
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to get domain TLDs: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default getAllDomainsTLDsAction;
diff --git a/src/actions/getAllRegisteredAllDomains.ts b/src/actions/getAllRegisteredAllDomains.ts
new file mode 100644
index 0000000..a4d5688
--- /dev/null
+++ b/src/actions/getAllRegisteredAllDomains.ts
@@ -0,0 +1,70 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { getAllRegisteredAllDomains } from "../tools";
+
+const getAllRegisteredAllDomainsAction: Action = {
+ name: "GET_ALL_REGISTERED_ALL_DOMAINS",
+ similes: [
+ "list registered domains",
+ "get all domains",
+ "fetch registered domains",
+ "get domain list",
+ "list active domains",
+ "get registered names",
+ ],
+ description: "Get a list of all registered domains across all TLDs",
+ examples: [
+ [
+ {
+ input: {
+ limit: 100,
+ offset: 0,
+ },
+ output: {
+ status: "success",
+ domains: ["solana.sol", "bonk.abc", "wallet.backpack"],
+ total: 3,
+ message: "Successfully retrieved registered domains",
+ },
+ explanation: "Get the first 100 registered domains across all TLDs",
+ },
+ ],
+ ],
+ schema: z.object({
+ limit: z
+ .number()
+ .positive()
+ .max(1000)
+ .default(100)
+ .describe("Maximum number of domains to return"),
+ offset: z
+ .number()
+ .nonnegative()
+ .default(0)
+ .describe("Number of domains to skip"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const limit = input.limit || 100;
+ const offset = input.offset || 0;
+
+ // Get all registered domains
+ const domains = await getAllRegisteredAllDomains(agent);
+
+ return {
+ status: "success",
+ domains: domains.slice(offset, offset + limit),
+ total: domains.length,
+ message: "Successfully retrieved registered domains",
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to get registered domains: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default getAllRegisteredAllDomainsAction;
diff --git a/src/actions/getMainAllDomainsDomain.ts b/src/actions/getMainAllDomainsDomain.ts
new file mode 100644
index 0000000..1071050
--- /dev/null
+++ b/src/actions/getMainAllDomainsDomain.ts
@@ -0,0 +1,67 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { PublicKey } from "@solana/web3.js";
+import { getMainAllDomainsDomain } from "../tools";
+
+const getMainAllDomainsDomainAction: Action = {
+ name: "GET_MAIN_ALL_DOMAINS_DOMAIN",
+ similes: [
+ "get main domain",
+ "fetch primary domain",
+ "get default domain",
+ "get main address name",
+ "get primary name",
+ "get main domain name",
+ ],
+ description: "Get the main domain associated with a wallet address",
+ examples: [
+ [
+ {
+ input: {
+ address: "7nxQB...",
+ },
+ output: {
+ status: "success",
+ domain: "solana.sol",
+ message: "Successfully retrieved main domain",
+ },
+ explanation: "Get the main domain name for a given wallet address",
+ },
+ ],
+ ],
+ schema: z.object({
+ address: z
+ .string()
+ .min(1)
+ .describe("The wallet address to get the main domain for"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const mainDomain = await getMainAllDomainsDomain(
+ agent,
+ new PublicKey(input.address),
+ );
+
+ if (!mainDomain) {
+ return {
+ status: "error",
+ message: "No main domain found for this address",
+ };
+ }
+
+ return {
+ status: "success",
+ domain: mainDomain,
+ message: "Successfully retrieved main domain",
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to get main domain: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default getMainAllDomainsDomainAction;
diff --git a/src/actions/getOwnedAllDomains.ts b/src/actions/getOwnedAllDomains.ts
new file mode 100644
index 0000000..e9f294a
--- /dev/null
+++ b/src/actions/getOwnedAllDomains.ts
@@ -0,0 +1,63 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { PublicKey } from "@solana/web3.js";
+import { getOwnedAllDomains } from "../tools";
+
+const getOwnedAllDomainsAction: Action = {
+ name: "GET_OWNED_ALL_DOMAINS",
+ similes: [
+ "list owned domains",
+ "get my domains",
+ "fetch wallet domains",
+ "get owned names",
+ "list my domains",
+ "get address domains",
+ ],
+ description:
+ "Get all domains owned by a specific wallet address across all TLDs",
+ examples: [
+ [
+ {
+ input: {
+ address: "7nxQB...",
+ },
+ output: {
+ status: "success",
+ domains: ["solana.sol", "wallet.abc", "user.backpack"],
+ total: 3,
+ message: "Successfully retrieved owned domains",
+ },
+ explanation: "Get all domain names owned by a specific wallet address",
+ },
+ ],
+ ],
+ schema: z.object({
+ address: z
+ .string()
+ .min(1)
+ .describe("The wallet address to get owned domains for"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const address = new PublicKey(input.address);
+
+ // Get owned domains
+ const domains = await getOwnedAllDomains(agent, address);
+
+ return {
+ status: "success",
+ domains,
+ total: domains.length,
+ message: `Successfully retrieved ${domains.length} owned domain${domains.length === 1 ? "" : "s"}`,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to get owned domains: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default getOwnedAllDomainsAction;
diff --git a/src/actions/getOwnedDomainsForTLD.ts b/src/actions/getOwnedDomainsForTLD.ts
new file mode 100644
index 0000000..4343488
--- /dev/null
+++ b/src/actions/getOwnedDomainsForTLD.ts
@@ -0,0 +1,63 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { getOwnedDomainsForTLD } from "../tools";
+
+const getOwnedDomainsForTLDAction: Action = {
+ name: "GET_OWNED_DOMAINS_FOR_TLD",
+ similes: [
+ "list owned domains for tld",
+ "get my domains for extension",
+ "fetch wallet domains by tld",
+ "get owned names by extension",
+ "list my domains by tld",
+ "get address domains for tld",
+ ],
+ description:
+ "Get all domains owned by a specific wallet address for a given top-level domain (TLD)",
+ examples: [
+ [
+ {
+ input: {
+ tld: "sol",
+ },
+ output: {
+ status: "success",
+ domains: ["solana.sol", "wallet.sol", "user.sol"],
+ total: 3,
+ message: "Successfully retrieved owned domains for .sol",
+ },
+ explanation:
+ "Get all .sol domain names owned by a specific wallet address",
+ },
+ ],
+ ],
+ schema: z.object({
+ tld: z
+ .string()
+ .min(1)
+ .describe("The top-level domain to filter by (e.g., 'sol', 'abc')"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const tld = input.tld.toLowerCase();
+
+ // Get owned domains for TLD
+ const domains = await getOwnedDomainsForTLD(agent, tld);
+
+ return {
+ status: "success",
+ domains,
+ total: domains.length,
+ message: `Successfully retrieved ${domains.length} owned domain${domains.length === 1 ? "" : "s"} for .${tld}`,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to get owned domains: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default getOwnedDomainsForTLDAction;
diff --git a/src/actions/getPrimaryDomain.ts b/src/actions/getPrimaryDomain.ts
new file mode 100644
index 0000000..2655dae
--- /dev/null
+++ b/src/actions/getPrimaryDomain.ts
@@ -0,0 +1,57 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { PublicKey } from "@solana/web3.js";
+import { getPrimaryDomain } from "../tools";
+
+const getPrimaryDomainAction: Action = {
+ name: "GET_PRIMARY_DOMAIN",
+ similes: [
+ "get primary domain",
+ "lookup primary domain",
+ "check primary domain",
+ "find primary domain",
+ "get main domain",
+ "primary sol domain",
+ ],
+ description:
+ "Get the primary .sol domain associated with a Solana wallet address",
+ examples: [
+ [
+ {
+ input: {
+ account: "7nxQB...",
+ },
+ output: {
+ status: "success",
+ domain: "vitalik.sol",
+ message: "Primary domain: vitalik.sol",
+ },
+ explanation: "Get the primary .sol domain for a wallet address",
+ },
+ ],
+ ],
+ schema: z.object({
+ account: z.string().min(1).describe("The Solana wallet address to lookup"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const account = new PublicKey(input.account);
+
+ const response = await getPrimaryDomain(agent, account);
+
+ return {
+ status: "success",
+ domain: response,
+ message: `Primary domain: ${response}`,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to get primary domain: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default getPrimaryDomainAction;
diff --git a/src/actions/getTPS.ts b/src/actions/getTPS.ts
new file mode 100644
index 0000000..490bfb4
--- /dev/null
+++ b/src/actions/getTPS.ts
@@ -0,0 +1,48 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { getTPS } from "../tools";
+
+const getTPSAction: Action = {
+ name: "GET_TPS",
+ similes: [
+ "get transactions per second",
+ "check network speed",
+ "network performance",
+ "transaction throughput",
+ "network tps",
+ ],
+ description:
+ "Get the current transactions per second (TPS) of the Solana network",
+ examples: [
+ [
+ {
+ input: {},
+ output: {
+ status: "success",
+ tps: 3500,
+ message: "Current network TPS: 3500",
+ },
+ explanation: "Get the current TPS of the Solana network",
+ },
+ ],
+ ],
+ schema: z.object({}), // No input parameters required
+ handler: async (agent: SolanaAgentKit, _input: Record) => {
+ try {
+ const response = await getTPS(agent);
+ return {
+ status: "success",
+ response,
+ message: `Current network TPS: ${response}`,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to get TPS: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default getTPSAction;
diff --git a/src/actions/getTokenData.ts b/src/actions/getTokenData.ts
new file mode 100644
index 0000000..bf820dc
--- /dev/null
+++ b/src/actions/getTokenData.ts
@@ -0,0 +1,98 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { PublicKey } from "@solana/web3.js";
+import { JupiterTokenData } from "../types";
+import { getTokenAddressFromTicker, getTokenDataByAddress } from "../tools";
+
+const getTokenDataAction: Action = {
+ name: "GET_TOKEN_DATA",
+ similes: [
+ "get token info",
+ "token details",
+ "lookup token",
+ "find token",
+ "token data",
+ ],
+ description: "Get token data from either a token address or ticker symbol",
+ examples: [
+ [
+ {
+ input: {
+ address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
+ },
+ output: {
+ status: "success",
+ token: {
+ name: "USD Coin",
+ symbol: "USDC",
+ address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
+ decimals: 6,
+ },
+ },
+ explanation: "Get token data using the token's address",
+ },
+ ],
+ [
+ {
+ input: {
+ ticker: "SOL",
+ },
+ output: {
+ status: "success",
+ token: {
+ name: "Wrapped SOL",
+ symbol: "SOL",
+ address: "So11111111111111111111111111111111111111112",
+ decimals: 9,
+ },
+ },
+ explanation: "Get token data using the token's ticker symbol",
+ },
+ ],
+ ],
+ schema: z
+ .object({
+ address: z.string().optional().describe("The token's mint address"),
+ ticker: z.string().optional().describe("The token's ticker symbol"),
+ })
+ .refine((data) => data.address || data.ticker, {
+ message: "Either address or ticker must be provided",
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ let tokenData: JupiterTokenData | undefined;
+ if (input.address) {
+ tokenData = await getTokenDataByAddress(new PublicKey(input.address));
+ } else if (input.ticker) {
+ const address = await getTokenAddressFromTicker(input.ticker);
+ if (address) {
+ tokenData = await getTokenDataByAddress(new PublicKey(address));
+ }
+ }
+ if (!tokenData) {
+ return {
+ status: "error",
+ message: "Token not found or not verified",
+ };
+ }
+ return {
+ status: "success",
+ token: {
+ name: tokenData.name,
+ symbol: tokenData.symbol,
+ address: tokenData.address,
+ decimals: tokenData.decimals,
+ logoURI: tokenData.logoURI,
+ },
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to get token data: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default getTokenDataAction;
diff --git a/src/actions/getWalletAddress.ts b/src/actions/getWalletAddress.ts
new file mode 100644
index 0000000..7cd87c6
--- /dev/null
+++ b/src/actions/getWalletAddress.ts
@@ -0,0 +1,29 @@
+import { z } from "zod";
+import { SolanaAgentKit } from "..";
+import { get_wallet_address } from "../tools";
+import { Action } from "../types/action";
+
+const getWalletAddressAction: Action = {
+ name: "GET_WALLET_ADDRESS",
+ similes: ["wallet address", "address", "wallet"],
+ description: "Get wallet address of the agent",
+ examples: [
+ [
+ {
+ input: {},
+ output: {
+ status: "success",
+ address: "0x1234567890abcdef",
+ },
+ explanation: "The agent's wallet address is 0x1234567890abcdef",
+ },
+ ],
+ ],
+ schema: z.object({}),
+ handler: async (agent: SolanaAgentKit) => ({
+ status: "success",
+ address: get_wallet_address(agent),
+ }),
+};
+
+export default getWalletAddressAction;
diff --git a/src/actions/index.ts b/src/actions/index.ts
new file mode 100644
index 0000000..60e7df4
--- /dev/null
+++ b/src/actions/index.ts
@@ -0,0 +1,66 @@
+import deployTokenAction from "./deployToken";
+import balanceAction from "./balance";
+import transferAction from "./transfer";
+import deployCollectionAction from "./deployCollection";
+import mintNFTAction from "./mintNFT";
+import tradeAction from "./trade";
+import requestFundsAction from "./requestFunds";
+import resolveDomainAction from "./resolveDomain";
+import getTokenDataAction from "./getTokenData";
+import getTPSAction from "./getTPS";
+import fetchPriceAction from "./fetchPrice";
+import stakeWithJupAction from "./stakeWithJup";
+import stakeWithSolayerAction from "./stakeWithSolayer";
+import registerDomainAction from "./registerDomain";
+import lendAssetAction from "./lendAsset";
+import createGibworkTaskAction from "./createGibworkTask";
+import resolveSolDomainAction from "./resolveSolDomain";
+import pythFetchPriceAction from "./pythFetchPrice";
+import getOwnedDomainsForTLDAction from "./getOwnedDomainsForTLD";
+import getPrimaryDomainAction from "./getPrimaryDomain";
+import getAllDomainsTLDsAction from "./getAllDomainsTLDs";
+import getOwnedAllDomainsAction from "./getOwnedAllDomains";
+import createImageAction from "./createImage";
+import getMainAllDomainsDomainAction from "./getMainAllDomainsDomain";
+import getAllRegisteredAllDomainsAction from "./getAllRegisteredAllDomains";
+import raydiumCreateCpmmAction from "./raydiumCreateCpmm";
+import raydiumCreateAmmV4Action from "./raydiumCreateAmmV4";
+import createOrcaSingleSidedWhirlpoolAction from "./createOrcaSingleSidedWhirlpool";
+import launchPumpfunTokenAction from "./launchPumpfunToken";
+import getWalletAddressAction from "./getWalletAddress";
+
+export const ACTIONS = {
+ WALLET_ADDRESS_ACTION: getWalletAddressAction,
+ DEPLOY_TOKEN_ACTION: deployTokenAction,
+ BALANCE_ACTION: balanceAction,
+ TRANSFER_ACTION: transferAction,
+ DEPLOY_COLLECTION_ACTION: deployCollectionAction,
+ MINT_NFT_ACTION: mintNFTAction,
+ TRADE_ACTION: tradeAction,
+ REQUEST_FUNDS_ACTION: requestFundsAction,
+ RESOLVE_DOMAIN_ACTION: resolveDomainAction,
+ GET_TOKEN_DATA_ACTION: getTokenDataAction,
+ GET_TPS_ACTION: getTPSAction,
+ FETCH_PRICE_ACTION: fetchPriceAction,
+ STAKE_WITH_JUP_ACTION: stakeWithJupAction,
+ STAKE_WITH_SOLAYER_ACTION: stakeWithSolayerAction,
+ REGISTER_DOMAIN_ACTION: registerDomainAction,
+ LEND_ASSET_ACTION: lendAssetAction,
+ CREATE_GIBWORK_TASK_ACTION: createGibworkTaskAction,
+ RESOLVE_SOL_DOMAIN_ACTION: resolveSolDomainAction,
+ PYTH_FETCH_PRICE_ACTION: pythFetchPriceAction,
+ GET_OWNED_DOMAINS_FOR_TLD_ACTION: getOwnedDomainsForTLDAction,
+ GET_PRIMARY_DOMAIN_ACTION: getPrimaryDomainAction,
+ GET_ALL_DOMAINS_TLDS_ACTION: getAllDomainsTLDsAction,
+ GET_OWNED_ALL_DOMAINS_ACTION: getOwnedAllDomainsAction,
+ CREATE_IMAGE_ACTION: createImageAction,
+ GET_MAIN_ALL_DOMAINS_DOMAIN_ACTION: getMainAllDomainsDomainAction,
+ GET_ALL_REGISTERED_ALL_DOMAINS_ACTION: getAllRegisteredAllDomainsAction,
+ RAYDIUM_CREATE_CPMM_ACTION: raydiumCreateCpmmAction,
+ RAYDIUM_CREATE_AMM_V4_ACTION: raydiumCreateAmmV4Action,
+ CREATE_ORCA_SINGLE_SIDED_WHIRLPOOL_ACTION:
+ createOrcaSingleSidedWhirlpoolAction,
+ LAUNCH_PUMPFUN_TOKEN_ACTION: launchPumpfunTokenAction,
+};
+
+export type { Action, ActionExample, Handler } from "../types/action";
diff --git a/src/actions/launchPumpfunToken.ts b/src/actions/launchPumpfunToken.ts
new file mode 100644
index 0000000..3c23394
--- /dev/null
+++ b/src/actions/launchPumpfunToken.ts
@@ -0,0 +1,106 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { launchPumpFunToken } from "../tools";
+
+const launchPumpfunTokenAction: Action = {
+ name: "LAUNCH_PUMPFUN_TOKEN",
+ similes: [
+ "create pumpfun token",
+ "launch token on pumpfun",
+ "deploy pumpfun token",
+ "create meme token",
+ "launch memecoin",
+ "create pump token",
+ ],
+ description:
+ "Launch a new token on Pump.fun with customizable metadata and initial liquidity",
+ examples: [
+ [
+ {
+ input: {
+ tokenName: "Sample Token",
+ tokenTicker: "SMPL",
+ description: "A sample token for demonstration",
+ imageUrl: "https://example.com/token.png",
+ twitter: "@sampletoken",
+ telegram: "t.me/sampletoken",
+ website: "https://sampletoken.com",
+ initialLiquiditySOL: 0.1,
+ slippageBps: 10,
+ priorityFee: 0.0001,
+ },
+ output: {
+ status: "success",
+ signature: "2ZE7Rz...",
+ mint: "7nxQB...",
+ metadataUri: "https://arweave.net/...",
+ message: "Successfully launched token on Pump.fun",
+ },
+ explanation:
+ "Launch a new token with custom metadata and 0.1 SOL initial liquidity",
+ },
+ ],
+ ],
+ schema: z.object({
+ tokenName: z.string().min(1).max(32).describe("Name of the token"),
+ tokenTicker: z
+ .string()
+ .min(2)
+ .max(10)
+ .describe("Ticker symbol of the token"),
+ description: z
+ .string()
+ .min(1)
+ .max(1000)
+ .describe("Description of the token"),
+ imageUrl: z.string().url().describe("URL of the token image"),
+ twitter: z.string().optional().describe("Twitter handle (optional)"),
+ telegram: z.string().optional().describe("Telegram group link (optional)"),
+ website: z.string().url().optional().describe("Website URL (optional)"),
+ initialLiquiditySOL: z
+ .number()
+ .min(0.0001)
+ .default(0.0001)
+ .describe("Initial liquidity in SOL"),
+ slippageBps: z
+ .number()
+ .min(1)
+ .max(1000)
+ .default(5)
+ .describe("Slippage tolerance in basis points"),
+ priorityFee: z
+ .number()
+ .min(0.00001)
+ .default(0.00005)
+ .describe("Priority fee in SOL"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const { tokenName, tokenTicker, description, imageUrl } = input;
+ const result = await launchPumpFunToken(
+ agent,
+ tokenName,
+ tokenTicker,
+ description,
+ imageUrl,
+ input,
+ );
+
+ return {
+ status: "success",
+ signature: result.signature,
+ mint: result.mint,
+ metadataUri: result.metadataUri,
+ message: "Successfully launched token on Pump.fun",
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to launch token: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default launchPumpfunTokenAction;
diff --git a/src/actions/lendAsset.ts b/src/actions/lendAsset.ts
new file mode 100644
index 0000000..9ceb20e
--- /dev/null
+++ b/src/actions/lendAsset.ts
@@ -0,0 +1,55 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { lendAsset } from "../tools";
+
+const lendAssetAction: Action = {
+ name: "LEND_ASSET",
+ similes: [
+ "lend usdc",
+ "deposit for yield",
+ "earn yield",
+ "lend with lulo",
+ "deposit usdc",
+ "lending",
+ ],
+ description: "Lend USDC tokens to earn yield using Lulo protocol",
+ examples: [
+ [
+ {
+ input: {
+ amount: 100,
+ },
+ output: {
+ status: "success",
+ signature: "4xKpN2...",
+ message: "Successfully lent 100 USDC",
+ },
+ explanation: "Lend 100 USDC to earn yield on Lulo",
+ },
+ ],
+ ],
+ schema: z.object({
+ amount: z.number().positive().describe("Amount of USDC to lend"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const amount = input.amount as number;
+
+ const response = await lendAsset(agent, amount);
+
+ return {
+ status: "success",
+ signature: response,
+ message: `Successfully lent ${amount} USDC`,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Lending failed: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default lendAssetAction;
diff --git a/src/actions/mintNFT.ts b/src/actions/mintNFT.ts
new file mode 100644
index 0000000..f04cfb7
--- /dev/null
+++ b/src/actions/mintNFT.ts
@@ -0,0 +1,90 @@
+import { PublicKey } from "@solana/web3.js";
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { mintCollectionNFT } from "../tools";
+
+const mintNFTAction: Action = {
+ name: "MINT_NFT",
+ similes: [
+ "mint nft",
+ "create nft",
+ "mint token",
+ "create token",
+ "add nft to collection",
+ ],
+ description: `Mint a new NFT in a collection on Solana blockchain.`,
+ examples: [
+ [
+ {
+ input: {
+ collectionMint: "J1S9H3QjnRtBbbuD4HjPV6RpRhwuk4zKbxsnCHuTgh9w",
+ name: "My NFT",
+ uri: "https://example.com/nft.json",
+ },
+ output: {
+ status: "success",
+ message: "NFT minted successfully",
+ mintAddress: "7nE9GvcwsqzYxmJLSrYmSB1V1YoJWVK1KWzAcWAzjXkN",
+ metadata: {
+ name: "My NFT",
+ uri: "https://example.com/nft.json",
+ },
+ recipient: "7nE9GvcwsqzYxmJLSrYmSB1V1YoJWVK1KWzAcWAzjXkN",
+ },
+ explanation: "Mint an NFT to the default wallet",
+ },
+ ],
+ [
+ {
+ input: {
+ collectionMint: "J1S9H3QjnRtBbbuD4HjPV6RpRhwuk4zKbxsnCHuTgh9w",
+ name: "Gift NFT",
+ uri: "https://example.com/gift.json",
+ recipient: "9aUn5swQzUTRanaaTwmszxiv89cvFwUCjEBv1vZCoT1u",
+ },
+ output: {
+ status: "success",
+ message: "NFT minted successfully",
+ mintAddress: "8nE9GvcwsqzYxmJLSrYmSB1V1YoJWVK1KWzAcWAzjXkM",
+ metadata: {
+ name: "Gift NFT",
+ uri: "https://example.com/gift.json",
+ },
+ recipient: "9aUn5swQzUTRanaaTwmszxiv89cvFwUCjEBv1vZCoT1u",
+ },
+ explanation: "Mint an NFT to a specific recipient",
+ },
+ ],
+ ],
+ schema: z.object({
+ collectionMint: z.string().min(32, "Invalid collection mint address"),
+ name: z.string().min(1, "Name is required"),
+ uri: z.string().url("URI must be a valid URL"),
+ recipient: z.string().min(32, "Invalid recipient address"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ const result = await mintCollectionNFT(
+ agent,
+ new PublicKey(input.collectionMint),
+ {
+ name: input.name,
+ uri: input.uri,
+ },
+ input.recipient ? new PublicKey(input.recipient) : undefined,
+ );
+
+ return {
+ status: "success",
+ message: "NFT minted successfully",
+ mintAddress: result.mint.toString(),
+ metadata: {
+ name: input.name,
+ uri: input.uri,
+ },
+ recipient: input.recipient || result.mint.toString(),
+ };
+ },
+};
+
+export default mintNFTAction;
diff --git a/src/actions/pythFetchPrice.ts b/src/actions/pythFetchPrice.ts
new file mode 100644
index 0000000..d9f7ae4
--- /dev/null
+++ b/src/actions/pythFetchPrice.ts
@@ -0,0 +1,60 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { fetchPythPrice, fetchPythPriceFeedID } from "../tools";
+
+const pythFetchPriceAction: Action = {
+ name: "PYTH_FETCH_PRICE",
+ similes: [
+ "get pyth price",
+ "check pyth price",
+ "pyth oracle price",
+ "fetch from pyth",
+ "pyth price feed",
+ "oracle price",
+ ],
+ description: "Fetch the current price from a Pyth oracle price feed",
+ examples: [
+ [
+ {
+ input: {
+ tokenSymbol: "SOL", // SOL/USD price feed
+ },
+ output: {
+ status: "success",
+ price: "23.45",
+ message: "Current price: $23.45",
+ },
+ explanation: "Get the current SOL/USD price from Pyth oracle",
+ },
+ ],
+ ],
+ schema: z.object({
+ tokenSymbol: z
+ .string()
+ .min(1)
+ .describe("The token symbol to fetch the price for"),
+ }),
+ handler: async (_agent: SolanaAgentKit, input: Record) => {
+ try {
+ const priceFeedId = await fetchPythPriceFeedID(
+ input.tokenSymbol as string,
+ );
+
+ const priceStr = await fetchPythPrice(priceFeedId);
+
+ return {
+ status: "success",
+ price: priceStr,
+ message: `Current price: $${priceStr}`,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to fetch price from Pyth: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default pythFetchPriceAction;
diff --git a/src/actions/raydiumCreateAmmV4.ts b/src/actions/raydiumCreateAmmV4.ts
new file mode 100644
index 0000000..8ad228d
--- /dev/null
+++ b/src/actions/raydiumCreateAmmV4.ts
@@ -0,0 +1,91 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { PublicKey } from "@solana/web3.js";
+import BN from "bn.js";
+import { raydiumCreateAmmV4 } from "../tools";
+
+const raydiumCreateAmmV4Action: Action = {
+ name: "RAYDIUM_CREATE_AMM_V4",
+ similes: [
+ "create raydium v4 pool",
+ "setup raydium v4 liquidity pool",
+ "initialize raydium v4 amm",
+ "create raydium v4 market maker",
+ "setup raydium v4 pool",
+ "create raydium v4 trading pair",
+ ],
+ description:
+ "Create a new AMM V4 pool on Raydium with advanced features and improved efficiency",
+ examples: [
+ [
+ {
+ input: {
+ baseMint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", // USDC
+ quoteMint: "So11111111111111111111111111111111111111112", // SOL
+ baseAmount: 1000,
+ quoteAmount: 10,
+ startPrice: 100, // 1 SOL = 100 USDC
+ openTime: 1672531200, // Unix timestamp
+ },
+ output: {
+ status: "success",
+ signature: "2ZE7Rz...",
+ poolId: "7nxQB...",
+ message: "Successfully created Raydium AMM V4 pool",
+ },
+ explanation:
+ "Create a USDC-SOL V4 pool with initial liquidity and price",
+ },
+ ],
+ ],
+ schema: z.object({
+ baseMint: z.string().min(1).describe("The base token mint address"),
+ quoteMint: z.string().min(1).describe("The quote token mint address"),
+ baseAmount: z
+ .number()
+ .positive()
+ .describe("Initial base token amount to provide as liquidity"),
+ quoteAmount: z
+ .number()
+ .positive()
+ .describe("Initial quote token amount to provide as liquidity"),
+ startPrice: z
+ .number()
+ .positive()
+ .describe("Initial price of quote token in base token units"),
+ openTime: z
+ .number()
+ .positive()
+ .describe("Unix timestamp when trading should start"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const marketId = new PublicKey(input.marketId);
+ const baseAmount = new BN(input.baseAmount);
+ const quoteAmount = new BN(input.quoteAmount);
+ const startTime = new BN(input.startTime);
+
+ const txId = await raydiumCreateAmmV4(
+ agent,
+ marketId,
+ baseAmount,
+ quoteAmount,
+ startTime,
+ );
+
+ return {
+ status: "success",
+ signature: txId,
+ message: "Successfully created Raydium AMM V4 pool",
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to create AMM V4 pool: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default raydiumCreateAmmV4Action;
diff --git a/src/actions/raydiumCreateClmm.ts b/src/actions/raydiumCreateClmm.ts
new file mode 100644
index 0000000..dd24322
--- /dev/null
+++ b/src/actions/raydiumCreateClmm.ts
@@ -0,0 +1,76 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { PublicKey } from "@solana/web3.js";
+import { BN } from "@coral-xyz/anchor";
+import Decimal from "decimal.js";
+import { raydiumCreateClmm } from "../tools";
+
+const raydiumCreateClmmAction: Action = {
+ name: "RAYDIUM_CREATE_CLMM",
+ similes: [
+ "create clmm pool",
+ "create concentrated liquidity pool",
+ "raydium clmm setup",
+ "launch concentrated liquidity market maker",
+ ],
+ description: `Create a Raydium Concentrated Liquidity Market Maker (CLMM) pool with custom ranges, providing increased capital efficiency`,
+ examples: [
+ [
+ {
+ input: {
+ mint1: "9xU1vzz456... (PublicKey)",
+ mint2: "EfrsBcG98... (PublicKey)",
+ configId: "D6yTTr... (Config PublicKey)",
+ initialPrice: 123.12,
+ startTime: 0, // or current UNIX timestamp
+ },
+ output: {
+ status: "success",
+ message: "Create raydium clmm pool successfully",
+ transaction: "3skCN8... (transaction signature)",
+ },
+ explanation:
+ "Creates a CLMM pool between mint1 and mint2 at an initial price of 123.12 and start time of 0.",
+ },
+ ],
+ ],
+ // Validate tool inputs using zod
+ schema: z.object({
+ mint1: z.string().min(1).describe("First token mint address (public key)"),
+ mint2: z.string().min(1).describe("Second token mint address (public key)"),
+ configId: z.string().min(1).describe("Raydium configId (public key)"),
+ initialPrice: z.number().describe("Initial price for the CLMM pool"),
+ startTime: z
+ .number()
+ .describe("Start time in seconds (UNIX timestamp or zero)"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const { mint1, mint2, configId, initialPrice, startTime } = input;
+
+ const tx = await raydiumCreateClmm(
+ agent,
+ new PublicKey(mint1),
+ new PublicKey(mint2),
+ new PublicKey(configId),
+ new Decimal(initialPrice),
+ new BN(startTime),
+ );
+
+ return {
+ status: "success",
+ message: "Create raydium clmm pool successfully",
+ transaction: tx,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to create CLMM pool: ${error.message}`,
+ code: error.code || "UNKNOWN_ERROR",
+ };
+ }
+ },
+};
+
+export default raydiumCreateClmmAction;
diff --git a/src/actions/raydiumCreateCpmm.ts b/src/actions/raydiumCreateCpmm.ts
new file mode 100644
index 0000000..b2159b5
--- /dev/null
+++ b/src/actions/raydiumCreateCpmm.ts
@@ -0,0 +1,90 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { PublicKey } from "@solana/web3.js";
+import BN from "bn.js";
+import { raydiumCreateCpmm } from "../tools";
+
+const raydiumCreateCpmmAction: Action = {
+ name: "RAYDIUM_CREATE_CPMM",
+ similes: [
+ "create raydium pool",
+ "setup raydium liquidity pool",
+ "initialize raydium amm",
+ "create constant product market maker",
+ "setup raydium cpmm",
+ "create raydium trading pair",
+ ],
+ description:
+ "Create a new Constant Product Market Maker (CPMM) pool on Raydium",
+ examples: [
+ [
+ {
+ input: {
+ baseMint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", // USDC
+ quoteMint: "So11111111111111111111111111111111111111112", // SOL
+ baseAmount: 1000,
+ quoteAmount: 10,
+ startTime: 1672531200, // Unix timestamp
+ },
+ output: {
+ status: "success",
+ signature: "2ZE7Rz...",
+ poolId: "7nxQB...",
+ message: "Successfully created Raydium CPMM pool",
+ },
+ explanation:
+ "Create a USDC-SOL pool with initial liquidity of 1000 USDC and 10 SOL",
+ },
+ ],
+ ],
+ schema: z.object({
+ baseMint: z.string().min(1).describe("The base token mint address"),
+ quoteMint: z.string().min(1).describe("The quote token mint address"),
+ baseAmount: z
+ .number()
+ .positive()
+ .describe("Initial base token amount to provide as liquidity"),
+ quoteAmount: z
+ .number()
+ .positive()
+ .describe("Initial quote token amount to provide as liquidity"),
+ startTime: z
+ .number()
+ .positive()
+ .describe("Unix timestamp when trading should start"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const mintA = new PublicKey(input.baseMint);
+ const mintB = new PublicKey(input.quoteMint);
+ const configId = new PublicKey(input.configId);
+ const mintAAmount = new BN(input.baseAmount);
+ const mintBAmount = new BN(input.quoteAmount);
+ const startTime = new BN(input.startTime);
+
+ const txId = await raydiumCreateCpmm(
+ agent,
+ mintA,
+ mintB,
+ configId,
+ mintAAmount,
+ mintBAmount,
+ startTime,
+ );
+
+ return {
+ status: "success",
+ signature: txId,
+ message: "Successfully created Raydium CPMM pool",
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to create CPMM pool: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default raydiumCreateCpmmAction;
diff --git a/src/actions/registerDomain.ts b/src/actions/registerDomain.ts
new file mode 100644
index 0000000..55f9354
--- /dev/null
+++ b/src/actions/registerDomain.ts
@@ -0,0 +1,63 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { registerDomain } from "../tools";
+
+const registerDomainAction: Action = {
+ name: "REGISTER_DOMAIN",
+ similes: [
+ "register domain",
+ "buy domain",
+ "get domain name",
+ "register .sol",
+ "purchase domain",
+ "domain registration",
+ ],
+ description: "Register a .sol domain name using Bonfida Name Service",
+ examples: [
+ [
+ {
+ input: {
+ name: "mydomain",
+ spaceKB: 1,
+ },
+ output: {
+ status: "success",
+ signature: "2ZE7Rz...",
+ message: "Successfully registered mydomain.sol",
+ },
+ explanation: "Register a new .sol domain with 1KB storage space",
+ },
+ ],
+ ],
+ schema: z.object({
+ name: z.string().min(1).describe("Domain name to register (without .sol)"),
+ spaceKB: z
+ .number()
+ .min(1)
+ .max(10)
+ .default(1)
+ .describe("Space allocation in KB (max 10KB)"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const name = input.name as string;
+ const spaceKB = (input.spaceKB as number) || 1;
+
+ const signature = await registerDomain(agent, name, spaceKB);
+
+ return {
+ status: "success",
+ signature,
+ message: `Successfully registered ${name}.sol`,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Domain registration failed: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default registerDomainAction;
diff --git a/src/actions/requestFunds.ts b/src/actions/requestFunds.ts
new file mode 100644
index 0000000..a4a95c2
--- /dev/null
+++ b/src/actions/requestFunds.ts
@@ -0,0 +1,41 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { request_faucet_funds } from "../tools";
+
+const requestFundsAction: Action = {
+ name: "REQUEST_FUNDS",
+ similes: [
+ "request sol",
+ "get test sol",
+ "use faucet",
+ "request test tokens",
+ "get devnet sol",
+ ],
+ description: "Request SOL from Solana faucet (devnet/testnet only)",
+ examples: [
+ [
+ {
+ input: {},
+ output: {
+ status: "success",
+ message: "Successfully requested faucet funds",
+ network: "devnet.solana.com",
+ },
+ explanation: "Request SOL from the devnet faucet",
+ },
+ ],
+ ],
+ schema: z.object({}), // No input parameters required
+ handler: async (agent: SolanaAgentKit, _input: Record) => {
+ await request_faucet_funds(agent);
+
+ return {
+ status: "success",
+ message: "Successfully requested faucet funds",
+ network: agent.connection.rpcEndpoint.split("/")[2],
+ };
+ },
+};
+
+export default requestFundsAction;
diff --git a/src/actions/resolveDomain.ts b/src/actions/resolveDomain.ts
new file mode 100644
index 0000000..e54adea
--- /dev/null
+++ b/src/actions/resolveDomain.ts
@@ -0,0 +1,51 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { resolveAllDomains } from "../tools";
+
+const resolveDomainAction: Action = {
+ name: "RESOLVE_ALL_DOMAINS",
+ similes: [
+ "resolve domain",
+ "lookup domain",
+ "get domain owner",
+ "check domain",
+ "find domain owner",
+ ],
+ description: "Resolve a Solana domain name to get its owner's public key",
+ examples: [
+ [
+ {
+ input: {
+ domain: "example.sol",
+ },
+ output: {
+ status: "success",
+ owner: "7nxQB...",
+ },
+ explanation: "Resolve a .sol domain name to get the owner's public key",
+ },
+ ],
+ ],
+ schema: z.object({
+ domain: z.string().min(1).describe("The domain name to resolve"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const domain = input.domain as string;
+ const tld = await resolveAllDomains(agent, domain);
+ return {
+ status: "success",
+ owner: tld,
+ message: `Successfully resolved domain ${domain}`,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to resolve domain: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default resolveDomainAction;
diff --git a/src/actions/resolveSolDomain.ts b/src/actions/resolveSolDomain.ts
new file mode 100644
index 0000000..60281e2
--- /dev/null
+++ b/src/actions/resolveSolDomain.ts
@@ -0,0 +1,59 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { resolveSolDomain } from "../tools";
+
+const resolveSolDomainAction: Action = {
+ name: "RESOLVE_SOL_DOMAIN",
+ similes: [
+ "resolve sol domain",
+ "lookup sol domain",
+ "get sol domain owner",
+ "check sol domain",
+ "find sol domain owner",
+ "resolve .sol",
+ ],
+ description:
+ "Resolve a .sol domain to its corresponding Solana wallet address using Bonfida Name Service",
+ examples: [
+ [
+ {
+ input: {
+ domain: "vitalik.sol",
+ },
+ output: {
+ status: "success",
+ owner: "7nxQB...",
+ message: "Successfully resolved vitalik.sol",
+ },
+ explanation: "Resolve a .sol domain to get the owner's wallet address",
+ },
+ ],
+ ],
+ schema: z.object({
+ domain: z
+ .string()
+ .min(1)
+ .describe("The .sol domain to resolve (with or without .sol suffix)"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const domain = input.domain as string;
+
+ const res = await resolveSolDomain(agent, domain);
+
+ return {
+ status: "success",
+ owner: res.toString(),
+ message: `Successfully resolved ${res}`,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to resolve domain: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default resolveSolDomainAction;
diff --git a/src/actions/stakeWithJup.ts b/src/actions/stakeWithJup.ts
new file mode 100644
index 0000000..7f7680f
--- /dev/null
+++ b/src/actions/stakeWithJup.ts
@@ -0,0 +1,55 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { stakeWithJup } from "../tools";
+
+const stakeWithJupAction: Action = {
+ name: "STAKE_WITH_JUPITER",
+ similes: [
+ "stake sol",
+ "stake with jupiter",
+ "jup staking",
+ "stake with jup",
+ "liquid staking",
+ "get jupsol",
+ ],
+ description:
+ "Stake SOL tokens with Jupiter's liquid staking protocol to receive jupSOL",
+ examples: [
+ [
+ {
+ input: {
+ amount: 1.5,
+ },
+ output: {
+ status: "success",
+ signature: "5KtPn3...",
+ message: "Successfully staked 1.5 SOL for jupSOL",
+ },
+ explanation: "Stake 1.5 SOL to receive jupSOL tokens",
+ },
+ ],
+ ],
+ schema: z.object({
+ amount: z.number().positive().describe("Amount of SOL to stake"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const amount = input.amount as number;
+
+ const res = await stakeWithJup(agent, amount);
+ return {
+ status: "success",
+ res,
+ message: `Successfully staked ${amount} SOL for jupSOL`,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `jupSOL staking failed: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default stakeWithJupAction;
diff --git a/src/actions/stakeWithSolayer.ts b/src/actions/stakeWithSolayer.ts
new file mode 100644
index 0000000..ec57944
--- /dev/null
+++ b/src/actions/stakeWithSolayer.ts
@@ -0,0 +1,60 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { stakeWithSolayer } from "../tools";
+
+const stakeWithSolayerAction: Action = {
+ name: "STAKE_WITH_SOLAYER",
+ similes: [
+ "stake sol",
+ "solayer sol",
+ "ssol",
+ "stake with solayer",
+ "solayer restaking",
+ "solayer staking",
+ "stake with sol",
+ "liquid staking solayer",
+ "get solayer sol",
+ "solayer sol restaking",
+ "solayer sol staking",
+ ],
+ description:
+ "Stake native SOL with Solayer's restaking protocol to receive Solayer SOL (sSOL)",
+ examples: [
+ [
+ {
+ input: {
+ amount: 1.0,
+ },
+ output: {
+ status: "success",
+ signature: "3FgHn9...",
+ message: "Successfully staked 1.0 SOL for Solayer SOL (sSOL)",
+ },
+ explanation: "Stake 1.0 SOL to receive Solayer SOL (sSOL)",
+ },
+ ],
+ ],
+ schema: z.object({
+ amount: z.number().positive().describe("Amount of SOL to stake"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const amount = input.amount as number;
+
+ const res = await stakeWithSolayer(agent, amount);
+ return {
+ status: "success",
+ res,
+ message: `Successfully staked ${amount} SOL for Solayer SOL (sSOL)`,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Solayer staking failed: ${error.message}`,
+ };
+ }
+ },
+};
+
+export default stakeWithSolayerAction;
diff --git a/src/actions/tokenDataByTicker.ts b/src/actions/tokenDataByTicker.ts
new file mode 100644
index 0000000..28995a5
--- /dev/null
+++ b/src/actions/tokenDataByTicker.ts
@@ -0,0 +1,60 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { getTokenDataByTicker } from "../tools";
+
+const tokenDataByTickerAction: Action = {
+ name: "GET_TOKEN_DATA_BY_TICKER",
+ similes: [
+ "token data by ticker",
+ "fetch token info by ticker",
+ "lookup token ticker info",
+ "get token info by ticker",
+ ],
+ description: "Get the token data for a given token ticker",
+ examples: [
+ [
+ {
+ input: {
+ ticker: "USDC",
+ },
+ output: {
+ status: "success",
+ tokenData: {
+ // Some placeholder example data
+ symbol: "USDC",
+ name: "USD Coin",
+ decimals: 6,
+ mintAddress: "FhRg...",
+ },
+ },
+ explanation: "Fetches metadata for the USDC token by its ticker.",
+ },
+ ],
+ ],
+ schema: z.object({
+ ticker: z.string().min(1).describe("Ticker of the token, e.g. 'USDC'"),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ try {
+ const ticker = input.ticker as string;
+
+ // Use agent’s method to get token data by ticker
+ const tokenData = await getTokenDataByTicker(ticker);
+
+ return {
+ status: "success",
+ tokenData: tokenData,
+ message: `Successfully fetched token data for ticker: ${ticker}`,
+ };
+ } catch (error: any) {
+ return {
+ status: "error",
+ message: `Failed to fetch token data for ticker: ${input.ticker || ""}. ${error.message}`,
+ code: error.code || "UNKNOWN_ERROR",
+ };
+ }
+ },
+};
+
+export default tokenDataByTickerAction;
diff --git a/src/actions/trade.ts b/src/actions/trade.ts
new file mode 100644
index 0000000..a4c9e48
--- /dev/null
+++ b/src/actions/trade.ts
@@ -0,0 +1,85 @@
+import { PublicKey } from "@solana/web3.js";
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { trade } from "../tools";
+
+const tradeAction: Action = {
+ name: "TRADE",
+ similes: [
+ "swap tokens",
+ "exchange tokens",
+ "trade tokens",
+ "convert tokens",
+ "swap sol",
+ ],
+ description: `This tool can be used to swap tokens to another token (It uses Jupiter Exchange).`,
+ examples: [
+ [
+ {
+ input: {
+ outputMint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
+ inputAmount: 1,
+ },
+ output: {
+ status: "success",
+ message: "Trade executed successfully",
+ transaction:
+ "5UfgJ5vVZxUxefDGqzqkVLHzHxVTyYH9StYyHKgvHYmXJgqJKxEqy9k4Rz9LpXrHF9kUZB7",
+ inputAmount: 1,
+ inputToken: "SOL",
+ outputToken: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
+ },
+ explanation: "Swap 1 SOL for USDC",
+ },
+ ],
+ [
+ {
+ input: {
+ outputMint: "So11111111111111111111111111111111111111112",
+ inputAmount: 100,
+ inputMint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
+ slippageBps: 100,
+ },
+ output: {
+ status: "success",
+ message: "Trade executed successfully",
+ transaction:
+ "4VfgJ5vVZxUxefDGqzqkVLHzHxVTyYH9StYyHKgvHYmXJgqJKxEqy9k4Rz9LpXrHF9kUZB7",
+ inputAmount: 100,
+ inputToken: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
+ outputToken: "So11111111111111111111111111111111111111112",
+ },
+ explanation: "Swap 100 USDC for SOL with 1% slippage",
+ },
+ ],
+ ],
+ schema: z.object({
+ outputMint: z.string().min(32, "Invalid output mint address"),
+ inputAmount: z.number().positive("Input amount must be positive"),
+ inputMint: z.string().min(32, "Invalid input mint address").optional(),
+ slippageBps: z.number().min(0).max(10000).optional(),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ const tx = await trade(
+ agent,
+ new PublicKey(input.outputMint),
+ input.inputAmount,
+ input.inputMint
+ ? new PublicKey(input.inputMint)
+ : new PublicKey("So11111111111111111111111111111111111111112"),
+ input.slippageBps,
+ );
+
+ return {
+ status: "success",
+ message: "Trade executed successfully",
+ transaction: tx,
+ inputAmount: input.inputAmount,
+ inputToken: input.inputMint || "SOL",
+ outputToken: input.outputMint,
+ };
+ },
+};
+
+export default tradeAction;
diff --git a/src/actions/transfer.ts b/src/actions/transfer.ts
new file mode 100644
index 0000000..f4206aa
--- /dev/null
+++ b/src/actions/transfer.ts
@@ -0,0 +1,78 @@
+import { PublicKey } from "@solana/web3.js";
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+import { transfer } from "../tools";
+
+const transferAction: Action = {
+ name: "TRANSFER",
+ similes: [
+ "send tokens",
+ "transfer funds",
+ "send money",
+ "send sol",
+ "transfer tokens",
+ ],
+ description: `Transfer tokens or SOL to another address (also called as wallet address).`,
+ examples: [
+ [
+ {
+ input: {
+ to: "8x2dR8Mpzuz2YqyZyZjUbYWKSWesBo5jMx2Q9Y86udVk",
+ amount: 1,
+ },
+ output: {
+ status: "success",
+ message: "Transfer completed successfully",
+ amount: 1,
+ recipient: "8x2dR8Mpzuz2YqyZyZjUbYWKSWesBo5jMx2Q9Y86udVk",
+ token: "SOL",
+ transaction:
+ "5UfgJ5vVZxUxefDGqzqkVLHzHxVTyYH9StYyHKgvHYmXJgqJKxEqy9k4Rz9LpXrHF9kUZB7",
+ },
+ explanation: "Transfer 1 SOL to the recipient address",
+ },
+ ],
+ [
+ {
+ input: {
+ to: "8x2dR8Mpzuz2YqyZyZjUbYWKSWesBo5jMx2Q9Y86udVk",
+ amount: 100,
+ mint: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
+ },
+ output: {
+ status: "success",
+ message: "Transfer completed successfully",
+ amount: 100,
+ recipient: "8x2dR8Mpzuz2YqyZyZjUbYWKSWesBo5jMx2Q9Y86udVk",
+ token: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
+ transaction:
+ "4VfgJ5vVZxUxefDGqzqkVLHzHxVTyYH9StYyHKgvHYmXJgqJKxEqy9k4Rz9LpXrHF9kUZB7",
+ },
+ explanation: "Transfer 100 USDC tokens to the recipient address",
+ },
+ ],
+ ],
+ schema: z.object({
+ to: z.string().min(32, "Invalid Solana address"),
+ amount: z.number().positive("Amount must be positive"),
+ mint: z.string().optional(),
+ }),
+ handler: async (agent: SolanaAgentKit, input: Record) => {
+ const recipient = new PublicKey(input.to);
+ const mintAddress = input.mint ? new PublicKey(input.mint) : undefined;
+
+ const tx = await transfer(agent, recipient, input.amount, mintAddress);
+
+ return {
+ status: "success",
+ message: "Transfer completed successfully",
+ amount: input.amount,
+ recipient: input.to,
+ token: input.mint || "SOL",
+ transaction: tx,
+ };
+ },
+};
+
+export default transferAction;
diff --git a/src/agent/index.ts b/src/agent/index.ts
index 3daa991..f4a43e6 100644
--- a/src/agent/index.ts
+++ b/src/agent/index.ts
@@ -1,7 +1,9 @@
import { Connection, Keypair, PublicKey } from "@solana/web3.js";
+import { BN } from "@coral-xyz/anchor";
import bs58 from "bs58";
import Decimal from "decimal.js";
import { DEFAULT_OPTIONS } from "../constants";
+import { Config, TokenCheck } from "../types";
import {
deploy_collection,
deploy_token,
@@ -14,21 +16,33 @@ import {
lendAsset,
mintCollectionNFT,
openbookCreateMarket,
+ manifestCreateMarket,
raydiumCreateAmmV4,
raydiumCreateClmm,
raydiumCreateCpmm,
registerDomain,
request_faucet_funds,
trade,
+ limitOrder,
+ batchOrder,
+ cancelAllOrders,
+ withdrawAll,
+ closePerpTradeShort,
+ closePerpTradeLong,
+ openPerpTradeShort,
+ openPerpTradeLong,
transfer,
getTokenDataByAddress,
getTokenDataByTicker,
stakeWithJup,
+ stakeWithSolayer,
sendCompressedAirdrop,
- createOrcaSingleSidedWhirlpool,
- fetchPrice,
- pythFetchPrice,
+ orcaCreateSingleSidedLiquidityPool,
+ orcaCreateCLMM,
+ orcaOpenCenteredPositionWithLiquidity,
+ orcaOpenSingleSidedPosition,
FEE_TIERS,
+ fetchPrice,
getAllDomainsTLDs,
getAllRegisteredAllDomains,
getOwnedDomainsForTLD,
@@ -36,8 +50,16 @@ import {
getOwnedAllDomains,
resolveAllDomains,
create_gibwork_task,
+ orcaClosePosition,
+ orcaFetchPositions,
rock_paper_scissor,
create_TipLink,
+ listNFTForSale,
+ cancelListing,
+ fetchTokenReportSummary,
+ fetchTokenDetailedReport,
+ fetchPythPrice,
+ fetchPythPriceFeedID,
} from "../tools";
import {
CollectionDeployment,
@@ -47,8 +69,8 @@ import {
MintCollectionNFTResponse,
PumpfunLaunchResponse,
PumpFunTokenOptions,
+ OrderParams,
} from "../types";
-import { BN } from "@coral-xyz/anchor";
import { create_squads_multisig } from "../tools/squads_multisig/create_multisig";
import { deposit_to_multisig } from "../tools/squads_multisig/deposit_to_multisig";
import { transfer_from_multisig } from "../tools/squads_multisig/transfer_from_multisig";
@@ -65,22 +87,45 @@ import { reject_proposal } from "../tools/squads_multisig/reject_proposal";
* @property {Connection} connection - Solana RPC connection
* @property {Keypair} wallet - Wallet keypair for signing transactions
* @property {PublicKey} wallet_address - Public key of the wallet
+ * @property {Config} config - Configuration object
*/
export class SolanaAgentKit {
public connection: Connection;
public wallet: Keypair;
public wallet_address: PublicKey;
- public openai_api_key: string | null;
+ public config: Config;
+ /**
+ * @deprecated Using openai_api_key directly in constructor is deprecated.
+ * Please use the new constructor with Config object instead:
+ * @example
+ * const agent = new SolanaAgentKit(privateKey, rpcUrl, {
+ * OPENAI_API_KEY: 'your-key'
+ * });
+ */
constructor(
private_key: string,
- rpc_url = "https://api.mainnet-beta.solana.com",
- openai_api_key: string | null = null,
+ rpc_url: string,
+ openai_api_key: string | null,
+ );
+ constructor(private_key: string, rpc_url: string, config: Config);
+ constructor(
+ private_key: string,
+ rpc_url: string,
+ configOrKey: Config | string | null,
) {
- this.connection = new Connection(rpc_url);
+ this.connection = new Connection(
+ rpc_url || "https://api.mainnet-beta.solana.com",
+ );
this.wallet = Keypair.fromSecretKey(bs58.decode(private_key));
this.wallet_address = this.wallet.publicKey;
- this.openai_api_key = openai_api_key;
+
+ // Handle both old and new patterns
+ if (typeof configOrKey === "string" || configOrKey === null) {
+ this.config = { OPENAI_API_KEY: configOrKey || "" };
+ } else {
+ this.config = configOrKey;
+ }
}
// Tool methods
@@ -152,6 +197,66 @@ export class SolanaAgentKit {
return trade(this, outputMint, inputAmount, inputMint, slippageBps);
}
+ async limitOrder(
+ marketId: PublicKey,
+ quantity: number,
+ side: string,
+ price: number,
+ ): Promise {
+ return limitOrder(this, marketId, quantity, side, price);
+ }
+
+ async batchOrder(
+ marketId: PublicKey,
+ orders: OrderParams[],
+ ): Promise {
+ return batchOrder(this, marketId, orders);
+ }
+
+ async cancelAllOrders(marketId: PublicKey): Promise {
+ return cancelAllOrders(this, marketId);
+ }
+
+ async withdrawAll(marketId: PublicKey): Promise {
+ return withdrawAll(this, marketId);
+ }
+
+ async openPerpTradeLong(
+ args: Omit[0], "agent">,
+ ): Promise {
+ return openPerpTradeLong({
+ agent: this,
+ ...args,
+ });
+ }
+
+ async openPerpTradeShort(
+ args: Omit[0], "agent">,
+ ): Promise {
+ return openPerpTradeShort({
+ agent: this,
+ ...args,
+ });
+ }
+
+ async closePerpTradeShort(
+ args: Omit[0], "agent">,
+ ): Promise {
+ return closePerpTradeShort({
+ agent: this,
+ ...args,
+ });
+ }
+
+ async closePerpTradeLong(
+ args: Omit[0], "agent">,
+ ): Promise {
+ return closePerpTradeLong({
+ agent: this,
+ ...args,
+ });
+ }
+
async lendAssets(amount: number): Promise {
return lendAsset(this, amount);
}
@@ -197,6 +302,10 @@ export class SolanaAgentKit {
return stakeWithJup(this, amount);
}
+ async restake(amount: number): Promise {
+ return stakeWithSolayer(this, amount);
+ }
+
async sendCompressedAirdrop(
mintAddress: string,
amount: number,
@@ -216,15 +325,28 @@ export class SolanaAgentKit {
);
}
- async createOrcaSingleSidedWhirlpool(
- depositTokenAmount: BN,
+ async orcaClosePosition(positionMintAddress: PublicKey) {
+ return orcaClosePosition(this, positionMintAddress);
+ }
+
+ async orcaCreateCLMM(
+ mintDeploy: PublicKey,
+ mintPair: PublicKey,
+ initialPrice: Decimal,
+ feeTier: keyof typeof FEE_TIERS,
+ ) {
+ return orcaCreateCLMM(this, mintDeploy, mintPair, initialPrice, feeTier);
+ }
+
+ async orcaCreateSingleSidedLiquidityPool(
+ depositTokenAmount: number,
depositTokenMint: PublicKey,
otherTokenMint: PublicKey,
initialPrice: Decimal,
maxPrice: Decimal,
feeTier: keyof typeof FEE_TIERS,
) {
- return createOrcaSingleSidedWhirlpool(
+ return orcaCreateSingleSidedLiquidityPool(
this,
depositTokenAmount,
depositTokenMint,
@@ -235,6 +357,42 @@ export class SolanaAgentKit {
);
}
+ async orcaFetchPositions() {
+ return orcaFetchPositions(this);
+ }
+
+ async orcaOpenCenteredPositionWithLiquidity(
+ whirlpoolAddress: PublicKey,
+ priceOffsetBps: number,
+ inputTokenMint: PublicKey,
+ inputAmount: Decimal,
+ ) {
+ return orcaOpenCenteredPositionWithLiquidity(
+ this,
+ whirlpoolAddress,
+ priceOffsetBps,
+ inputTokenMint,
+ inputAmount,
+ );
+ }
+
+ async orcaOpenSingleSidedPosition(
+ whirlpoolAddress: PublicKey,
+ distanceFromCurrentPriceBps: number,
+ widthBps: number,
+ inputTokenMint: PublicKey,
+ inputAmount: Decimal,
+ ): Promise {
+ return orcaOpenSingleSidedPosition(
+ this,
+ whirlpoolAddress,
+ distanceFromCurrentPriceBps,
+ widthBps,
+ inputTokenMint,
+ inputAmount,
+ );
+ }
+
async resolveAllDomains(domain: string): Promise {
return resolveAllDomains(this, domain);
}
@@ -247,8 +405,7 @@ export class SolanaAgentKit {
return getOwnedDomainsForTLD(this, tld);
}
- // eslint-disable-next-line @typescript-eslint/ban-types
- async getAllDomainsTLDs(): Promise {
+ async getAllDomainsTLDs(): Promise {
return getAllDomainsTLDs(this);
}
@@ -330,8 +487,19 @@ export class SolanaAgentKit {
);
}
- async pythFetchPrice(priceFeedID: string): Promise {
- return pythFetchPrice(priceFeedID);
+ async manifestCreateMarket(
+ baseMint: PublicKey,
+ quoteMint: PublicKey,
+ ): Promise {
+ return manifestCreateMarket(this, baseMint, quoteMint);
+ }
+
+ async getPythPriceFeedID(tokenSymbol: string): Promise {
+ return fetchPythPriceFeedID(tokenSymbol);
+ }
+
+ async getPythPrice(priceFeedID: string): Promise {
+ return fetchPythPrice(priceFeedID);
}
async createGibworkTask(
@@ -365,6 +533,22 @@ export class SolanaAgentKit {
return create_TipLink(this, amount, splmintAddress);
}
+ async tensorListNFT(nftMint: PublicKey, price: number): Promise {
+ return listNFTForSale(this, nftMint, price);
+ }
+
+ async tensorCancelListing(nftMint: PublicKey): Promise {
+ return cancelListing(this, nftMint);
+ }
+
+ async fetchTokenReportSummary(mint: string): Promise {
+ return fetchTokenReportSummary(mint);
+ }
+
+ async fetchTokenDetailedReport(mint: string): Promise {
+ return fetchTokenDetailedReport(mint);
+ }
+
async createSquadsMultisig(creator: PublicKey): Promise {
return create_squads_multisig(this, creator);
}
diff --git a/src/constants/index.ts b/src/constants/index.ts
index 7c1d9c5..69965bf 100644
--- a/src/constants/index.ts
+++ b/src/constants/index.ts
@@ -18,13 +18,18 @@ export const TOKENS = {
* Default configuration options
* @property {number} SLIPPAGE_BPS - Default slippage tolerance in basis points (300 = 3%)
* @property {number} TOKEN_DECIMALS - Default number of decimals for new tokens
+ * @property {number} LEVERAGE_BPS - Default leverage for trading PERP
*/
export const DEFAULT_OPTIONS = {
SLIPPAGE_BPS: 300,
TOKEN_DECIMALS: 9,
+ RERERRAL_FEE: 200,
+ LEVERAGE_BPS: 50000, // 10000 = x1, 50000 = x5, 100000 = x10, 1000000 = x100
} as const;
/**
* Jupiter API URL
*/
export const JUP_API = "https://quote-api.jup.ag/v6";
+export const JUP_REFERRAL_ADDRESS =
+ "REFER4ZgmyYx9c6He5XfaTMiGfdLwRnkV4RPp9t9iF3";
diff --git a/src/idls/adrena.ts b/src/idls/adrena.ts
new file mode 100644
index 0000000..6a41394
--- /dev/null
+++ b/src/idls/adrena.ts
@@ -0,0 +1,20671 @@
+export type Adrena = {
+ version: "1.1.5";
+ name: "adrena";
+ instructions: [
+ {
+ name: "initOneCore";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "protocolFeeRecipient";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "rent";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "InitOneParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "initTwoLmTokenMetadata";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "lmTokenMintMetadata";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "mplTokenMetadataProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "rent";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ ];
+ args: [];
+ },
+ {
+ name: "initThreeGovernance";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "governanceTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "governanceRealm";
+ isMut: false;
+ isSigner: false;
+ docs: [
+ "#6",
+ "A realm represent one project within the governance program",
+ ];
+ },
+ {
+ name: "governanceProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "rent";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ ];
+ args: [];
+ },
+ {
+ name: "initFourVesting";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "vestRegistry";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "rent";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ ];
+ args: [];
+ },
+ {
+ name: "addVest";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "owner";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#3"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "vestRegistry";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "vest";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "governanceTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "governanceRealm";
+ isMut: false;
+ isSigner: false;
+ docs: [
+ "#10",
+ "A realm represent one project within the governance program",
+ ];
+ },
+ {
+ name: "governanceRealmConfig";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "governanceGoverningTokenHolding";
+ isMut: true;
+ isSigner: false;
+ docs: [
+ "#12",
+ "Token account owned by governance program holding user's locked tokens",
+ ];
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord";
+ isMut: true;
+ isSigner: false;
+ docs: ["#13", "Account owned by governance storing user information"];
+ },
+ {
+ name: "governanceProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "rent";
+ isMut: false;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "AddVestParams";
+ };
+ },
+ ];
+ returns: "u8";
+ },
+ {
+ name: "claimVest";
+ accounts: [
+ {
+ name: "caller";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "owner";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "receivingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "vestRegistry";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "vest";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "governanceTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "governanceRealm";
+ isMut: false;
+ isSigner: false;
+ docs: [
+ "#11",
+ "A realm represent one project within the governance program",
+ ];
+ },
+ {
+ name: "governanceRealmConfig";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "governanceGoverningTokenHolding";
+ isMut: true;
+ isSigner: false;
+ docs: [
+ "#13",
+ "Token account owned by governance program holding user's locked tokens",
+ ];
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord";
+ isMut: true;
+ isSigner: false;
+ docs: ["#14", "Account owned by governance storing user information"];
+ },
+ {
+ name: "governanceProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#18"];
+ },
+ {
+ name: "rent";
+ isMut: false;
+ isSigner: false;
+ docs: ["#19"];
+ },
+ ];
+ args: [];
+ returns: "u64";
+ },
+ {
+ name: "addPoolPartOne";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "lpTokenMintMetadata";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "mplTokenMetadataProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "rent";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "AddPoolPartOneParams";
+ };
+ },
+ ];
+ returns: "u8";
+ },
+ {
+ name: "addPoolPartTwo";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "genesisLock";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "rent";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "AddPoolPartTwoParams";
+ };
+ },
+ ];
+ returns: "u8";
+ },
+ {
+ name: "removePool";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ ];
+ args: [];
+ returns: "u8";
+ },
+ {
+ name: "addCustody";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "custodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "custodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "custodyTokenMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "rent";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "AddCustodyParams";
+ };
+ },
+ ];
+ returns: "u8";
+ },
+ {
+ name: "removeCustody";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "custodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "RemoveCustodyParams";
+ };
+ },
+ ];
+ returns: "u8";
+ },
+ {
+ name: "setCustodyConfig";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "SetCustodyConfigParams";
+ };
+ },
+ ];
+ returns: "u8";
+ },
+ {
+ name: "setCustodyAllowSwap";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "SetCustodyAllowSwapParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "setCustodyAllowTrade";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "SetCustodyAllowTradeParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "setPoolAllowSwap";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "SetPoolAllowSwapParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "setPoolAllowTrade";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "SetPoolAllowTradeParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "setPoolAumSoftCapUsd";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "SetPoolAumSoftCapUsdParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "swap";
+ accounts: [
+ {
+ name: "caller";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "owner";
+ isMut: false;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "fundingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "receivingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "lmStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "lpStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "stakingRewardTokenCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "receivingCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "receivingCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "receivingCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "dispensingCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "dispensingCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "dispensingCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#18"];
+ },
+ {
+ name: "lmStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#19"];
+ },
+ {
+ name: "lpStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#20"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#21"];
+ },
+ {
+ name: "protocolFeeRecipient";
+ isMut: true;
+ isSigner: false;
+ docs: ["#22"];
+ },
+ {
+ name: "userProfile";
+ isMut: true;
+ isSigner: false;
+ isOptional: true;
+ docs: ["#23"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#24"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#25"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "SwapParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "addLiquidity";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "fundingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "lpTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: [
+ "#3 Front end will target the owner account, but not limited to",
+ ];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lmStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "lpStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "stakingRewardTokenCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "custodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "custodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "lmStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "lpStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#18"];
+ },
+ {
+ name: "protocolFeeRecipient";
+ isMut: true;
+ isSigner: false;
+ docs: ["#19"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#20"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#21"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "AddLiquidityParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "addGenesisLiquidity";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "fundingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "lpUserStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lpStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "lpStakingStakedTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "custodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "custodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "governanceTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "governanceRealm";
+ isMut: false;
+ isSigner: false;
+ docs: [
+ "#15",
+ "A realm represent one project within the governance program",
+ ];
+ },
+ {
+ name: "governanceRealmConfig";
+ isMut: false;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "governanceGoverningTokenHolding";
+ isMut: true;
+ isSigner: false;
+ docs: [
+ "#17",
+ "Token account owned by governance program holding user's locked tokens",
+ ];
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord";
+ isMut: true;
+ isSigner: false;
+ docs: ["#18", "Account owned by governance storing user information"];
+ },
+ {
+ name: "governanceProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#19"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#20"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#21"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#22"];
+ },
+ {
+ name: "genesisLock";
+ isMut: true;
+ isSigner: false;
+ docs: ["#23"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "AddGenesisLiquidityParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "genesisOtcOut";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "daoReceivingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "custodyUsdc";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "custodyUsdcTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "genesisLock";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ ];
+ args: [];
+ },
+ {
+ name: "genesisOtcIn";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "fundingAccountOne";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "fundingAccountTwo";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "fundingAccountThree";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "custodyOne";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "custodyOneTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "custodyTwo";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "custodyTwoTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "custodyThree";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "custodyThreeTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "genesisLock";
+ isMut: true;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "GenesisOtcInParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "removeLiquidity";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "receivingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: [
+ "#2 Front end will target the owner account, but not limited to",
+ ];
+ },
+ {
+ name: "lpTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lmStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "lpStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "stakingRewardTokenCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "custodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "custodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "lmStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "lpStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "protocolFeeRecipient";
+ isMut: true;
+ isSigner: false;
+ docs: ["#18"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#19"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#20"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "RemoveLiquidityParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "openPositionLong";
+ accounts: [
+ {
+ name: "owner";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "fundingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "custodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "custodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "userProfile";
+ isMut: true;
+ isSigner: false;
+ isOptional: true;
+ docs: ["#12"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "OpenPositionLongParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "openPositionShort";
+ accounts: [
+ {
+ name: "owner";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "fundingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "collateralCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "collateralCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "collateralCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "userProfile";
+ isMut: true;
+ isSigner: false;
+ isOptional: true;
+ docs: ["#13"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "OpenPositionShortParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "openOrIncreasePositionWithSwapLong";
+ accounts: [
+ {
+ name: "owner";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "fundingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "collateralAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "receivingCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "receivingCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "receivingCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "principalCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "principalCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "principalCustodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "principalCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "lmStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "lpStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "stakingRewardTokenCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#18"];
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#19"];
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#20"];
+ },
+ {
+ name: "lmStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#21"];
+ },
+ {
+ name: "lpStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#22"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#23"];
+ },
+ {
+ name: "protocolFeeRecipient";
+ isMut: true;
+ isSigner: false;
+ docs: ["#24"];
+ },
+ {
+ name: "userProfile";
+ isMut: true;
+ isSigner: false;
+ isOptional: true;
+ docs: ["#25"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#26"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#27"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#28"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "OpenPositionWithSwapParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "openOrIncreasePositionWithSwapShort";
+ accounts: [
+ {
+ name: "owner";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "fundingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "collateralAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "receivingCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "receivingCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "receivingCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "collateralCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "collateralCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "collateralCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "principalCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "principalCustodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "principalCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "lmStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "lpStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#18"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#19"];
+ },
+ {
+ name: "stakingRewardTokenCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#20"];
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#21"];
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#22"];
+ },
+ {
+ name: "lmStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#23"];
+ },
+ {
+ name: "lpStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#24"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#25"];
+ },
+ {
+ name: "protocolFeeRecipient";
+ isMut: true;
+ isSigner: false;
+ docs: ["#26"];
+ },
+ {
+ name: "userProfile";
+ isMut: true;
+ isSigner: false;
+ isOptional: true;
+ docs: ["#27"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#28"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#29"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#30"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "OpenPositionWithSwapParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "addCollateralLong";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "fundingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "custodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "custodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "AddCollateralLongParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "addCollateralShort";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "fundingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "collateralCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "collateralCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "collateralCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "AddCollateralShortParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "removeCollateralLong";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "receivingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "custodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "custodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "RemoveCollateralLongParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "removeCollateralShort";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "receivingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "collateralCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "collateralCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "collateralCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "RemoveCollateralShortParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "closePositionLong";
+ accounts: [
+ {
+ name: "caller";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "receivingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lmStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "lpStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "stakingRewardTokenCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "custodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "custodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "lmStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "lpStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#18"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#19"];
+ },
+ {
+ name: "protocolFeeRecipient";
+ isMut: true;
+ isSigner: false;
+ docs: ["#20"];
+ },
+ {
+ name: "userProfile";
+ isMut: true;
+ isSigner: false;
+ isOptional: true;
+ docs: ["#21"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#22"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#23"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "ClosePositionLongParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "closePositionShort";
+ accounts: [
+ {
+ name: "caller";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "receivingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lmStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "lpStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "stakingRewardTokenCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "collateralCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "collateralCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "collateralCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "lmStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#18"];
+ },
+ {
+ name: "lpStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#19"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#20"];
+ },
+ {
+ name: "protocolFeeRecipient";
+ isMut: true;
+ isSigner: false;
+ docs: ["#21"];
+ },
+ {
+ name: "userProfile";
+ isMut: true;
+ isSigner: false;
+ isOptional: true;
+ docs: ["#22"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#23"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#24"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "ClosePositionShortParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "liquidateLong";
+ accounts: [
+ {
+ name: "signer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "receivingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "lmStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lpStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "stakingRewardTokenCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "custodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "custodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "lmStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "lpStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#18"];
+ },
+ {
+ name: "protocolFeeRecipient";
+ isMut: true;
+ isSigner: false;
+ docs: ["#19"];
+ },
+ {
+ name: "userProfile";
+ isMut: true;
+ isSigner: false;
+ isOptional: true;
+ docs: ["#20"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#21"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#22"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "LiquidateLongParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "liquidateShort";
+ accounts: [
+ {
+ name: "signer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "receivingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "lmStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lpStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "stakingRewardTokenCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "collateralCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "collateralCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "collateralCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "lmStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "lpStakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#18"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#19"];
+ },
+ {
+ name: "protocolFeeRecipient";
+ isMut: true;
+ isSigner: false;
+ docs: ["#20"];
+ },
+ {
+ name: "userProfile";
+ isMut: true;
+ isSigner: false;
+ isOptional: true;
+ docs: ["#21"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#22"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#23"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "LiquidateShortParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "updatePoolAum";
+ accounts: [
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ ];
+ args: [];
+ returns: "u128";
+ },
+ {
+ name: "getAddLiquidityAmountAndFee";
+ accounts: [
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#1"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "custody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "custodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "GetAddLiquidityAmountAndFeeParams";
+ };
+ },
+ ];
+ returns: {
+ defined: "AmountAndFee";
+ };
+ },
+ {
+ name: "getRemoveLiquidityAmountAndFee";
+ accounts: [
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#1"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "custody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "custodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "GetRemoveLiquidityAmountAndFeeParams";
+ };
+ },
+ ];
+ returns: {
+ defined: "AmountAndFee";
+ };
+ },
+ {
+ name: "getEntryPriceAndFee";
+ accounts: [
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#1"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "custody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "collateralCustody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "collateralCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "GetEntryPriceAndFeeParams";
+ };
+ },
+ ];
+ returns: {
+ defined: "NewPositionPricesAndFee";
+ };
+ },
+ {
+ name: "disableTokensFreezeCapabilities";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ ];
+ args: [];
+ },
+ {
+ name: "genesisStakePatch";
+ accounts: [
+ {
+ name: "caller";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "owner";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "rewardTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lmTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "stakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "stakingLmRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "userStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "staking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "genesisLock";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#18"];
+ },
+ ];
+ args: [];
+ },
+ {
+ name: "getOpenPositionWithSwapAmountAndFees";
+ accounts: [
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#1"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "receivingCustody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "receivingCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "collateralCustody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "collateralCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "principalCustody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "principalCustodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "GetOpenPositionWithSwapAmountAndFeesParams";
+ };
+ },
+ ];
+ returns: {
+ defined: "OpenPositionWithSwapAmountAndFees";
+ };
+ },
+ {
+ name: "getExitPriceAndFee";
+ accounts: [
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#1"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "position";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "custody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "collateralCustody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "collateralCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ ];
+ args: [];
+ returns: {
+ defined: "ExitPriceAndFee";
+ };
+ },
+ {
+ name: "getPnl";
+ accounts: [
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#1"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "position";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "custody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "collateralCustody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "collateralCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ ];
+ args: [];
+ returns: {
+ defined: "ProfitAndLoss";
+ };
+ },
+ {
+ name: "getLiquidationPrice";
+ accounts: [
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#1"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "position";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "custody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "collateralCustody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "collateralCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "GetLiquidationPriceParams";
+ };
+ },
+ ];
+ returns: "u64";
+ },
+ {
+ name: "getLiquidationState";
+ accounts: [
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#1"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "position";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "custody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "collateralCustody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "collateralCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ ];
+ args: [];
+ returns: "u8";
+ },
+ {
+ name: "getOraclePrice";
+ accounts: [
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#1"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "custody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "custodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ ];
+ args: [];
+ returns: "u64";
+ },
+ {
+ name: "getSwapAmountAndFees";
+ accounts: [
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#1"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "receivingCustody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "receivingCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "dispensingCustody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "dispensingCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "GetSwapAmountAndFeesParams";
+ };
+ },
+ ];
+ returns: {
+ defined: "SwapAmountAndFees";
+ };
+ },
+ {
+ name: "getAssetsUnderManagement";
+ accounts: [
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#1"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ ];
+ args: [];
+ returns: "u128";
+ },
+ {
+ name: "initUserStaking";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "rewardTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "lmTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "stakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "stakingLmRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "userStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "staking";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "genesisLock";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ ];
+ args: [];
+ },
+ {
+ name: "initUserProfile";
+ accounts: [
+ {
+ name: "user";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "userProfile";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "InitUserProfileParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "editUserProfile";
+ accounts: [
+ {
+ name: "user";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "userProfile";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "EditUserProfileParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "deleteUserProfile";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "user";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#3"];
+ },
+ {
+ name: "userProfile";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ ];
+ args: [];
+ },
+ {
+ name: "initStakingOne";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "staking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "stakingStakedTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "stakingStakedTokenMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "rent";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "InitStakingOneParams";
+ };
+ },
+ ];
+ returns: "u8";
+ },
+ {
+ name: "initStakingTwo";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "staking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "stakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ ];
+ args: [];
+ returns: "u8";
+ },
+ {
+ name: "initStakingThree";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "staking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "stakingLmRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ ];
+ args: [];
+ returns: "u8";
+ },
+ {
+ name: "initStakingFour";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "staking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "stakingStakedTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "stakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "stakingLmRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "stakingStakedTokenMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ ];
+ args: [];
+ returns: "u8";
+ },
+ {
+ name: "addLiquidStake";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "fundingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "rewardTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "lmTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "stakingStakedTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "stakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "stakingLmRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "userStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "staking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "genesisLock";
+ isMut: true;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "governanceTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "governanceRealm";
+ isMut: false;
+ isSigner: false;
+ docs: [
+ "#18",
+ "A realm represent one project within the governance program",
+ ];
+ },
+ {
+ name: "governanceRealmConfig";
+ isMut: false;
+ isSigner: false;
+ docs: ["#19"];
+ },
+ {
+ name: "governanceGoverningTokenHolding";
+ isMut: true;
+ isSigner: false;
+ docs: [
+ "#20",
+ "Token account owned by governance program holding user's locked tokens",
+ ];
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord";
+ isMut: true;
+ isSigner: false;
+ docs: ["#21", "Account owned by governance storing user information"];
+ },
+ {
+ name: "governanceProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#22"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#23"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#24"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#25"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "AddLiquidStakeParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "addLockedStake";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "fundingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "rewardTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "stakingStakedTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "stakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "userStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "staking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "governanceTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "governanceRealm";
+ isMut: false;
+ isSigner: false;
+ docs: [
+ "#13",
+ "A realm represent one project within the governance program",
+ ];
+ },
+ {
+ name: "governanceRealmConfig";
+ isMut: false;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "governanceGoverningTokenHolding";
+ isMut: true;
+ isSigner: false;
+ docs: [
+ "#15",
+ "Token account owned by governance program holding user's locked tokens",
+ ];
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord";
+ isMut: true;
+ isSigner: false;
+ docs: ["#16", "Account owned by governance storing user information"];
+ },
+ {
+ name: "governanceProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#18"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#19"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#20"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "AddLockedStakeParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "upgradeLockedStake";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "fundingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "rewardTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "lmTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "stakingStakedTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "stakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "userStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "staking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "governanceTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "genesisLock";
+ isMut: true;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "governanceRealm";
+ isMut: false;
+ isSigner: false;
+ docs: [
+ "#16",
+ "A realm represent one project within the governance program",
+ ];
+ },
+ {
+ name: "governanceRealmConfig";
+ isMut: false;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "governanceGoverningTokenHolding";
+ isMut: true;
+ isSigner: false;
+ docs: [
+ "#18",
+ "Token account owned by governance program holding user's locked tokens",
+ ];
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord";
+ isMut: true;
+ isSigner: false;
+ docs: ["#19", "Account owned by governance storing user information"];
+ },
+ {
+ name: "stakingLmRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#20"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#21"];
+ },
+ {
+ name: "governanceProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#22"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#23"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#24"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "UpgradeLockedStakeParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "removeLiquidStake";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "stakedTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "lmTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "rewardTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "stakingStakedTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "stakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "stakingLmRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "userStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "staking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "genesisLock";
+ isMut: true;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "governanceTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "governanceRealm";
+ isMut: false;
+ isSigner: false;
+ docs: [
+ "#17",
+ "A realm represent one project within the governance program",
+ ];
+ },
+ {
+ name: "governanceRealmConfig";
+ isMut: false;
+ isSigner: false;
+ docs: ["#18"];
+ },
+ {
+ name: "governanceGoverningTokenHolding";
+ isMut: true;
+ isSigner: false;
+ docs: [
+ "#19",
+ "Token account owned by governance program holding user's locked tokens",
+ ];
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord";
+ isMut: true;
+ isSigner: false;
+ docs: ["#20", "Account owned by governance storing user information"];
+ },
+ {
+ name: "governanceProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#21"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#22"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#23"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#24"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "RemoveLiquidStakeParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "removeLockedStake";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "lmTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "stakedTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "rewardTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "stakingStakedTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "stakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "stakingLmRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "userStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "staking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "genesisLock";
+ isMut: true;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "stakedTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "governanceTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "governanceRealm";
+ isMut: false;
+ isSigner: false;
+ docs: [
+ "#18",
+ "A realm represent one project within the governance program",
+ ];
+ },
+ {
+ name: "governanceRealmConfig";
+ isMut: false;
+ isSigner: false;
+ docs: ["#19"];
+ },
+ {
+ name: "governanceGoverningTokenHolding";
+ isMut: true;
+ isSigner: false;
+ docs: [
+ "#20",
+ "Token account owned by governance program holding user's locked tokens",
+ ];
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord";
+ isMut: true;
+ isSigner: false;
+ docs: ["#21", "Account owned by governance storing user information"];
+ },
+ {
+ name: "governanceProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#22"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#23"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#24"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#25"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "RemoveLockedStakeParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "claimStakes";
+ accounts: [
+ {
+ name: "caller";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "rewardTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lmTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "stakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "stakingLmRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "userStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "staking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "genesisLock";
+ isMut: true;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#17"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#18"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "ClaimStakesParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "finalizeGenesisLockCampaign";
+ accounts: [
+ {
+ name: "caller";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "genesisLock";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ ];
+ args: [];
+ },
+ {
+ name: "setPoolLiquidityState";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "SetPoolLiquidityStateParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "finalizeLockedStake";
+ accounts: [
+ {
+ name: "caller";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "userStaking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "staking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "governanceTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "governanceRealm";
+ isMut: false;
+ isSigner: false;
+ docs: [
+ "#9",
+ "A realm represent one project within the governance program",
+ ];
+ },
+ {
+ name: "governanceRealmConfig";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "governanceGoverningTokenHolding";
+ isMut: true;
+ isSigner: false;
+ docs: [
+ "#11",
+ "Token account owned by governance program holding user's locked tokens",
+ ];
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12", "Account owned by governance storing user information"];
+ },
+ {
+ name: "governanceProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#16"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "FinalizeLockedStakeParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "resolveStakingRound";
+ accounts: [
+ {
+ name: "caller";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "stakingStakedTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "stakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "stakingLmRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "staking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ ];
+ args: [];
+ },
+ {
+ name: "getLpTokenPrice";
+ accounts: [
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#1"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ ];
+ args: [];
+ returns: "u64";
+ },
+ {
+ name: "getPoolInfoSnapshot";
+ accounts: [
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#1"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "lpTokenMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ ];
+ args: [];
+ returns: {
+ defined: "PoolInfoSnapshot";
+ };
+ },
+ {
+ name: "mintLmTokensFromBucket";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "receivingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "MintLmTokensFromBucketParams";
+ };
+ },
+ ];
+ returns: "u8";
+ },
+ {
+ name: "increasePositionLong";
+ accounts: [
+ {
+ name: "owner";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "fundingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "custodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "custodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "IncreasePositionLongParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "patchCustodyLockedAmount";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "usdcCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "bonkCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "wbtcCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "jitoCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ ];
+ args: [];
+ },
+ {
+ name: "increasePositionShort";
+ accounts: [
+ {
+ name: "owner";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "fundingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "custodyTradeOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "collateralCustody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "collateralCustodyOracle";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "collateralCustodyTokenAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#14"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#15"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "IncreasePositionShortParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "setStakingLmEmissionPotentiometers";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "staking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "SetStakingLmEmissionPotentiometersParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "setAdmin";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "SetAdminParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "setProtocolFeeRecipient";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "protocolFeeRecipient";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ ];
+ args: [];
+ },
+ {
+ name: "setCustodyMaxCumulativeShortPositionSizeUsd";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "SetCustodyMaxCumulativeShortPositionSizeUsdParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "setTakeProfitLong";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "SetTakeProfitLongParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "setStopLossLong";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "custody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "SetStopLossLongParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "setTakeProfitShort";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "custody";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "SetTakeProfitShortParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "setStopLossShort";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "custody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ ];
+ args: [
+ {
+ name: "params";
+ type: {
+ defined: "SetStopLossShortParams";
+ };
+ },
+ ];
+ },
+ {
+ name: "cancelTakeProfit";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "custody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ ];
+ args: [];
+ },
+ {
+ name: "cancelStopLoss";
+ accounts: [
+ {
+ name: "owner";
+ isMut: true;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: false;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "position";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "custody";
+ isMut: false;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ ];
+ args: [];
+ },
+ {
+ name: "patchStakingRound";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "payer";
+ isMut: true;
+ isSigner: true;
+ docs: ["#2"];
+ },
+ {
+ name: "fundingAccount";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "stakingRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ {
+ name: "stakingLmRewardTokenVault";
+ isMut: true;
+ isSigner: false;
+ docs: ["#5"];
+ },
+ {
+ name: "transferAuthority";
+ isMut: false;
+ isSigner: false;
+ docs: ["#6"];
+ },
+ {
+ name: "staking";
+ isMut: true;
+ isSigner: false;
+ docs: ["#7"];
+ },
+ {
+ name: "cortex";
+ isMut: true;
+ isSigner: false;
+ docs: ["#8"];
+ },
+ {
+ name: "lmTokenMint";
+ isMut: true;
+ isSigner: false;
+ docs: ["#9"];
+ },
+ {
+ name: "feeRedistributionMint";
+ isMut: false;
+ isSigner: false;
+ docs: ["#10"];
+ },
+ {
+ name: "adrenaProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#11"];
+ },
+ {
+ name: "systemProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#12"];
+ },
+ {
+ name: "tokenProgram";
+ isMut: false;
+ isSigner: false;
+ docs: ["#13"];
+ },
+ ];
+ args: [];
+ },
+ {
+ name: "setPoolWhitelistedSwapper";
+ accounts: [
+ {
+ name: "admin";
+ isMut: false;
+ isSigner: true;
+ docs: ["#1"];
+ },
+ {
+ name: "cortex";
+ isMut: false;
+ isSigner: false;
+ docs: ["#2"];
+ },
+ {
+ name: "pool";
+ isMut: true;
+ isSigner: false;
+ docs: ["#3"];
+ },
+ {
+ name: "whitelistedSwapper";
+ isMut: false;
+ isSigner: false;
+ docs: ["#4"];
+ },
+ ];
+ args: [];
+ },
+ ];
+ accounts: [
+ {
+ name: "cortex";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "bump";
+ type: "u8";
+ },
+ {
+ name: "transferAuthorityBump";
+ type: "u8";
+ },
+ {
+ name: "lmTokenBump";
+ type: "u8";
+ },
+ {
+ name: "governanceTokenBump";
+ type: "u8";
+ },
+ {
+ name: "initialized";
+ type: "u8";
+ },
+ {
+ name: "feeConversionDecimals";
+ type: "u8";
+ },
+ {
+ name: "padding";
+ type: {
+ array: ["u8", 2];
+ };
+ },
+ {
+ name: "lmTokenMint";
+ type: "publicKey";
+ },
+ {
+ name: "inceptionTime";
+ type: "i64";
+ },
+ {
+ name: "admin";
+ type: "publicKey";
+ },
+ {
+ name: "feeRedistributionMint";
+ type: "publicKey";
+ },
+ {
+ name: "protocolFeeRecipient";
+ type: "publicKey";
+ },
+ {
+ name: "pools";
+ type: {
+ array: ["publicKey", 4];
+ };
+ },
+ {
+ name: "userProfilesCount";
+ type: "u64";
+ },
+ {
+ name: "governanceProgram";
+ type: "publicKey";
+ },
+ {
+ name: "governanceRealm";
+ type: "publicKey";
+ },
+ {
+ name: "coreContributorBucketAllocation";
+ type: "u64";
+ },
+ {
+ name: "foundationBucketAllocation";
+ type: "u64";
+ },
+ {
+ name: "ecosystemBucketAllocation";
+ type: "u64";
+ },
+ {
+ name: "coreContributorBucketVestedAmount";
+ type: "u64";
+ },
+ {
+ name: "coreContributorBucketMintedAmount";
+ type: "u64";
+ },
+ {
+ name: "foundationBucketVestedAmount";
+ type: "u64";
+ },
+ {
+ name: "foundationBucketMintedAmount";
+ type: "u64";
+ },
+ {
+ name: "ecosystemBucketVestedAmount";
+ type: "u64";
+ },
+ {
+ name: "ecosystemBucketMintedAmount";
+ type: "u64";
+ },
+ {
+ name: "genesisLiquidityAlpAmount";
+ type: "u64";
+ },
+ {
+ name: "uniquePositionIdCounter";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "custody";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "bump";
+ type: "u8";
+ },
+ {
+ name: "tokenAccountBump";
+ type: "u8";
+ },
+ {
+ name: "allowTrade";
+ type: "u8";
+ },
+ {
+ name: "allowSwap";
+ type: "u8";
+ },
+ {
+ name: "decimals";
+ type: "u8";
+ },
+ {
+ name: "isStable";
+ type: "u8";
+ },
+ {
+ name: "padding";
+ type: {
+ array: ["u8", 2];
+ };
+ },
+ {
+ name: "pool";
+ type: "publicKey";
+ },
+ {
+ name: "mint";
+ type: "publicKey";
+ },
+ {
+ name: "tokenAccount";
+ type: "publicKey";
+ },
+ {
+ name: "oracle";
+ type: "publicKey";
+ },
+ {
+ name: "tradeOracle";
+ type: "publicKey";
+ },
+ {
+ name: "pricing";
+ type: {
+ defined: "PricingParams";
+ };
+ },
+ {
+ name: "fees";
+ type: {
+ defined: "Fees";
+ };
+ },
+ {
+ name: "borrowRate";
+ type: {
+ defined: "BorrowRateParams";
+ };
+ },
+ {
+ name: "collectedFees";
+ type: {
+ defined: "FeesStats";
+ };
+ },
+ {
+ name: "volumeStats";
+ type: {
+ defined: "VolumeStats";
+ };
+ },
+ {
+ name: "tradeStats";
+ type: {
+ defined: "TradeStats";
+ };
+ },
+ {
+ name: "assets";
+ type: {
+ defined: "Assets";
+ };
+ },
+ {
+ name: "longPositions";
+ type: {
+ defined: "PositionsAccounting";
+ };
+ },
+ {
+ name: "shortPositions";
+ type: {
+ defined: "PositionsAccounting";
+ };
+ },
+ {
+ name: "borrowRateState";
+ type: {
+ defined: "BorrowRateState";
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "genesisLock";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "bump";
+ type: "u8";
+ },
+ {
+ name: "hasTransitionedToFullyPublic";
+ type: "u8";
+ },
+ {
+ name: "hasCompletedOtcIn";
+ type: "u8";
+ },
+ {
+ name: "hasCompletedOtcOut";
+ type: "u8";
+ },
+ {
+ name: "padding";
+ type: {
+ array: ["u8", 4];
+ };
+ },
+ {
+ name: "campaignDuration";
+ type: "i64";
+ },
+ {
+ name: "reservedGrantDuration";
+ type: "i64";
+ },
+ {
+ name: "campaignStartDate";
+ type: "i64";
+ },
+ {
+ name: "publicAmount";
+ type: "u64";
+ },
+ {
+ name: "reservedAmount";
+ type: "u64";
+ },
+ {
+ name: "publicAmountClaimed";
+ type: "u64";
+ },
+ {
+ name: "reservedAmountClaimed";
+ type: "u64";
+ },
+ {
+ name: "reservedGrantOwners";
+ type: {
+ array: ["publicKey", 43];
+ };
+ },
+ {
+ name: "reservedGrantAmounts";
+ type: {
+ array: ["u64", 43];
+ };
+ },
+ {
+ name: "paddingUnsafe";
+ type: {
+ array: ["u8", 8];
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "pool";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "bump";
+ type: "u8";
+ },
+ {
+ name: "lpTokenBump";
+ type: "u8";
+ },
+ {
+ name: "nbStableCustody";
+ type: "u8";
+ },
+ {
+ name: "initialized";
+ type: "u8";
+ },
+ {
+ name: "allowTrade";
+ type: "u8";
+ },
+ {
+ name: "allowSwap";
+ type: "u8";
+ },
+ {
+ name: "liquidityState";
+ type: "u8";
+ },
+ {
+ name: "registeredCustodyCount";
+ type: "u8";
+ },
+ {
+ name: "name";
+ type: {
+ defined: "LimitedString";
+ };
+ },
+ {
+ name: "custodies";
+ type: {
+ array: ["publicKey", 8];
+ };
+ },
+ {
+ name: "padding1";
+ type: {
+ array: ["u8", 32];
+ };
+ },
+ {
+ name: "whitelistedSwapper";
+ type: "publicKey";
+ },
+ {
+ name: "ratios";
+ type: {
+ array: [
+ {
+ defined: "TokenRatios";
+ },
+ 8,
+ ];
+ };
+ },
+ {
+ name: "padding2";
+ type: {
+ array: ["u8", 16];
+ };
+ },
+ {
+ name: "aumUsd";
+ type: {
+ defined: "U128Split";
+ };
+ },
+ {
+ name: "inceptionTime";
+ type: "i64";
+ },
+ {
+ name: "aumSoftCapUsd";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "position";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "bump";
+ type: "u8";
+ },
+ {
+ name: "side";
+ type: "u8";
+ },
+ {
+ name: "takeProfitIsSet";
+ type: "u8";
+ },
+ {
+ name: "stopLossIsSet";
+ type: "u8";
+ },
+ {
+ name: "paddingUnsafe";
+ type: {
+ array: ["u8", 1];
+ };
+ },
+ {
+ name: "padding";
+ type: {
+ array: ["u8", 3];
+ };
+ },
+ {
+ name: "owner";
+ type: "publicKey";
+ },
+ {
+ name: "pool";
+ type: "publicKey";
+ },
+ {
+ name: "custody";
+ type: "publicKey";
+ },
+ {
+ name: "collateralCustody";
+ type: "publicKey";
+ },
+ {
+ name: "openTime";
+ type: "i64";
+ },
+ {
+ name: "updateTime";
+ type: "i64";
+ },
+ {
+ name: "price";
+ type: "u64";
+ },
+ {
+ name: "sizeUsd";
+ type: "u64";
+ },
+ {
+ name: "borrowSizeUsd";
+ type: "u64";
+ },
+ {
+ name: "collateralUsd";
+ type: "u64";
+ },
+ {
+ name: "unrealizedInterestUsd";
+ type: "u64";
+ },
+ {
+ name: "cumulativeInterestSnapshot";
+ type: {
+ defined: "U128Split";
+ };
+ },
+ {
+ name: "lockedAmount";
+ type: "u64";
+ },
+ {
+ name: "collateralAmount";
+ type: "u64";
+ },
+ {
+ name: "exitFeeUsd";
+ type: "u64";
+ },
+ {
+ name: "liquidationFeeUsd";
+ type: "u64";
+ },
+ {
+ name: "id";
+ type: "u64";
+ },
+ {
+ name: "takeProfitLimitPrice";
+ type: "u64";
+ },
+ {
+ name: "paddingUnsafe3";
+ type: {
+ array: ["u8", 8];
+ };
+ },
+ {
+ name: "stopLossLimitPrice";
+ type: "u64";
+ },
+ {
+ name: "stopLossClosePositionPrice";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "staking";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "stakingType";
+ type: "u8";
+ },
+ {
+ name: "bump";
+ type: "u8";
+ },
+ {
+ name: "stakedTokenVaultBump";
+ type: "u8";
+ },
+ {
+ name: "rewardTokenVaultBump";
+ type: "u8";
+ },
+ {
+ name: "lmRewardTokenVaultBump";
+ type: "u8";
+ },
+ {
+ name: "rewardTokenDecimals";
+ type: "u8";
+ },
+ {
+ name: "stakedTokenDecimals";
+ type: "u8";
+ },
+ {
+ name: "initialized";
+ type: "u8";
+ },
+ {
+ name: "nbLockedTokens";
+ type: "u64";
+ },
+ {
+ name: "nbLiquidTokens";
+ type: "u64";
+ },
+ {
+ name: "stakedTokenMint";
+ type: "publicKey";
+ },
+ {
+ name: "resolvedRewardTokenAmount";
+ type: "u64";
+ },
+ {
+ name: "resolvedStakedTokenAmount";
+ type: "u64";
+ },
+ {
+ name: "resolvedLmRewardTokenAmount";
+ type: "u64";
+ },
+ {
+ name: "resolvedLmStakedTokenAmount";
+ type: "u64";
+ },
+ {
+ name: "currentStakingRound";
+ type: {
+ defined: "StakingRound";
+ };
+ },
+ {
+ name: "nextStakingRound";
+ type: {
+ defined: "StakingRound";
+ };
+ },
+ {
+ name: "resolvedStakingRounds";
+ type: {
+ array: [
+ {
+ defined: "StakingRound";
+ },
+ 32,
+ ];
+ };
+ },
+ {
+ name: "registeredResolvedStakingRoundCount";
+ type: "u8";
+ },
+ {
+ name: "padding";
+ type: {
+ array: ["u8", 3];
+ };
+ },
+ {
+ name: "lmEmissionPotentiometerBps";
+ type: "u16";
+ },
+ {
+ name: "monthsElapsedSinceInception";
+ type: "u16";
+ },
+ {
+ name: "paddingUnsafe";
+ type: {
+ array: ["u8", 8];
+ };
+ },
+ {
+ name: "emissionAmountPerRoundLastUpdate";
+ type: "i64";
+ },
+ {
+ name: "currentMonthEmissionAmountPerRound";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "userProfile";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "bump";
+ type: "u8";
+ },
+ {
+ name: "padding";
+ type: {
+ array: ["u8", 7];
+ };
+ },
+ {
+ name: "nickname";
+ type: {
+ defined: "LimitedString";
+ };
+ },
+ {
+ name: "createdAt";
+ type: "i64";
+ },
+ {
+ name: "owner";
+ type: "publicKey";
+ },
+ {
+ name: "swapCount";
+ type: "u64";
+ },
+ {
+ name: "swapVolumeUsd";
+ type: "u64";
+ },
+ {
+ name: "swapFeePaidUsd";
+ type: "u64";
+ },
+ {
+ name: "shortStats";
+ type: {
+ defined: "TradingStats";
+ };
+ },
+ {
+ name: "longStats";
+ type: {
+ defined: "TradingStats";
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "userStaking";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "bump";
+ type: "u8";
+ },
+ {
+ name: "unusedUnsafe";
+ type: {
+ array: ["u8", 1];
+ };
+ },
+ {
+ name: "stakingType";
+ type: "u8";
+ },
+ {
+ name: "padding";
+ type: {
+ array: ["u8", 5];
+ };
+ },
+ {
+ name: "lockedStakeIdCounter";
+ type: "u64";
+ },
+ {
+ name: "liquidStake";
+ type: {
+ defined: "LiquidStake";
+ };
+ },
+ {
+ name: "lockedStakes";
+ type: {
+ array: [
+ {
+ defined: "LockedStake";
+ },
+ 32,
+ ];
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "vestRegistry";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "bump";
+ type: "u8";
+ },
+ {
+ name: "vests";
+ type: {
+ vec: "publicKey";
+ };
+ },
+ {
+ name: "vestingTokenAmount";
+ type: "u64";
+ },
+ {
+ name: "vestedTokenAmount";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "vest";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "bump";
+ type: "u8";
+ },
+ {
+ name: "originBucket";
+ type: "u8";
+ },
+ {
+ name: "cancelled";
+ type: "u8";
+ },
+ {
+ name: "padding";
+ type: {
+ array: ["u8", 1];
+ };
+ },
+ {
+ name: "voteMultiplier";
+ type: "u32";
+ },
+ {
+ name: "amount";
+ type: "u64";
+ },
+ {
+ name: "unlockStartTimestamp";
+ type: "i64";
+ },
+ {
+ name: "unlockEndTimestamp";
+ type: "i64";
+ },
+ {
+ name: "claimedAmount";
+ type: "u64";
+ },
+ {
+ name: "lastClaimTimestamp";
+ type: "i64";
+ },
+ {
+ name: "owner";
+ type: "publicKey";
+ },
+ ];
+ };
+ },
+ ];
+ types: [
+ {
+ name: "MintLmTokensFromBucketParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "bucketName";
+ type: "u8";
+ },
+ {
+ name: "amount";
+ type: "u64";
+ },
+ {
+ name: "reason";
+ type: "string";
+ },
+ ];
+ };
+ },
+ {
+ name: "SetAdminParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "newAdmin";
+ type: "publicKey";
+ },
+ ];
+ };
+ },
+ {
+ name: "AddCustodyParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "isStable";
+ type: "bool";
+ },
+ {
+ name: "pricing";
+ type: {
+ defined: "PricingParams";
+ };
+ },
+ {
+ name: "allowSwap";
+ type: "bool";
+ },
+ {
+ name: "allowTrade";
+ type: "bool";
+ },
+ {
+ name: "fees";
+ type: {
+ defined: "Fees";
+ };
+ },
+ {
+ name: "borrowRate";
+ type: {
+ defined: "BorrowRateParams";
+ };
+ },
+ {
+ name: "ratios";
+ type: {
+ array: [
+ {
+ defined: "TokenRatios";
+ },
+ 8,
+ ];
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "RemoveCustodyParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "ratios";
+ type: {
+ array: [
+ {
+ defined: "TokenRatios";
+ },
+ 8,
+ ];
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "SetCustodyAllowSwapParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "allowSwap";
+ type: "bool";
+ },
+ ];
+ };
+ },
+ {
+ name: "SetCustodyAllowTradeParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "allowTrade";
+ type: "bool";
+ },
+ ];
+ };
+ },
+ {
+ name: "SetCustodyConfigParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "isStable";
+ type: "bool";
+ },
+ {
+ name: "oracle";
+ type: "publicKey";
+ },
+ {
+ name: "tradeOracle";
+ type: "publicKey";
+ },
+ {
+ name: "pricing";
+ type: {
+ defined: "PricingParams";
+ };
+ },
+ {
+ name: "fees";
+ type: {
+ defined: "Fees";
+ };
+ },
+ {
+ name: "borrowRate";
+ type: {
+ defined: "BorrowRateParams";
+ };
+ },
+ {
+ name: "ratios";
+ type: {
+ array: [
+ {
+ defined: "TokenRatios";
+ },
+ 8,
+ ];
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "SetCustodyMaxCumulativeShortPositionSizeUsdParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "maxCumulativeShortPositionSizeUsd";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "InitOneParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "coreContributorBucketAllocation";
+ type: "u64";
+ },
+ {
+ name: "foundationBucketAllocation";
+ type: "u64";
+ },
+ {
+ name: "ecosystemBucketAllocation";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "AddPoolPartOneParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "name";
+ type: "string";
+ },
+ {
+ name: "aumSoftCapUsd";
+ type: "u64";
+ },
+ {
+ name: "lpTokenName";
+ type: "string";
+ },
+ {
+ name: "lpTokenSymbol";
+ type: "string";
+ },
+ {
+ name: "lpTokenUri";
+ type: "string";
+ },
+ ];
+ };
+ },
+ {
+ name: "AddPoolPartTwoParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "genesisLockCampaignDuration";
+ type: "i64";
+ },
+ {
+ name: "genesisReservedGrantDuration";
+ type: "i64";
+ },
+ {
+ name: "genesisLockCampaignStartDate";
+ type: "i64";
+ },
+ {
+ name: "reservedSpots";
+ type: {
+ defined: "ReservedSpots";
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "GenesisOtcInParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "custodyOneAmount";
+ type: "u64";
+ },
+ {
+ name: "custodyTwoAmount";
+ type: "u64";
+ },
+ {
+ name: "custodyThreeAmount";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "SetPoolAllowSwapParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "allowSwap";
+ type: "bool";
+ },
+ ];
+ };
+ },
+ {
+ name: "SetPoolAllowTradeParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "allowTrade";
+ type: "bool";
+ },
+ ];
+ };
+ },
+ {
+ name: "SetPoolAumSoftCapUsdParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "aumSoftCapUsd";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "SetPoolLiquidityStateParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "liquidityState";
+ type: "u8";
+ },
+ ];
+ };
+ },
+ {
+ name: "InitStakingOneParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "stakingType";
+ type: "u8";
+ },
+ ];
+ };
+ },
+ {
+ name: "SetStakingLmEmissionPotentiometersParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "lmEmissionPotentiometerBps";
+ type: "u16";
+ },
+ ];
+ };
+ },
+ {
+ name: "AddVestParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "amount";
+ type: "u64";
+ },
+ {
+ name: "originBucket";
+ type: "u8";
+ },
+ {
+ name: "unlockStartTimestamp";
+ type: "i64";
+ },
+ {
+ name: "unlockEndTimestamp";
+ type: "i64";
+ },
+ {
+ name: "voteMultiplier";
+ type: "u32";
+ },
+ ];
+ };
+ },
+ {
+ name: "AddGenesisLiquidityParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "amountIn";
+ type: "u64";
+ },
+ {
+ name: "minLpAmountOut";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "AddLiquidityParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "amountIn";
+ type: "u64";
+ },
+ {
+ name: "minLpAmountOut";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "RemoveLiquidityParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "lpAmountIn";
+ type: "u64";
+ },
+ {
+ name: "minAmountOut";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "SwapParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "amountIn";
+ type: "u64";
+ },
+ {
+ name: "minAmountOut";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "AddCollateralLongParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "collateral";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "AddCollateralShortParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "collateral";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "SetStopLossLongParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "stopLossLimitPrice";
+ type: "u64";
+ },
+ {
+ name: "closePositionPrice";
+ type: {
+ option: "u64";
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "SetStopLossShortParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "stopLossLimitPrice";
+ type: "u64";
+ },
+ {
+ name: "closePositionPrice";
+ type: {
+ option: "u64";
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "SetTakeProfitLongParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "takeProfitLimitPrice";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "SetTakeProfitShortParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "takeProfitLimitPrice";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "ClosePositionLongParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "price";
+ type: {
+ option: "u64";
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "ClosePositionShortParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "price";
+ type: {
+ option: "u64";
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "IncreasePositionLongParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "price";
+ type: "u64";
+ },
+ {
+ name: "collateral";
+ type: "u64";
+ },
+ {
+ name: "leverage";
+ type: "u32";
+ },
+ ];
+ };
+ },
+ {
+ name: "IncreasePositionShortParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "price";
+ type: "u64";
+ },
+ {
+ name: "collateral";
+ type: "u64";
+ },
+ {
+ name: "leverage";
+ type: "u32";
+ },
+ ];
+ };
+ },
+ {
+ name: "LiquidateLongParams";
+ type: {
+ kind: "struct";
+ fields: [];
+ };
+ },
+ {
+ name: "LiquidateShortParams";
+ type: {
+ kind: "struct";
+ fields: [];
+ };
+ },
+ {
+ name: "OpenPositionWithSwapParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "price";
+ type: "u64";
+ },
+ {
+ name: "collateral";
+ type: "u64";
+ },
+ {
+ name: "leverage";
+ type: "u32";
+ },
+ {
+ name: "referrer";
+ type: {
+ option: "publicKey";
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "OpenPositionLongParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "price";
+ type: "u64";
+ },
+ {
+ name: "collateral";
+ type: "u64";
+ },
+ {
+ name: "leverage";
+ type: "u32";
+ },
+ {
+ name: "referrer";
+ type: {
+ option: "publicKey";
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "OpenPositionShortParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "price";
+ type: "u64";
+ },
+ {
+ name: "collateral";
+ type: "u64";
+ },
+ {
+ name: "leverage";
+ type: "u32";
+ },
+ {
+ name: "referrer";
+ type: {
+ option: "publicKey";
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "RemoveCollateralLongParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "collateralUsd";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "RemoveCollateralShortParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "collateralUsd";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "AddLiquidStakeParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "amount";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "AddLockedStakeParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "amount";
+ type: "u64";
+ },
+ {
+ name: "lockedDays";
+ type: "u32";
+ },
+ ];
+ };
+ },
+ {
+ name: "ClaimStakesParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "lockedStakeIndexes";
+ type: {
+ option: "bytes";
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "FinalizeLockedStakeParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "lockedStakeId";
+ type: "u64";
+ },
+ {
+ name: "earlyExit";
+ type: "bool";
+ },
+ ];
+ };
+ },
+ {
+ name: "RemoveLiquidStakeParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "amount";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "RemoveLockedStakeParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "lockedStakeIndex";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "UpgradeLockedStakeParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "lockedStakeId";
+ type: "u64";
+ },
+ {
+ name: "amount";
+ type: {
+ option: "u64";
+ };
+ },
+ {
+ name: "lockedDays";
+ type: {
+ option: "u32";
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "EditUserProfileParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "nickname";
+ type: "string";
+ },
+ ];
+ };
+ },
+ {
+ name: "InitUserProfileParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "nickname";
+ type: "string";
+ },
+ ];
+ };
+ },
+ {
+ name: "GetAddLiquidityAmountAndFeeParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "amountIn";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "GetEntryPriceAndFeeParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "collateral";
+ type: "u64";
+ },
+ {
+ name: "leverage";
+ type: "u32";
+ },
+ {
+ name: "side";
+ type: "u8";
+ },
+ ];
+ };
+ },
+ {
+ name: "GetLiquidationPriceParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "addCollateral";
+ type: "u64";
+ },
+ {
+ name: "removeCollateral";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "GetOpenPositionWithSwapAmountAndFeesParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "collateralAmount";
+ type: "u64";
+ },
+ {
+ name: "leverage";
+ type: "u32";
+ },
+ {
+ name: "side";
+ type: "u8";
+ },
+ ];
+ };
+ },
+ {
+ name: "CustodyInfoSnapshot";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "assetsValueUsd";
+ type: "u64";
+ },
+ {
+ name: "owned";
+ type: "u64";
+ },
+ {
+ name: "locked";
+ type: "u64";
+ },
+ {
+ name: "price";
+ type: "u64";
+ },
+ {
+ name: "priceConfidence";
+ type: "u64";
+ },
+ {
+ name: "tradePrice";
+ type: "u64";
+ },
+ {
+ name: "tradePriceConfidence";
+ type: "u64";
+ },
+ {
+ name: "shortPnl";
+ type: "i64";
+ },
+ {
+ name: "longPnl";
+ type: "i64";
+ },
+ {
+ name: "openInterestLongUsd";
+ type: "u64";
+ },
+ {
+ name: "openInterestShortUsd";
+ type: "u64";
+ },
+ {
+ name: "cumulativeProfitUsd";
+ type: "u64";
+ },
+ {
+ name: "cumulativeLossUsd";
+ type: "u64";
+ },
+ {
+ name: "cumulativeSwapFeeUsd";
+ type: "u64";
+ },
+ {
+ name: "cumulativeLiquidityFeeUsd";
+ type: "u64";
+ },
+ {
+ name: "cumulativeClosePositionFeeUsd";
+ type: "u64";
+ },
+ {
+ name: "cumulativeLiquidationFeeUsd";
+ type: "u64";
+ },
+ {
+ name: "cumulativeBorrowFeeUsd";
+ type: "u64";
+ },
+ {
+ name: "cumulativeTradingVolumeUsd";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "PoolInfoSnapshot";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "currentTime";
+ type: "u64";
+ },
+ {
+ name: "aumUsd";
+ type: "u64";
+ },
+ {
+ name: "lpTokenPrice";
+ type: "u64";
+ },
+ {
+ name: "custodiesInfoSnapshot";
+ type: {
+ vec: {
+ defined: "CustodyInfoSnapshot";
+ };
+ };
+ },
+ {
+ name: "lpCirculatingSupply";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "GetRemoveLiquidityAmountAndFeeParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "lpAmountIn";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "GetSwapAmountAndFeesParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "amountIn";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "ExitPriceAndFee";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "price";
+ type: "u64";
+ },
+ {
+ name: "fee";
+ type: "u64";
+ },
+ {
+ name: "amountOut";
+ type: "u64";
+ },
+ {
+ name: "profitUsd";
+ type: "u64";
+ },
+ {
+ name: "lossUsd";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "AmountAndFee";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "amount";
+ type: "u64";
+ },
+ {
+ name: "fee";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "NewPositionPricesAndFee";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "entryPrice";
+ type: "u64";
+ },
+ {
+ name: "liquidationPrice";
+ type: "u64";
+ },
+ {
+ name: "exitFee";
+ type: "u64";
+ },
+ {
+ name: "liquidationFee";
+ type: "u64";
+ },
+ {
+ name: "size";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "OpenPositionWithSwapAmountAndFees";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "entryPrice";
+ type: "u64";
+ },
+ {
+ name: "liquidationPrice";
+ type: "u64";
+ },
+ {
+ name: "swapFeeIn";
+ type: "u64";
+ },
+ {
+ name: "swapFeeOut";
+ type: "u64";
+ },
+ {
+ name: "exitFee";
+ type: "u64";
+ },
+ {
+ name: "liquidationFee";
+ type: "u64";
+ },
+ {
+ name: "size";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "SwapAmountAndFees";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "amountOut";
+ type: "u64";
+ },
+ {
+ name: "feeIn";
+ type: "u64";
+ },
+ {
+ name: "feeOut";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "ProfitAndLoss";
+ docs: [
+ "Specific to the codebase, this struct is used to store the profit and loss of a position.",
+ ];
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "profitUsd";
+ type: "u64";
+ },
+ {
+ name: "lossUsd";
+ type: "u64";
+ },
+ {
+ name: "exitFee";
+ type: "u64";
+ },
+ {
+ name: "exitFeeUsd";
+ type: "u64";
+ },
+ {
+ name: "borrowFeeUsd";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "Fees";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "swapIn";
+ type: "u16";
+ },
+ {
+ name: "swapOut";
+ type: "u16";
+ },
+ {
+ name: "stableSwapIn";
+ type: "u16";
+ },
+ {
+ name: "stableSwapOut";
+ type: "u16";
+ },
+ {
+ name: "addLiquidity";
+ type: "u16";
+ },
+ {
+ name: "removeLiquidity";
+ type: "u16";
+ },
+ {
+ name: "closePosition";
+ type: "u16";
+ },
+ {
+ name: "liquidation";
+ type: "u16";
+ },
+ {
+ name: "feeMax";
+ type: "u16";
+ },
+ {
+ name: "padding";
+ type: {
+ array: ["u8", 6];
+ };
+ },
+ {
+ name: "padding2";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "FeesStats";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "swapUsd";
+ type: "u64";
+ },
+ {
+ name: "addLiquidityUsd";
+ type: "u64";
+ },
+ {
+ name: "removeLiquidityUsd";
+ type: "u64";
+ },
+ {
+ name: "closePositionUsd";
+ type: "u64";
+ },
+ {
+ name: "liquidationUsd";
+ type: "u64";
+ },
+ {
+ name: "borrowUsd";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "VolumeStats";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "swapUsd";
+ type: "u64";
+ },
+ {
+ name: "addLiquidityUsd";
+ type: "u64";
+ },
+ {
+ name: "removeLiquidityUsd";
+ type: "u64";
+ },
+ {
+ name: "openPositionUsd";
+ type: "u64";
+ },
+ {
+ name: "closePositionUsd";
+ type: "u64";
+ },
+ {
+ name: "liquidationUsd";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "TradeStats";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "profitUsd";
+ type: "u64";
+ },
+ {
+ name: "lossUsd";
+ type: "u64";
+ },
+ {
+ name: "oiLongUsd";
+ type: "u64";
+ },
+ {
+ name: "oiShortUsd";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "Assets";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "collateral";
+ type: "u64";
+ },
+ {
+ name: "owned";
+ type: "u64";
+ },
+ {
+ name: "locked";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "PricingParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "maxInitialLeverage";
+ type: "u32";
+ },
+ {
+ name: "maxLeverage";
+ type: "u32";
+ },
+ {
+ name: "maxPositionLockedUsd";
+ type: "u64";
+ },
+ {
+ name: "maxCumulativeShortPositionSizeUsd";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "BorrowRateParams";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "maxHourlyBorrowInterestRate";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "BorrowRateState";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "currentRate";
+ type: "u64";
+ },
+ {
+ name: "lastUpdate";
+ type: "i64";
+ },
+ {
+ name: "cumulativeInterest";
+ type: {
+ defined: "U128Split";
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "PositionsAccounting";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "openPositions";
+ type: "u64";
+ },
+ {
+ name: "sizeUsd";
+ type: "u64";
+ },
+ {
+ name: "borrowSizeUsd";
+ type: "u64";
+ },
+ {
+ name: "lockedAmount";
+ type: "u64";
+ },
+ {
+ name: "weightedPrice";
+ type: {
+ defined: "U128Split";
+ };
+ },
+ {
+ name: "totalQuantity";
+ type: {
+ defined: "U128Split";
+ };
+ },
+ {
+ name: "cumulativeInterestUsd";
+ type: "u64";
+ },
+ {
+ name: "padding";
+ type: {
+ array: ["u8", 8];
+ };
+ },
+ {
+ name: "cumulativeInterestSnapshot";
+ type: {
+ defined: "U128Split";
+ };
+ },
+ {
+ name: "exitFeeUsd";
+ type: "u64";
+ },
+ {
+ name: "stableLockedAmount";
+ type: {
+ array: [
+ {
+ defined: "StableLockedAmountStat";
+ },
+ 2,
+ ];
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "StableLockedAmountStat";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "custody";
+ type: "publicKey";
+ },
+ {
+ name: "lockedAmount";
+ type: "u64";
+ },
+ {
+ name: "padding";
+ type: {
+ array: ["u8", 8];
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "OraclePrice";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "price";
+ type: "u64";
+ },
+ {
+ name: "exponent";
+ type: "i32";
+ },
+ {
+ name: "confidence";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "TokenRatios";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "target";
+ type: "u16";
+ },
+ {
+ name: "min";
+ type: "u16";
+ },
+ {
+ name: "max";
+ type: "u16";
+ },
+ {
+ name: "padding";
+ type: {
+ array: ["u8", 2];
+ };
+ },
+ ];
+ };
+ },
+ {
+ name: "StakingRound";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "startTime";
+ type: "i64";
+ },
+ {
+ name: "endTime";
+ type: "i64";
+ },
+ {
+ name: "rate";
+ type: "u64";
+ },
+ {
+ name: "totalStake";
+ type: "u64";
+ },
+ {
+ name: "totalClaim";
+ type: "u64";
+ },
+ {
+ name: "lmRate";
+ type: "u64";
+ },
+ {
+ name: "lmTotalStake";
+ type: "u64";
+ },
+ {
+ name: "lmTotalClaim";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "TradingStats";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "openedPositionCount";
+ type: "u64";
+ },
+ {
+ name: "liquidatedPositionCount";
+ type: "u64";
+ },
+ {
+ name: "openingAverageLeverage";
+ type: "u64";
+ },
+ {
+ name: "openingSizeUsd";
+ type: "u64";
+ },
+ {
+ name: "profitsUsd";
+ type: "u64";
+ },
+ {
+ name: "lossesUsd";
+ type: "u64";
+ },
+ {
+ name: "feePaidUsd";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "LiquidStake";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "amount";
+ type: "u64";
+ },
+ {
+ name: "stakeTime";
+ type: "i64";
+ },
+ {
+ name: "claimTime";
+ type: "i64";
+ },
+ {
+ name: "overlapTime";
+ type: "i64";
+ },
+ {
+ name: "overlapAmount";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "LockedStake";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "amount";
+ type: "u64";
+ },
+ {
+ name: "stakeTime";
+ type: "i64";
+ },
+ {
+ name: "claimTime";
+ type: "i64";
+ },
+ {
+ name: "endTime";
+ type: "i64";
+ },
+ {
+ name: "lockDuration";
+ type: "u64";
+ },
+ {
+ name: "rewardMultiplier";
+ type: "u32";
+ },
+ {
+ name: "lmRewardMultiplier";
+ type: "u32";
+ },
+ {
+ name: "voteMultiplier";
+ type: "u32";
+ },
+ {
+ name: "qualifiedForRewardsInResolvedRoundCount";
+ type: "u32";
+ },
+ {
+ name: "amountWithRewardMultiplier";
+ type: "u64";
+ },
+ {
+ name: "amountWithLmRewardMultiplier";
+ type: "u64";
+ },
+ {
+ name: "resolved";
+ type: "u8";
+ },
+ {
+ name: "padding2";
+ type: {
+ array: ["u8", 7];
+ };
+ },
+ {
+ name: "id";
+ type: "u64";
+ },
+ {
+ name: "earlyExit";
+ type: "u8";
+ },
+ {
+ name: "padding3";
+ type: {
+ array: ["u8", 7];
+ };
+ },
+ {
+ name: "earlyExitFee";
+ type: "u64";
+ },
+ {
+ name: "isGenesis";
+ type: "u8";
+ },
+ {
+ name: "padding4";
+ type: {
+ array: ["u8", 7];
+ };
+ },
+ {
+ name: "genesisClaimTime";
+ type: "i64";
+ },
+ ];
+ };
+ },
+ {
+ name: "LimitedString";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "value";
+ type: {
+ array: ["u8", 31];
+ };
+ },
+ {
+ name: "length";
+ type: "u8";
+ },
+ ];
+ };
+ },
+ {
+ name: "U128Split";
+ type: {
+ kind: "struct";
+ fields: [
+ {
+ name: "high";
+ type: "u64";
+ },
+ {
+ name: "low";
+ type: "u64";
+ },
+ ];
+ };
+ },
+ {
+ name: "BucketName";
+ type: {
+ kind: "enum";
+ variants: [
+ {
+ name: "CoreContributor";
+ },
+ {
+ name: "Foundation";
+ },
+ {
+ name: "Ecosystem";
+ },
+ ];
+ };
+ },
+ {
+ name: "ReservedSpots";
+ type: {
+ kind: "enum";
+ variants: [
+ {
+ name: "None";
+ },
+ {
+ name: "Test";
+ fields: [
+ {
+ name: "firstReservedSpot";
+ type: "publicKey";
+ },
+ {
+ name: "secondReservedSpot";
+ type: "publicKey";
+ },
+ ];
+ },
+ ];
+ };
+ },
+ {
+ name: "CortexInitializationStep";
+ type: {
+ kind: "enum";
+ variants: [
+ {
+ name: "NotCreated";
+ },
+ {
+ name: "Step1";
+ },
+ {
+ name: "Step2";
+ },
+ {
+ name: "Step3";
+ },
+ {
+ name: "Initialized";
+ },
+ ];
+ };
+ },
+ {
+ name: "PoolLiquidityState";
+ type: {
+ kind: "enum";
+ variants: [
+ {
+ name: "GenesisLiquidity";
+ },
+ {
+ name: "Idle";
+ },
+ {
+ name: "Active";
+ },
+ ];
+ };
+ },
+ {
+ name: "LeverageCheckType";
+ type: {
+ kind: "enum";
+ variants: [
+ {
+ name: "Initial";
+ },
+ {
+ name: "AddCollateral";
+ },
+ {
+ name: "RemoveCollateral";
+ },
+ {
+ name: "IncreasePosition";
+ },
+ {
+ name: "Liquidate";
+ },
+ ];
+ };
+ },
+ {
+ name: "Side";
+ type: {
+ kind: "enum";
+ variants: [
+ {
+ name: "None";
+ },
+ {
+ name: "Long";
+ },
+ {
+ name: "Short";
+ },
+ ];
+ };
+ },
+ {
+ name: "StakingType";
+ type: {
+ kind: "enum";
+ variants: [
+ {
+ name: "LM";
+ },
+ {
+ name: "LP";
+ },
+ ];
+ };
+ },
+ {
+ name: "StakingInitializationStep";
+ type: {
+ kind: "enum";
+ variants: [
+ {
+ name: "NotCreated";
+ },
+ {
+ name: "Step1";
+ },
+ {
+ name: "Step2";
+ },
+ {
+ name: "Step3";
+ },
+ {
+ name: "Initialized";
+ },
+ ];
+ };
+ },
+ ];
+ events: [
+ {
+ name: "OpenPositionEvent";
+ fields: [
+ {
+ name: "owner";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "position";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "custodyMint";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "side";
+ type: "u8";
+ index: false;
+ },
+ {
+ name: "sizeUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "price";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "collateralAmountUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "leverage";
+ type: "u32";
+ index: false;
+ },
+ {
+ name: "positionId";
+ type: "u64";
+ index: false;
+ },
+ ];
+ },
+ {
+ name: "IncreasePositionEvent";
+ fields: [
+ {
+ name: "owner";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "position";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "custodyMint";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "side";
+ type: "u8";
+ index: false;
+ },
+ {
+ name: "sizeUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "price";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "collateralAmountUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "leverage";
+ type: "u32";
+ index: false;
+ },
+ {
+ name: "positionId";
+ type: "u64";
+ index: false;
+ },
+ ];
+ },
+ {
+ name: "ClosePositionEvent";
+ fields: [
+ {
+ name: "owner";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "position";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "custodyMint";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "side";
+ type: "u8";
+ index: false;
+ },
+ {
+ name: "sizeUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "price";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "collateralAmountUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "profitUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "lossUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "borrowFeeUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "exitFeeUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "positionId";
+ type: "u64";
+ index: false;
+ },
+ ];
+ },
+ {
+ name: "AddCollateralEvent";
+ fields: [
+ {
+ name: "owner";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "position";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "custodyMint";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "side";
+ type: "u8";
+ index: false;
+ },
+ {
+ name: "addAmountUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "newCollateralAmountUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "leverage";
+ type: "u32";
+ index: false;
+ },
+ {
+ name: "positionId";
+ type: "u64";
+ index: false;
+ },
+ ];
+ },
+ {
+ name: "RemoveCollateralEvent";
+ fields: [
+ {
+ name: "owner";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "position";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "custodyMint";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "side";
+ type: "u8";
+ index: false;
+ },
+ {
+ name: "removeAmountUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "newCollateralAmountUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "leverage";
+ type: "u32";
+ index: false;
+ },
+ {
+ name: "positionId";
+ type: "u64";
+ index: false;
+ },
+ ];
+ },
+ {
+ name: "LiquidateEvent";
+ fields: [
+ {
+ name: "owner";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "position";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "custodyMint";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "side";
+ type: "u8";
+ index: false;
+ },
+ {
+ name: "sizeUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "price";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "collateralAmountUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "lossUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "borrowFeeUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "exitFeeUsd";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "positionId";
+ type: "u64";
+ index: false;
+ },
+ ];
+ },
+ {
+ name: "AddLockedStakeEvent";
+ fields: [
+ {
+ name: "owner";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "staking";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "lockedStakeId";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "amount";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "lockedDays";
+ type: "u32";
+ index: false;
+ },
+ ];
+ },
+ {
+ name: "UpgradeLockedStakeEvent";
+ fields: [
+ {
+ name: "owner";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "staking";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "lockedStakeId";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "amount";
+ type: {
+ option: "u64";
+ };
+ index: false;
+ },
+ {
+ name: "lockedDays";
+ type: {
+ option: "u32";
+ };
+ index: false;
+ },
+ ];
+ },
+ {
+ name: "FinalizeLockedStakeEvent";
+ fields: [
+ {
+ name: "owner";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "staking";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "lockedStakeId";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "earlyExit";
+ type: "bool";
+ index: false;
+ },
+ ];
+ },
+ {
+ name: "RemoveLockedStakeEvent";
+ fields: [
+ {
+ name: "owner";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "staking";
+ type: "publicKey";
+ index: false;
+ },
+ {
+ name: "lockedStakeId";
+ type: "u64";
+ index: false;
+ },
+ ];
+ },
+ {
+ name: "SetStopLossEvent";
+ fields: [
+ {
+ name: "positionId";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "stopLossLimitPrice";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "closePositionPrice";
+ type: {
+ option: "u64";
+ };
+ index: false;
+ },
+ {
+ name: "positionSide";
+ type: "u8";
+ index: false;
+ },
+ ];
+ },
+ {
+ name: "SetTakeProfitEvent";
+ fields: [
+ {
+ name: "positionId";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "takeProfitLimitPrice";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "positionSide";
+ type: "u8";
+ index: false;
+ },
+ ];
+ },
+ {
+ name: "CancelStopLossEvent";
+ fields: [
+ {
+ name: "positionId";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "positionSide";
+ type: "u8";
+ index: false;
+ },
+ ];
+ },
+ {
+ name: "CancelTakeProfitEvent";
+ fields: [
+ {
+ name: "positionId";
+ type: "u64";
+ index: false;
+ },
+ {
+ name: "positionSide";
+ type: "u8";
+ index: false;
+ },
+ ];
+ },
+ ];
+ errors: [
+ {
+ code: 6000;
+ name: "MathOverflow";
+ msg: "Overflow in arithmetic operation";
+ },
+ {
+ code: 6001;
+ name: "UnsupportedOracle";
+ msg: "Unsupported price oracle";
+ },
+ {
+ code: 6002;
+ name: "InvalidOracleAccount";
+ msg: "Invalid oracle account";
+ },
+ {
+ code: 6003;
+ name: "InvalidOracleState";
+ msg: "Invalid oracle state";
+ },
+ {
+ code: 6004;
+ name: "StaleOraclePrice";
+ msg: "Stale oracle price";
+ },
+ {
+ code: 6005;
+ name: "InvalidOraclePrice";
+ msg: "Invalid oracle price";
+ },
+ {
+ code: 6006;
+ name: "InvalidEnvironment";
+ msg: "Instruction is not allowed in production";
+ },
+ {
+ code: 6007;
+ name: "InvalidPoolLiquidityState";
+ msg: "Invalid pool liquidity state";
+ },
+ {
+ code: 6008;
+ name: "InvalidCortexState";
+ msg: "Invalid cortex state";
+ },
+ {
+ code: 6009;
+ name: "InvalidStakingState";
+ msg: "Invalid staking state";
+ },
+ {
+ code: 6010;
+ name: "InvalidPoolState";
+ msg: "Invalid pool state";
+ },
+ {
+ code: 6011;
+ name: "InvalidVestState";
+ msg: "Invalid vest state";
+ },
+ {
+ code: 6012;
+ name: "InvalidStakeState";
+ msg: "Invalid stake state";
+ },
+ {
+ code: 6013;
+ name: "InvalidCustody";
+ msg: "Invalid custody";
+ },
+ {
+ code: 6014;
+ name: "InvalidCustodyAccount";
+ msg: "Invalid custody account";
+ },
+ {
+ code: 6015;
+ name: "InvalidCustodyState";
+ msg: "Invalid custody state";
+ },
+ {
+ code: 6016;
+ name: "InvalidCollateralCustody";
+ msg: "Invalid collateral custody";
+ },
+ {
+ code: 6017;
+ name: "InvalidPositionState";
+ msg: "Invalid position state";
+ },
+ {
+ code: 6018;
+ name: "PositionNotInLiquidationRange";
+ msg: "The position is not in liquidation range";
+ },
+ {
+ code: 6019;
+ name: "InvalidStakingRoundState";
+ msg: "Invalid staking round state";
+ },
+ {
+ code: 6020;
+ name: "InvalidAdrenaConfig";
+ msg: "Invalid adrena config";
+ },
+ {
+ code: 6021;
+ name: "InvalidPoolConfig";
+ msg: "Invalid pool config";
+ },
+ {
+ code: 6022;
+ name: "InvalidCustodyConfig";
+ msg: "Invalid custody config";
+ },
+ {
+ code: 6023;
+ name: "InsufficientAmountReturned";
+ msg: "Insufficient token amount returned";
+ },
+ {
+ code: 6024;
+ name: "MaxPriceSlippage";
+ msg: "Price slippage limit exceeded";
+ },
+ {
+ code: 6025;
+ name: "MaxLeverage";
+ msg: "Position leverage limit exceeded";
+ },
+ {
+ code: 6026;
+ name: "MinLeverage";
+ msg: "Position leverage under minimum";
+ },
+ {
+ code: 6027;
+ name: "CustodyAmountLimit";
+ msg: "Custody amount limit exceeded";
+ },
+ {
+ code: 6028;
+ name: "PositionAmountLimit";
+ msg: "Position amount limit exceeded";
+ },
+ {
+ code: 6029;
+ name: "TokenRatioOutOfRange";
+ msg: "Token ratio out of range";
+ },
+ {
+ code: 6030;
+ name: "UnsupportedToken";
+ msg: "Token is not supported";
+ },
+ {
+ code: 6031;
+ name: "InstructionNotAllowed";
+ msg: "Instruction is not allowed at this time";
+ },
+ {
+ code: 6032;
+ name: "MaxUtilization";
+ msg: "Token utilization limit exceeded";
+ },
+ {
+ code: 6033;
+ name: "MaxRegisteredResolvedStakingRoundReached";
+ msg: "Max registered resolved staking round reached";
+ },
+ {
+ code: 6034;
+ name: "InvalidGovernanceProgram";
+ msg: "Governance program do not match Cortex's one";
+ },
+ {
+ code: 6035;
+ name: "InvalidGovernanceRealm";
+ msg: "Governance realm do not match Cortex's one";
+ },
+ {
+ code: 6036;
+ name: "InvalidVestingUnlockTime";
+ msg: "Vesting unlock time is too close or passed";
+ },
+ {
+ code: 6037;
+ name: "InvalidStakingLockingTime";
+ msg: "Invalid staking locking time";
+ },
+ {
+ code: 6038;
+ name: "UserStakeNotFound";
+ msg: "The user stake account specified could not be found";
+ },
+ {
+ code: 6039;
+ name: "InvalidAccountData";
+ msg: "Invalid account data";
+ },
+ {
+ code: 6040;
+ name: "UnresolvedStake";
+ msg: "Stake is not resolved";
+ },
+ {
+ code: 6041;
+ name: "BucketMintLimit";
+ msg: "Reached bucket mint limit";
+ },
+ {
+ code: 6042;
+ name: "GenesisAlpLimitReached";
+ msg: "Genesis ALP add liquidity limit reached";
+ },
+ {
+ code: 6043;
+ name: "PermissionlessOracleMissingSignature";
+ msg: "Permissionless oracle update must be preceded by Ed25519 signature verification instruction";
+ },
+ {
+ code: 6044;
+ name: "PermissionlessOracleMalformedEd25519Data";
+ msg: "Ed25519 signature verification data does not match expected format";
+ },
+ {
+ code: 6045;
+ name: "PermissionlessOracleSignerMismatch";
+ msg: "Ed25519 signature was not signed by the oracle authority";
+ },
+ {
+ code: 6046;
+ name: "PermissionlessOracleMessageMismatch";
+ msg: "Signed message does not match instruction params";
+ },
+ {
+ code: 6047;
+ name: "CustodyStableLockedAmountNotFound";
+ msg: "Cannot find custody stable locked amount";
+ },
+ {
+ code: 6048;
+ name: "CustodyNotFound";
+ msg: "Cannot find custody";
+ },
+ {
+ code: 6049;
+ name: "InsufficientBucketReserve";
+ msg: "The bucket does not contain enough token for reserving this allocation";
+ },
+ {
+ code: 6050;
+ name: "UserNicknameTooLong";
+ msg: "User nickname exceed 24 characters";
+ },
+ {
+ code: 6051;
+ name: "UserNicknameTooShort";
+ msg: "User nickname is less than 3 characters";
+ },
+ {
+ code: 6052;
+ name: "InvalidGenesisLockState";
+ msg: "Invalid genesis lock state";
+ },
+ {
+ code: 6053;
+ name: "GenesisLockCampaignFullySubscribed";
+ msg: "The campaign is fully subscribed";
+ },
+ {
+ code: 6054;
+ name: "PoolAumSoftCapUsdReached";
+ msg: "The pool is fully subscribed";
+ },
+ {
+ code: 6055;
+ name: "MaxRegisteredPool";
+ msg: "The number of registered pool reached max amount";
+ },
+ {
+ code: 6056;
+ name: "MaxRegisteredCustodies";
+ msg: "The number of registered custody reached max amount";
+ },
+ {
+ code: 6057;
+ name: "MaxCumulativeShortPositionSizeLimit";
+ msg: "The short limit for this asset has been reached";
+ },
+ {
+ code: 6058;
+ name: "LockedStakeArrayFull";
+ msg: "The max number of LockedStaking has been reached";
+ },
+ {
+ code: 6059;
+ name: "IndexOutOfBounds";
+ msg: "Requested index is out of bounds";
+ },
+ {
+ code: 6060;
+ name: "InvalidCaller";
+ msg: "The instruction must be call with a specific account as caller";
+ },
+ {
+ code: 6061;
+ name: "InvalidBucketName";
+ msg: "Invalid bucket name";
+ },
+ {
+ code: 6062;
+ name: "InvalidThreadId";
+ msg: "(deprecated)The provided Sablier thread does not have the expected ID";
+ },
+ {
+ code: 6063;
+ name: "PythPriceExponentTooLargeIncurringPrecisionLoss";
+ msg: "The exponent used for pyth price lead to high precision loss";
+ },
+ {
+ code: 6064;
+ name: "MissingClosePositionPrice";
+ msg: "The close position price is mandatory";
+ },
+ {
+ code: 6065;
+ name: "InvalidVoteMultiplier";
+ msg: "Invalid vote multiplier";
+ },
+ {
+ code: 6066;
+ name: "PositionTooYoung";
+ msg: "A position cannot be close right after open, a slight delay is enforced";
+ },
+ {
+ code: 6067;
+ name: "InsufficientCollateral";
+ msg: "The minimum amount of collateral posted to open a position is not met";
+ },
+ {
+ code: 6068;
+ name: "InvalidLockDuration";
+ msg: "The provided lock duration isn't valid";
+ },
+ {
+ code: 6069;
+ name: "StakeNotEstablished";
+ msg: "The stake isn't established yet";
+ },
+ {
+ code: 6070;
+ name: "PositionAlreadyClosed";
+ msg: "The position is already pending cleanup and close";
+ },
+ ];
+};
+
+export const IDL: Adrena = {
+ version: "1.1.5",
+ name: "adrena",
+ instructions: [
+ {
+ name: "initOneCore",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "protocolFeeRecipient",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "rent",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "InitOneParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "initTwoLmTokenMetadata",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "lmTokenMintMetadata",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "mplTokenMetadataProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "rent",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ ],
+ args: [],
+ },
+ {
+ name: "initThreeGovernance",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "governanceTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "governanceRealm",
+ isMut: false,
+ isSigner: false,
+ docs: [
+ "#6",
+ "A realm represent one project within the governance program",
+ ],
+ },
+ {
+ name: "governanceProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "rent",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ ],
+ args: [],
+ },
+ {
+ name: "initFourVesting",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "vestRegistry",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "rent",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ ],
+ args: [],
+ },
+ {
+ name: "addVest",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "owner",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#3"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "vestRegistry",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "vest",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "governanceTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "governanceRealm",
+ isMut: false,
+ isSigner: false,
+ docs: [
+ "#10",
+ "A realm represent one project within the governance program",
+ ],
+ },
+ {
+ name: "governanceRealmConfig",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "governanceGoverningTokenHolding",
+ isMut: true,
+ isSigner: false,
+ docs: [
+ "#12",
+ "Token account owned by governance program holding user's locked tokens",
+ ],
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord",
+ isMut: true,
+ isSigner: false,
+ docs: ["#13", "Account owned by governance storing user information"],
+ },
+ {
+ name: "governanceProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "rent",
+ isMut: false,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "AddVestParams",
+ },
+ },
+ ],
+ returns: "u8",
+ },
+ {
+ name: "claimVest",
+ accounts: [
+ {
+ name: "caller",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "owner",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "receivingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "vestRegistry",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "vest",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "governanceTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "governanceRealm",
+ isMut: false,
+ isSigner: false,
+ docs: [
+ "#11",
+ "A realm represent one project within the governance program",
+ ],
+ },
+ {
+ name: "governanceRealmConfig",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "governanceGoverningTokenHolding",
+ isMut: true,
+ isSigner: false,
+ docs: [
+ "#13",
+ "Token account owned by governance program holding user's locked tokens",
+ ],
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord",
+ isMut: true,
+ isSigner: false,
+ docs: ["#14", "Account owned by governance storing user information"],
+ },
+ {
+ name: "governanceProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#18"],
+ },
+ {
+ name: "rent",
+ isMut: false,
+ isSigner: false,
+ docs: ["#19"],
+ },
+ ],
+ args: [],
+ returns: "u64",
+ },
+ {
+ name: "addPoolPartOne",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "lpTokenMintMetadata",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "mplTokenMetadataProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "rent",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "AddPoolPartOneParams",
+ },
+ },
+ ],
+ returns: "u8",
+ },
+ {
+ name: "addPoolPartTwo",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "genesisLock",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "rent",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "AddPoolPartTwoParams",
+ },
+ },
+ ],
+ returns: "u8",
+ },
+ {
+ name: "removePool",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ ],
+ args: [],
+ returns: "u8",
+ },
+ {
+ name: "addCustody",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "custodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "custodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "custodyTokenMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "rent",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "AddCustodyParams",
+ },
+ },
+ ],
+ returns: "u8",
+ },
+ {
+ name: "removeCustody",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "custodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "RemoveCustodyParams",
+ },
+ },
+ ],
+ returns: "u8",
+ },
+ {
+ name: "setCustodyConfig",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "SetCustodyConfigParams",
+ },
+ },
+ ],
+ returns: "u8",
+ },
+ {
+ name: "setCustodyAllowSwap",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "SetCustodyAllowSwapParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "setCustodyAllowTrade",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "SetCustodyAllowTradeParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "setPoolAllowSwap",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "SetPoolAllowSwapParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "setPoolAllowTrade",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "SetPoolAllowTradeParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "setPoolAumSoftCapUsd",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "SetPoolAumSoftCapUsdParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "swap",
+ accounts: [
+ {
+ name: "caller",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "owner",
+ isMut: false,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "fundingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "receivingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "lmStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "lpStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "stakingRewardTokenCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "receivingCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "receivingCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "receivingCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "dispensingCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "dispensingCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "dispensingCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#18"],
+ },
+ {
+ name: "lmStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#19"],
+ },
+ {
+ name: "lpStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#20"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#21"],
+ },
+ {
+ name: "protocolFeeRecipient",
+ isMut: true,
+ isSigner: false,
+ docs: ["#22"],
+ },
+ {
+ name: "userProfile",
+ isMut: true,
+ isSigner: false,
+ isOptional: true,
+ docs: ["#23"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#24"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#25"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "SwapParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "addLiquidity",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "fundingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "lpTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: [
+ "#3 Front end will target the owner account, but not limited to",
+ ],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lmStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "lpStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "stakingRewardTokenCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "custodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "custodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "lmStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "lpStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#18"],
+ },
+ {
+ name: "protocolFeeRecipient",
+ isMut: true,
+ isSigner: false,
+ docs: ["#19"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#20"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#21"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "AddLiquidityParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "addGenesisLiquidity",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "fundingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "lpUserStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lpStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "lpStakingStakedTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "custodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "custodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "governanceTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "governanceRealm",
+ isMut: false,
+ isSigner: false,
+ docs: [
+ "#15",
+ "A realm represent one project within the governance program",
+ ],
+ },
+ {
+ name: "governanceRealmConfig",
+ isMut: false,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "governanceGoverningTokenHolding",
+ isMut: true,
+ isSigner: false,
+ docs: [
+ "#17",
+ "Token account owned by governance program holding user's locked tokens",
+ ],
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord",
+ isMut: true,
+ isSigner: false,
+ docs: ["#18", "Account owned by governance storing user information"],
+ },
+ {
+ name: "governanceProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#19"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#20"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#21"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#22"],
+ },
+ {
+ name: "genesisLock",
+ isMut: true,
+ isSigner: false,
+ docs: ["#23"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "AddGenesisLiquidityParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "genesisOtcOut",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "daoReceivingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "custodyUsdc",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "custodyUsdcTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "genesisLock",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ ],
+ args: [],
+ },
+ {
+ name: "genesisOtcIn",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "fundingAccountOne",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "fundingAccountTwo",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "fundingAccountThree",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "custodyOne",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "custodyOneTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "custodyTwo",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "custodyTwoTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "custodyThree",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "custodyThreeTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "genesisLock",
+ isMut: true,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "GenesisOtcInParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "removeLiquidity",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "receivingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: [
+ "#2 Front end will target the owner account, but not limited to",
+ ],
+ },
+ {
+ name: "lpTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lmStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "lpStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "stakingRewardTokenCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "custodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "custodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "lmStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "lpStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "protocolFeeRecipient",
+ isMut: true,
+ isSigner: false,
+ docs: ["#18"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#19"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#20"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "RemoveLiquidityParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "openPositionLong",
+ accounts: [
+ {
+ name: "owner",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "fundingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "custodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "custodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "userProfile",
+ isMut: true,
+ isSigner: false,
+ isOptional: true,
+ docs: ["#12"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "OpenPositionLongParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "openPositionShort",
+ accounts: [
+ {
+ name: "owner",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "fundingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "collateralCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "collateralCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "collateralCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "userProfile",
+ isMut: true,
+ isSigner: false,
+ isOptional: true,
+ docs: ["#13"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "OpenPositionShortParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "openOrIncreasePositionWithSwapLong",
+ accounts: [
+ {
+ name: "owner",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "fundingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "collateralAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "receivingCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "receivingCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "receivingCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "principalCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "principalCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "principalCustodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "principalCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "lmStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "lpStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "stakingRewardTokenCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#18"],
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#19"],
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#20"],
+ },
+ {
+ name: "lmStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#21"],
+ },
+ {
+ name: "lpStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#22"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#23"],
+ },
+ {
+ name: "protocolFeeRecipient",
+ isMut: true,
+ isSigner: false,
+ docs: ["#24"],
+ },
+ {
+ name: "userProfile",
+ isMut: true,
+ isSigner: false,
+ isOptional: true,
+ docs: ["#25"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#26"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#27"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#28"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "OpenPositionWithSwapParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "openOrIncreasePositionWithSwapShort",
+ accounts: [
+ {
+ name: "owner",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "fundingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "collateralAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "receivingCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "receivingCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "receivingCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "collateralCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "collateralCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "collateralCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "principalCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "principalCustodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "principalCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "lmStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "lpStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#18"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#19"],
+ },
+ {
+ name: "stakingRewardTokenCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#20"],
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#21"],
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#22"],
+ },
+ {
+ name: "lmStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#23"],
+ },
+ {
+ name: "lpStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#24"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#25"],
+ },
+ {
+ name: "protocolFeeRecipient",
+ isMut: true,
+ isSigner: false,
+ docs: ["#26"],
+ },
+ {
+ name: "userProfile",
+ isMut: true,
+ isSigner: false,
+ isOptional: true,
+ docs: ["#27"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#28"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#29"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#30"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "OpenPositionWithSwapParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "addCollateralLong",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "fundingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "custodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "custodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "AddCollateralLongParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "addCollateralShort",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "fundingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "collateralCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "collateralCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "collateralCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "AddCollateralShortParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "removeCollateralLong",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "receivingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "custodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "custodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "RemoveCollateralLongParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "removeCollateralShort",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "receivingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "collateralCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "collateralCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "collateralCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "RemoveCollateralShortParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "closePositionLong",
+ accounts: [
+ {
+ name: "caller",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "receivingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lmStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "lpStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "stakingRewardTokenCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "custodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "custodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "lmStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "lpStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#18"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#19"],
+ },
+ {
+ name: "protocolFeeRecipient",
+ isMut: true,
+ isSigner: false,
+ docs: ["#20"],
+ },
+ {
+ name: "userProfile",
+ isMut: true,
+ isSigner: false,
+ isOptional: true,
+ docs: ["#21"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#22"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#23"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "ClosePositionLongParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "closePositionShort",
+ accounts: [
+ {
+ name: "caller",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "receivingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lmStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "lpStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "stakingRewardTokenCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "collateralCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "collateralCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "collateralCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "lmStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#18"],
+ },
+ {
+ name: "lpStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#19"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#20"],
+ },
+ {
+ name: "protocolFeeRecipient",
+ isMut: true,
+ isSigner: false,
+ docs: ["#21"],
+ },
+ {
+ name: "userProfile",
+ isMut: true,
+ isSigner: false,
+ isOptional: true,
+ docs: ["#22"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#23"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#24"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "ClosePositionShortParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "liquidateLong",
+ accounts: [
+ {
+ name: "signer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "receivingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "lmStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lpStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "stakingRewardTokenCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "custodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "custodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "lmStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "lpStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#18"],
+ },
+ {
+ name: "protocolFeeRecipient",
+ isMut: true,
+ isSigner: false,
+ docs: ["#19"],
+ },
+ {
+ name: "userProfile",
+ isMut: true,
+ isSigner: false,
+ isOptional: true,
+ docs: ["#20"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#21"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#22"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "LiquidateLongParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "liquidateShort",
+ accounts: [
+ {
+ name: "signer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "receivingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "lmStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lpStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "stakingRewardTokenCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "stakingRewardTokenCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "stakingRewardTokenCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "collateralCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "collateralCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "collateralCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "lmStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "lpStakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#18"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#19"],
+ },
+ {
+ name: "protocolFeeRecipient",
+ isMut: true,
+ isSigner: false,
+ docs: ["#20"],
+ },
+ {
+ name: "userProfile",
+ isMut: true,
+ isSigner: false,
+ isOptional: true,
+ docs: ["#21"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#22"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#23"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "LiquidateShortParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "updatePoolAum",
+ accounts: [
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ ],
+ args: [],
+ returns: "u128",
+ },
+ {
+ name: "getAddLiquidityAmountAndFee",
+ accounts: [
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#1"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "custody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "custodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "GetAddLiquidityAmountAndFeeParams",
+ },
+ },
+ ],
+ returns: {
+ defined: "AmountAndFee",
+ },
+ },
+ {
+ name: "getRemoveLiquidityAmountAndFee",
+ accounts: [
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#1"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "custody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "custodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "GetRemoveLiquidityAmountAndFeeParams",
+ },
+ },
+ ],
+ returns: {
+ defined: "AmountAndFee",
+ },
+ },
+ {
+ name: "getEntryPriceAndFee",
+ accounts: [
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#1"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "custody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "collateralCustody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "collateralCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "GetEntryPriceAndFeeParams",
+ },
+ },
+ ],
+ returns: {
+ defined: "NewPositionPricesAndFee",
+ },
+ },
+ {
+ name: "disableTokensFreezeCapabilities",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ ],
+ args: [],
+ },
+ {
+ name: "genesisStakePatch",
+ accounts: [
+ {
+ name: "caller",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "owner",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "rewardTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lmTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "stakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "stakingLmRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "userStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "staking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "genesisLock",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#18"],
+ },
+ ],
+ args: [],
+ },
+ {
+ name: "getOpenPositionWithSwapAmountAndFees",
+ accounts: [
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#1"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "receivingCustody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "receivingCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "collateralCustody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "collateralCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "principalCustody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "principalCustodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "GetOpenPositionWithSwapAmountAndFeesParams",
+ },
+ },
+ ],
+ returns: {
+ defined: "OpenPositionWithSwapAmountAndFees",
+ },
+ },
+ {
+ name: "getExitPriceAndFee",
+ accounts: [
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#1"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "position",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "custody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "collateralCustody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "collateralCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ ],
+ args: [],
+ returns: {
+ defined: "ExitPriceAndFee",
+ },
+ },
+ {
+ name: "getPnl",
+ accounts: [
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#1"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "position",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "custody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "collateralCustody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "collateralCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ ],
+ args: [],
+ returns: {
+ defined: "ProfitAndLoss",
+ },
+ },
+ {
+ name: "getLiquidationPrice",
+ accounts: [
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#1"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "position",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "custody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "collateralCustody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "collateralCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "GetLiquidationPriceParams",
+ },
+ },
+ ],
+ returns: "u64",
+ },
+ {
+ name: "getLiquidationState",
+ accounts: [
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#1"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "position",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "custody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "collateralCustody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "collateralCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ ],
+ args: [],
+ returns: "u8",
+ },
+ {
+ name: "getOraclePrice",
+ accounts: [
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#1"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "custody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "custodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ ],
+ args: [],
+ returns: "u64",
+ },
+ {
+ name: "getSwapAmountAndFees",
+ accounts: [
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#1"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "receivingCustody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "receivingCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "dispensingCustody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "dispensingCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "GetSwapAmountAndFeesParams",
+ },
+ },
+ ],
+ returns: {
+ defined: "SwapAmountAndFees",
+ },
+ },
+ {
+ name: "getAssetsUnderManagement",
+ accounts: [
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#1"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ ],
+ args: [],
+ returns: "u128",
+ },
+ {
+ name: "initUserStaking",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "rewardTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "lmTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "stakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "stakingLmRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "userStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "staking",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "genesisLock",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ ],
+ args: [],
+ },
+ {
+ name: "initUserProfile",
+ accounts: [
+ {
+ name: "user",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "userProfile",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "InitUserProfileParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "editUserProfile",
+ accounts: [
+ {
+ name: "user",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "userProfile",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "EditUserProfileParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "deleteUserProfile",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "user",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#3"],
+ },
+ {
+ name: "userProfile",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ ],
+ args: [],
+ },
+ {
+ name: "initStakingOne",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "staking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "stakingStakedTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "stakingStakedTokenMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "rent",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "InitStakingOneParams",
+ },
+ },
+ ],
+ returns: "u8",
+ },
+ {
+ name: "initStakingTwo",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "staking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "stakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ ],
+ args: [],
+ returns: "u8",
+ },
+ {
+ name: "initStakingThree",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "staking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "stakingLmRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ ],
+ args: [],
+ returns: "u8",
+ },
+ {
+ name: "initStakingFour",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "staking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "stakingStakedTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "stakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "stakingLmRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "stakingStakedTokenMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ ],
+ args: [],
+ returns: "u8",
+ },
+ {
+ name: "addLiquidStake",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "fundingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "rewardTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "lmTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "stakingStakedTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "stakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "stakingLmRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "userStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "staking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "genesisLock",
+ isMut: true,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "governanceTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "governanceRealm",
+ isMut: false,
+ isSigner: false,
+ docs: [
+ "#18",
+ "A realm represent one project within the governance program",
+ ],
+ },
+ {
+ name: "governanceRealmConfig",
+ isMut: false,
+ isSigner: false,
+ docs: ["#19"],
+ },
+ {
+ name: "governanceGoverningTokenHolding",
+ isMut: true,
+ isSigner: false,
+ docs: [
+ "#20",
+ "Token account owned by governance program holding user's locked tokens",
+ ],
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord",
+ isMut: true,
+ isSigner: false,
+ docs: ["#21", "Account owned by governance storing user information"],
+ },
+ {
+ name: "governanceProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#22"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#23"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#24"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#25"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "AddLiquidStakeParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "addLockedStake",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "fundingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "rewardTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "stakingStakedTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "stakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "userStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "staking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "governanceTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "governanceRealm",
+ isMut: false,
+ isSigner: false,
+ docs: [
+ "#13",
+ "A realm represent one project within the governance program",
+ ],
+ },
+ {
+ name: "governanceRealmConfig",
+ isMut: false,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "governanceGoverningTokenHolding",
+ isMut: true,
+ isSigner: false,
+ docs: [
+ "#15",
+ "Token account owned by governance program holding user's locked tokens",
+ ],
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord",
+ isMut: true,
+ isSigner: false,
+ docs: ["#16", "Account owned by governance storing user information"],
+ },
+ {
+ name: "governanceProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#18"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#19"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#20"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "AddLockedStakeParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "upgradeLockedStake",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "fundingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "rewardTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "lmTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "stakingStakedTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "stakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "userStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "staking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "governanceTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "genesisLock",
+ isMut: true,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "governanceRealm",
+ isMut: false,
+ isSigner: false,
+ docs: [
+ "#16",
+ "A realm represent one project within the governance program",
+ ],
+ },
+ {
+ name: "governanceRealmConfig",
+ isMut: false,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "governanceGoverningTokenHolding",
+ isMut: true,
+ isSigner: false,
+ docs: [
+ "#18",
+ "Token account owned by governance program holding user's locked tokens",
+ ],
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord",
+ isMut: true,
+ isSigner: false,
+ docs: ["#19", "Account owned by governance storing user information"],
+ },
+ {
+ name: "stakingLmRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#20"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#21"],
+ },
+ {
+ name: "governanceProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#22"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#23"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#24"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "UpgradeLockedStakeParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "removeLiquidStake",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "stakedTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "lmTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "rewardTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "stakingStakedTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "stakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "stakingLmRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "userStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "staking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "genesisLock",
+ isMut: true,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "governanceTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "governanceRealm",
+ isMut: false,
+ isSigner: false,
+ docs: [
+ "#17",
+ "A realm represent one project within the governance program",
+ ],
+ },
+ {
+ name: "governanceRealmConfig",
+ isMut: false,
+ isSigner: false,
+ docs: ["#18"],
+ },
+ {
+ name: "governanceGoverningTokenHolding",
+ isMut: true,
+ isSigner: false,
+ docs: [
+ "#19",
+ "Token account owned by governance program holding user's locked tokens",
+ ],
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord",
+ isMut: true,
+ isSigner: false,
+ docs: ["#20", "Account owned by governance storing user information"],
+ },
+ {
+ name: "governanceProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#21"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#22"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#23"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#24"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "RemoveLiquidStakeParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "removeLockedStake",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "lmTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "stakedTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "rewardTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "stakingStakedTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "stakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "stakingLmRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "userStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "staking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "genesisLock",
+ isMut: true,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "stakedTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "governanceTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "governanceRealm",
+ isMut: false,
+ isSigner: false,
+ docs: [
+ "#18",
+ "A realm represent one project within the governance program",
+ ],
+ },
+ {
+ name: "governanceRealmConfig",
+ isMut: false,
+ isSigner: false,
+ docs: ["#19"],
+ },
+ {
+ name: "governanceGoverningTokenHolding",
+ isMut: true,
+ isSigner: false,
+ docs: [
+ "#20",
+ "Token account owned by governance program holding user's locked tokens",
+ ],
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord",
+ isMut: true,
+ isSigner: false,
+ docs: ["#21", "Account owned by governance storing user information"],
+ },
+ {
+ name: "governanceProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#22"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#23"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#24"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#25"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "RemoveLockedStakeParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "claimStakes",
+ accounts: [
+ {
+ name: "caller",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "rewardTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lmTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "stakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "stakingLmRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "userStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "staking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "genesisLock",
+ isMut: true,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#17"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#18"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "ClaimStakesParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "finalizeGenesisLockCampaign",
+ accounts: [
+ {
+ name: "caller",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "genesisLock",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ ],
+ args: [],
+ },
+ {
+ name: "setPoolLiquidityState",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "SetPoolLiquidityStateParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "finalizeLockedStake",
+ accounts: [
+ {
+ name: "caller",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "userStaking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "staking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "governanceTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "governanceRealm",
+ isMut: false,
+ isSigner: false,
+ docs: [
+ "#9",
+ "A realm represent one project within the governance program",
+ ],
+ },
+ {
+ name: "governanceRealmConfig",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "governanceGoverningTokenHolding",
+ isMut: true,
+ isSigner: false,
+ docs: [
+ "#11",
+ "Token account owned by governance program holding user's locked tokens",
+ ],
+ },
+ {
+ name: "governanceGoverningTokenOwnerRecord",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12", "Account owned by governance storing user information"],
+ },
+ {
+ name: "governanceProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#16"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "FinalizeLockedStakeParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "resolveStakingRound",
+ accounts: [
+ {
+ name: "caller",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "stakingStakedTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "stakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "stakingLmRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "staking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ ],
+ args: [],
+ },
+ {
+ name: "getLpTokenPrice",
+ accounts: [
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#1"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ ],
+ args: [],
+ returns: "u64",
+ },
+ {
+ name: "getPoolInfoSnapshot",
+ accounts: [
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#1"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "lpTokenMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ ],
+ args: [],
+ returns: {
+ defined: "PoolInfoSnapshot",
+ },
+ },
+ {
+ name: "mintLmTokensFromBucket",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "receivingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "MintLmTokensFromBucketParams",
+ },
+ },
+ ],
+ returns: "u8",
+ },
+ {
+ name: "increasePositionLong",
+ accounts: [
+ {
+ name: "owner",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "fundingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "custodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "custodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "IncreasePositionLongParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "patchCustodyLockedAmount",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "usdcCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "bonkCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "wbtcCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "jitoCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ ],
+ args: [],
+ },
+ {
+ name: "increasePositionShort",
+ accounts: [
+ {
+ name: "owner",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "fundingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "custodyTradeOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "collateralCustody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "collateralCustodyOracle",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "collateralCustodyTokenAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#14"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#15"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "IncreasePositionShortParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "setStakingLmEmissionPotentiometers",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "staking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "SetStakingLmEmissionPotentiometersParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "setAdmin",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "SetAdminParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "setProtocolFeeRecipient",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "protocolFeeRecipient",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ ],
+ args: [],
+ },
+ {
+ name: "setCustodyMaxCumulativeShortPositionSizeUsd",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "SetCustodyMaxCumulativeShortPositionSizeUsdParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "setTakeProfitLong",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "SetTakeProfitLongParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "setStopLossLong",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "custody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "SetStopLossLongParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "setTakeProfitShort",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "custody",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "SetTakeProfitShortParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "setStopLossShort",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "custody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ ],
+ args: [
+ {
+ name: "params",
+ type: {
+ defined: "SetStopLossShortParams",
+ },
+ },
+ ],
+ },
+ {
+ name: "cancelTakeProfit",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "custody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ ],
+ args: [],
+ },
+ {
+ name: "cancelStopLoss",
+ accounts: [
+ {
+ name: "owner",
+ isMut: true,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: false,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "position",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "custody",
+ isMut: false,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ ],
+ args: [],
+ },
+ {
+ name: "patchStakingRound",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "payer",
+ isMut: true,
+ isSigner: true,
+ docs: ["#2"],
+ },
+ {
+ name: "fundingAccount",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "stakingRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ {
+ name: "stakingLmRewardTokenVault",
+ isMut: true,
+ isSigner: false,
+ docs: ["#5"],
+ },
+ {
+ name: "transferAuthority",
+ isMut: false,
+ isSigner: false,
+ docs: ["#6"],
+ },
+ {
+ name: "staking",
+ isMut: true,
+ isSigner: false,
+ docs: ["#7"],
+ },
+ {
+ name: "cortex",
+ isMut: true,
+ isSigner: false,
+ docs: ["#8"],
+ },
+ {
+ name: "lmTokenMint",
+ isMut: true,
+ isSigner: false,
+ docs: ["#9"],
+ },
+ {
+ name: "feeRedistributionMint",
+ isMut: false,
+ isSigner: false,
+ docs: ["#10"],
+ },
+ {
+ name: "adrenaProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#11"],
+ },
+ {
+ name: "systemProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#12"],
+ },
+ {
+ name: "tokenProgram",
+ isMut: false,
+ isSigner: false,
+ docs: ["#13"],
+ },
+ ],
+ args: [],
+ },
+ {
+ name: "setPoolWhitelistedSwapper",
+ accounts: [
+ {
+ name: "admin",
+ isMut: false,
+ isSigner: true,
+ docs: ["#1"],
+ },
+ {
+ name: "cortex",
+ isMut: false,
+ isSigner: false,
+ docs: ["#2"],
+ },
+ {
+ name: "pool",
+ isMut: true,
+ isSigner: false,
+ docs: ["#3"],
+ },
+ {
+ name: "whitelistedSwapper",
+ isMut: false,
+ isSigner: false,
+ docs: ["#4"],
+ },
+ ],
+ args: [],
+ },
+ ],
+ accounts: [
+ {
+ name: "cortex",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "bump",
+ type: "u8",
+ },
+ {
+ name: "transferAuthorityBump",
+ type: "u8",
+ },
+ {
+ name: "lmTokenBump",
+ type: "u8",
+ },
+ {
+ name: "governanceTokenBump",
+ type: "u8",
+ },
+ {
+ name: "initialized",
+ type: "u8",
+ },
+ {
+ name: "feeConversionDecimals",
+ type: "u8",
+ },
+ {
+ name: "padding",
+ type: {
+ array: ["u8", 2],
+ },
+ },
+ {
+ name: "lmTokenMint",
+ type: "publicKey",
+ },
+ {
+ name: "inceptionTime",
+ type: "i64",
+ },
+ {
+ name: "admin",
+ type: "publicKey",
+ },
+ {
+ name: "feeRedistributionMint",
+ type: "publicKey",
+ },
+ {
+ name: "protocolFeeRecipient",
+ type: "publicKey",
+ },
+ {
+ name: "pools",
+ type: {
+ array: ["publicKey", 4],
+ },
+ },
+ {
+ name: "userProfilesCount",
+ type: "u64",
+ },
+ {
+ name: "governanceProgram",
+ type: "publicKey",
+ },
+ {
+ name: "governanceRealm",
+ type: "publicKey",
+ },
+ {
+ name: "coreContributorBucketAllocation",
+ type: "u64",
+ },
+ {
+ name: "foundationBucketAllocation",
+ type: "u64",
+ },
+ {
+ name: "ecosystemBucketAllocation",
+ type: "u64",
+ },
+ {
+ name: "coreContributorBucketVestedAmount",
+ type: "u64",
+ },
+ {
+ name: "coreContributorBucketMintedAmount",
+ type: "u64",
+ },
+ {
+ name: "foundationBucketVestedAmount",
+ type: "u64",
+ },
+ {
+ name: "foundationBucketMintedAmount",
+ type: "u64",
+ },
+ {
+ name: "ecosystemBucketVestedAmount",
+ type: "u64",
+ },
+ {
+ name: "ecosystemBucketMintedAmount",
+ type: "u64",
+ },
+ {
+ name: "genesisLiquidityAlpAmount",
+ type: "u64",
+ },
+ {
+ name: "uniquePositionIdCounter",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "custody",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "bump",
+ type: "u8",
+ },
+ {
+ name: "tokenAccountBump",
+ type: "u8",
+ },
+ {
+ name: "allowTrade",
+ type: "u8",
+ },
+ {
+ name: "allowSwap",
+ type: "u8",
+ },
+ {
+ name: "decimals",
+ type: "u8",
+ },
+ {
+ name: "isStable",
+ type: "u8",
+ },
+ {
+ name: "padding",
+ type: {
+ array: ["u8", 2],
+ },
+ },
+ {
+ name: "pool",
+ type: "publicKey",
+ },
+ {
+ name: "mint",
+ type: "publicKey",
+ },
+ {
+ name: "tokenAccount",
+ type: "publicKey",
+ },
+ {
+ name: "oracle",
+ type: "publicKey",
+ },
+ {
+ name: "tradeOracle",
+ type: "publicKey",
+ },
+ {
+ name: "pricing",
+ type: {
+ defined: "PricingParams",
+ },
+ },
+ {
+ name: "fees",
+ type: {
+ defined: "Fees",
+ },
+ },
+ {
+ name: "borrowRate",
+ type: {
+ defined: "BorrowRateParams",
+ },
+ },
+ {
+ name: "collectedFees",
+ type: {
+ defined: "FeesStats",
+ },
+ },
+ {
+ name: "volumeStats",
+ type: {
+ defined: "VolumeStats",
+ },
+ },
+ {
+ name: "tradeStats",
+ type: {
+ defined: "TradeStats",
+ },
+ },
+ {
+ name: "assets",
+ type: {
+ defined: "Assets",
+ },
+ },
+ {
+ name: "longPositions",
+ type: {
+ defined: "PositionsAccounting",
+ },
+ },
+ {
+ name: "shortPositions",
+ type: {
+ defined: "PositionsAccounting",
+ },
+ },
+ {
+ name: "borrowRateState",
+ type: {
+ defined: "BorrowRateState",
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "genesisLock",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "bump",
+ type: "u8",
+ },
+ {
+ name: "hasTransitionedToFullyPublic",
+ type: "u8",
+ },
+ {
+ name: "hasCompletedOtcIn",
+ type: "u8",
+ },
+ {
+ name: "hasCompletedOtcOut",
+ type: "u8",
+ },
+ {
+ name: "padding",
+ type: {
+ array: ["u8", 4],
+ },
+ },
+ {
+ name: "campaignDuration",
+ type: "i64",
+ },
+ {
+ name: "reservedGrantDuration",
+ type: "i64",
+ },
+ {
+ name: "campaignStartDate",
+ type: "i64",
+ },
+ {
+ name: "publicAmount",
+ type: "u64",
+ },
+ {
+ name: "reservedAmount",
+ type: "u64",
+ },
+ {
+ name: "publicAmountClaimed",
+ type: "u64",
+ },
+ {
+ name: "reservedAmountClaimed",
+ type: "u64",
+ },
+ {
+ name: "reservedGrantOwners",
+ type: {
+ array: ["publicKey", 43],
+ },
+ },
+ {
+ name: "reservedGrantAmounts",
+ type: {
+ array: ["u64", 43],
+ },
+ },
+ {
+ name: "paddingUnsafe",
+ type: {
+ array: ["u8", 8],
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "pool",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "bump",
+ type: "u8",
+ },
+ {
+ name: "lpTokenBump",
+ type: "u8",
+ },
+ {
+ name: "nbStableCustody",
+ type: "u8",
+ },
+ {
+ name: "initialized",
+ type: "u8",
+ },
+ {
+ name: "allowTrade",
+ type: "u8",
+ },
+ {
+ name: "allowSwap",
+ type: "u8",
+ },
+ {
+ name: "liquidityState",
+ type: "u8",
+ },
+ {
+ name: "registeredCustodyCount",
+ type: "u8",
+ },
+ {
+ name: "name",
+ type: {
+ defined: "LimitedString",
+ },
+ },
+ {
+ name: "custodies",
+ type: {
+ array: ["publicKey", 8],
+ },
+ },
+ {
+ name: "padding1",
+ type: {
+ array: ["u8", 32],
+ },
+ },
+ {
+ name: "whitelistedSwapper",
+ type: "publicKey",
+ },
+ {
+ name: "ratios",
+ type: {
+ array: [
+ {
+ defined: "TokenRatios",
+ },
+ 8,
+ ],
+ },
+ },
+ {
+ name: "padding2",
+ type: {
+ array: ["u8", 16],
+ },
+ },
+ {
+ name: "aumUsd",
+ type: {
+ defined: "U128Split",
+ },
+ },
+ {
+ name: "inceptionTime",
+ type: "i64",
+ },
+ {
+ name: "aumSoftCapUsd",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "position",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "bump",
+ type: "u8",
+ },
+ {
+ name: "side",
+ type: "u8",
+ },
+ {
+ name: "takeProfitIsSet",
+ type: "u8",
+ },
+ {
+ name: "stopLossIsSet",
+ type: "u8",
+ },
+ {
+ name: "paddingUnsafe",
+ type: {
+ array: ["u8", 1],
+ },
+ },
+ {
+ name: "padding",
+ type: {
+ array: ["u8", 3],
+ },
+ },
+ {
+ name: "owner",
+ type: "publicKey",
+ },
+ {
+ name: "pool",
+ type: "publicKey",
+ },
+ {
+ name: "custody",
+ type: "publicKey",
+ },
+ {
+ name: "collateralCustody",
+ type: "publicKey",
+ },
+ {
+ name: "openTime",
+ type: "i64",
+ },
+ {
+ name: "updateTime",
+ type: "i64",
+ },
+ {
+ name: "price",
+ type: "u64",
+ },
+ {
+ name: "sizeUsd",
+ type: "u64",
+ },
+ {
+ name: "borrowSizeUsd",
+ type: "u64",
+ },
+ {
+ name: "collateralUsd",
+ type: "u64",
+ },
+ {
+ name: "unrealizedInterestUsd",
+ type: "u64",
+ },
+ {
+ name: "cumulativeInterestSnapshot",
+ type: {
+ defined: "U128Split",
+ },
+ },
+ {
+ name: "lockedAmount",
+ type: "u64",
+ },
+ {
+ name: "collateralAmount",
+ type: "u64",
+ },
+ {
+ name: "exitFeeUsd",
+ type: "u64",
+ },
+ {
+ name: "liquidationFeeUsd",
+ type: "u64",
+ },
+ {
+ name: "id",
+ type: "u64",
+ },
+ {
+ name: "takeProfitLimitPrice",
+ type: "u64",
+ },
+ {
+ name: "paddingUnsafe3",
+ type: {
+ array: ["u8", 8],
+ },
+ },
+ {
+ name: "stopLossLimitPrice",
+ type: "u64",
+ },
+ {
+ name: "stopLossClosePositionPrice",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "staking",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "stakingType",
+ type: "u8",
+ },
+ {
+ name: "bump",
+ type: "u8",
+ },
+ {
+ name: "stakedTokenVaultBump",
+ type: "u8",
+ },
+ {
+ name: "rewardTokenVaultBump",
+ type: "u8",
+ },
+ {
+ name: "lmRewardTokenVaultBump",
+ type: "u8",
+ },
+ {
+ name: "rewardTokenDecimals",
+ type: "u8",
+ },
+ {
+ name: "stakedTokenDecimals",
+ type: "u8",
+ },
+ {
+ name: "initialized",
+ type: "u8",
+ },
+ {
+ name: "nbLockedTokens",
+ type: "u64",
+ },
+ {
+ name: "nbLiquidTokens",
+ type: "u64",
+ },
+ {
+ name: "stakedTokenMint",
+ type: "publicKey",
+ },
+ {
+ name: "resolvedRewardTokenAmount",
+ type: "u64",
+ },
+ {
+ name: "resolvedStakedTokenAmount",
+ type: "u64",
+ },
+ {
+ name: "resolvedLmRewardTokenAmount",
+ type: "u64",
+ },
+ {
+ name: "resolvedLmStakedTokenAmount",
+ type: "u64",
+ },
+ {
+ name: "currentStakingRound",
+ type: {
+ defined: "StakingRound",
+ },
+ },
+ {
+ name: "nextStakingRound",
+ type: {
+ defined: "StakingRound",
+ },
+ },
+ {
+ name: "resolvedStakingRounds",
+ type: {
+ array: [
+ {
+ defined: "StakingRound",
+ },
+ 32,
+ ],
+ },
+ },
+ {
+ name: "registeredResolvedStakingRoundCount",
+ type: "u8",
+ },
+ {
+ name: "padding",
+ type: {
+ array: ["u8", 3],
+ },
+ },
+ {
+ name: "lmEmissionPotentiometerBps",
+ type: "u16",
+ },
+ {
+ name: "monthsElapsedSinceInception",
+ type: "u16",
+ },
+ {
+ name: "paddingUnsafe",
+ type: {
+ array: ["u8", 8],
+ },
+ },
+ {
+ name: "emissionAmountPerRoundLastUpdate",
+ type: "i64",
+ },
+ {
+ name: "currentMonthEmissionAmountPerRound",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "userProfile",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "bump",
+ type: "u8",
+ },
+ {
+ name: "padding",
+ type: {
+ array: ["u8", 7],
+ },
+ },
+ {
+ name: "nickname",
+ type: {
+ defined: "LimitedString",
+ },
+ },
+ {
+ name: "createdAt",
+ type: "i64",
+ },
+ {
+ name: "owner",
+ type: "publicKey",
+ },
+ {
+ name: "swapCount",
+ type: "u64",
+ },
+ {
+ name: "swapVolumeUsd",
+ type: "u64",
+ },
+ {
+ name: "swapFeePaidUsd",
+ type: "u64",
+ },
+ {
+ name: "shortStats",
+ type: {
+ defined: "TradingStats",
+ },
+ },
+ {
+ name: "longStats",
+ type: {
+ defined: "TradingStats",
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "userStaking",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "bump",
+ type: "u8",
+ },
+ {
+ name: "unusedUnsafe",
+ type: {
+ array: ["u8", 1],
+ },
+ },
+ {
+ name: "stakingType",
+ type: "u8",
+ },
+ {
+ name: "padding",
+ type: {
+ array: ["u8", 5],
+ },
+ },
+ {
+ name: "lockedStakeIdCounter",
+ type: "u64",
+ },
+ {
+ name: "liquidStake",
+ type: {
+ defined: "LiquidStake",
+ },
+ },
+ {
+ name: "lockedStakes",
+ type: {
+ array: [
+ {
+ defined: "LockedStake",
+ },
+ 32,
+ ],
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "vestRegistry",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "bump",
+ type: "u8",
+ },
+ {
+ name: "vests",
+ type: {
+ vec: "publicKey",
+ },
+ },
+ {
+ name: "vestingTokenAmount",
+ type: "u64",
+ },
+ {
+ name: "vestedTokenAmount",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "vest",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "bump",
+ type: "u8",
+ },
+ {
+ name: "originBucket",
+ type: "u8",
+ },
+ {
+ name: "cancelled",
+ type: "u8",
+ },
+ {
+ name: "padding",
+ type: {
+ array: ["u8", 1],
+ },
+ },
+ {
+ name: "voteMultiplier",
+ type: "u32",
+ },
+ {
+ name: "amount",
+ type: "u64",
+ },
+ {
+ name: "unlockStartTimestamp",
+ type: "i64",
+ },
+ {
+ name: "unlockEndTimestamp",
+ type: "i64",
+ },
+ {
+ name: "claimedAmount",
+ type: "u64",
+ },
+ {
+ name: "lastClaimTimestamp",
+ type: "i64",
+ },
+ {
+ name: "owner",
+ type: "publicKey",
+ },
+ ],
+ },
+ },
+ ],
+ types: [
+ {
+ name: "MintLmTokensFromBucketParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "bucketName",
+ type: "u8",
+ },
+ {
+ name: "amount",
+ type: "u64",
+ },
+ {
+ name: "reason",
+ type: "string",
+ },
+ ],
+ },
+ },
+ {
+ name: "SetAdminParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "newAdmin",
+ type: "publicKey",
+ },
+ ],
+ },
+ },
+ {
+ name: "AddCustodyParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "isStable",
+ type: "bool",
+ },
+ {
+ name: "pricing",
+ type: {
+ defined: "PricingParams",
+ },
+ },
+ {
+ name: "allowSwap",
+ type: "bool",
+ },
+ {
+ name: "allowTrade",
+ type: "bool",
+ },
+ {
+ name: "fees",
+ type: {
+ defined: "Fees",
+ },
+ },
+ {
+ name: "borrowRate",
+ type: {
+ defined: "BorrowRateParams",
+ },
+ },
+ {
+ name: "ratios",
+ type: {
+ array: [
+ {
+ defined: "TokenRatios",
+ },
+ 8,
+ ],
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "RemoveCustodyParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "ratios",
+ type: {
+ array: [
+ {
+ defined: "TokenRatios",
+ },
+ 8,
+ ],
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "SetCustodyAllowSwapParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "allowSwap",
+ type: "bool",
+ },
+ ],
+ },
+ },
+ {
+ name: "SetCustodyAllowTradeParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "allowTrade",
+ type: "bool",
+ },
+ ],
+ },
+ },
+ {
+ name: "SetCustodyConfigParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "isStable",
+ type: "bool",
+ },
+ {
+ name: "oracle",
+ type: "publicKey",
+ },
+ {
+ name: "tradeOracle",
+ type: "publicKey",
+ },
+ {
+ name: "pricing",
+ type: {
+ defined: "PricingParams",
+ },
+ },
+ {
+ name: "fees",
+ type: {
+ defined: "Fees",
+ },
+ },
+ {
+ name: "borrowRate",
+ type: {
+ defined: "BorrowRateParams",
+ },
+ },
+ {
+ name: "ratios",
+ type: {
+ array: [
+ {
+ defined: "TokenRatios",
+ },
+ 8,
+ ],
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "SetCustodyMaxCumulativeShortPositionSizeUsdParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "maxCumulativeShortPositionSizeUsd",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "InitOneParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "coreContributorBucketAllocation",
+ type: "u64",
+ },
+ {
+ name: "foundationBucketAllocation",
+ type: "u64",
+ },
+ {
+ name: "ecosystemBucketAllocation",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "AddPoolPartOneParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "name",
+ type: "string",
+ },
+ {
+ name: "aumSoftCapUsd",
+ type: "u64",
+ },
+ {
+ name: "lpTokenName",
+ type: "string",
+ },
+ {
+ name: "lpTokenSymbol",
+ type: "string",
+ },
+ {
+ name: "lpTokenUri",
+ type: "string",
+ },
+ ],
+ },
+ },
+ {
+ name: "AddPoolPartTwoParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "genesisLockCampaignDuration",
+ type: "i64",
+ },
+ {
+ name: "genesisReservedGrantDuration",
+ type: "i64",
+ },
+ {
+ name: "genesisLockCampaignStartDate",
+ type: "i64",
+ },
+ {
+ name: "reservedSpots",
+ type: {
+ defined: "ReservedSpots",
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "GenesisOtcInParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "custodyOneAmount",
+ type: "u64",
+ },
+ {
+ name: "custodyTwoAmount",
+ type: "u64",
+ },
+ {
+ name: "custodyThreeAmount",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "SetPoolAllowSwapParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "allowSwap",
+ type: "bool",
+ },
+ ],
+ },
+ },
+ {
+ name: "SetPoolAllowTradeParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "allowTrade",
+ type: "bool",
+ },
+ ],
+ },
+ },
+ {
+ name: "SetPoolAumSoftCapUsdParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "aumSoftCapUsd",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "SetPoolLiquidityStateParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "liquidityState",
+ type: "u8",
+ },
+ ],
+ },
+ },
+ {
+ name: "InitStakingOneParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "stakingType",
+ type: "u8",
+ },
+ ],
+ },
+ },
+ {
+ name: "SetStakingLmEmissionPotentiometersParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "lmEmissionPotentiometerBps",
+ type: "u16",
+ },
+ ],
+ },
+ },
+ {
+ name: "AddVestParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "amount",
+ type: "u64",
+ },
+ {
+ name: "originBucket",
+ type: "u8",
+ },
+ {
+ name: "unlockStartTimestamp",
+ type: "i64",
+ },
+ {
+ name: "unlockEndTimestamp",
+ type: "i64",
+ },
+ {
+ name: "voteMultiplier",
+ type: "u32",
+ },
+ ],
+ },
+ },
+ {
+ name: "AddGenesisLiquidityParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "amountIn",
+ type: "u64",
+ },
+ {
+ name: "minLpAmountOut",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "AddLiquidityParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "amountIn",
+ type: "u64",
+ },
+ {
+ name: "minLpAmountOut",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "RemoveLiquidityParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "lpAmountIn",
+ type: "u64",
+ },
+ {
+ name: "minAmountOut",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "SwapParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "amountIn",
+ type: "u64",
+ },
+ {
+ name: "minAmountOut",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "AddCollateralLongParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "collateral",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "AddCollateralShortParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "collateral",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "SetStopLossLongParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "stopLossLimitPrice",
+ type: "u64",
+ },
+ {
+ name: "closePositionPrice",
+ type: {
+ option: "u64",
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "SetStopLossShortParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "stopLossLimitPrice",
+ type: "u64",
+ },
+ {
+ name: "closePositionPrice",
+ type: {
+ option: "u64",
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "SetTakeProfitLongParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "takeProfitLimitPrice",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "SetTakeProfitShortParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "takeProfitLimitPrice",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "ClosePositionLongParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "price",
+ type: {
+ option: "u64",
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "ClosePositionShortParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "price",
+ type: {
+ option: "u64",
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "IncreasePositionLongParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "price",
+ type: "u64",
+ },
+ {
+ name: "collateral",
+ type: "u64",
+ },
+ {
+ name: "leverage",
+ type: "u32",
+ },
+ ],
+ },
+ },
+ {
+ name: "IncreasePositionShortParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "price",
+ type: "u64",
+ },
+ {
+ name: "collateral",
+ type: "u64",
+ },
+ {
+ name: "leverage",
+ type: "u32",
+ },
+ ],
+ },
+ },
+ {
+ name: "LiquidateLongParams",
+ type: {
+ kind: "struct",
+ fields: [],
+ },
+ },
+ {
+ name: "LiquidateShortParams",
+ type: {
+ kind: "struct",
+ fields: [],
+ },
+ },
+ {
+ name: "OpenPositionWithSwapParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "price",
+ type: "u64",
+ },
+ {
+ name: "collateral",
+ type: "u64",
+ },
+ {
+ name: "leverage",
+ type: "u32",
+ },
+ {
+ name: "referrer",
+ type: {
+ option: "publicKey",
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "OpenPositionLongParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "price",
+ type: "u64",
+ },
+ {
+ name: "collateral",
+ type: "u64",
+ },
+ {
+ name: "leverage",
+ type: "u32",
+ },
+ {
+ name: "referrer",
+ type: {
+ option: "publicKey",
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "OpenPositionShortParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "price",
+ type: "u64",
+ },
+ {
+ name: "collateral",
+ type: "u64",
+ },
+ {
+ name: "leverage",
+ type: "u32",
+ },
+ {
+ name: "referrer",
+ type: {
+ option: "publicKey",
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "RemoveCollateralLongParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "collateralUsd",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "RemoveCollateralShortParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "collateralUsd",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "AddLiquidStakeParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "amount",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "AddLockedStakeParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "amount",
+ type: "u64",
+ },
+ {
+ name: "lockedDays",
+ type: "u32",
+ },
+ ],
+ },
+ },
+ {
+ name: "ClaimStakesParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "lockedStakeIndexes",
+ type: {
+ option: "bytes",
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "FinalizeLockedStakeParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "lockedStakeId",
+ type: "u64",
+ },
+ {
+ name: "earlyExit",
+ type: "bool",
+ },
+ ],
+ },
+ },
+ {
+ name: "RemoveLiquidStakeParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "amount",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "RemoveLockedStakeParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "lockedStakeIndex",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "UpgradeLockedStakeParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "lockedStakeId",
+ type: "u64",
+ },
+ {
+ name: "amount",
+ type: {
+ option: "u64",
+ },
+ },
+ {
+ name: "lockedDays",
+ type: {
+ option: "u32",
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "EditUserProfileParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "nickname",
+ type: "string",
+ },
+ ],
+ },
+ },
+ {
+ name: "InitUserProfileParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "nickname",
+ type: "string",
+ },
+ ],
+ },
+ },
+ {
+ name: "GetAddLiquidityAmountAndFeeParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "amountIn",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "GetEntryPriceAndFeeParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "collateral",
+ type: "u64",
+ },
+ {
+ name: "leverage",
+ type: "u32",
+ },
+ {
+ name: "side",
+ type: "u8",
+ },
+ ],
+ },
+ },
+ {
+ name: "GetLiquidationPriceParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "addCollateral",
+ type: "u64",
+ },
+ {
+ name: "removeCollateral",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "GetOpenPositionWithSwapAmountAndFeesParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "collateralAmount",
+ type: "u64",
+ },
+ {
+ name: "leverage",
+ type: "u32",
+ },
+ {
+ name: "side",
+ type: "u8",
+ },
+ ],
+ },
+ },
+ {
+ name: "CustodyInfoSnapshot",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "assetsValueUsd",
+ type: "u64",
+ },
+ {
+ name: "owned",
+ type: "u64",
+ },
+ {
+ name: "locked",
+ type: "u64",
+ },
+ {
+ name: "price",
+ type: "u64",
+ },
+ {
+ name: "priceConfidence",
+ type: "u64",
+ },
+ {
+ name: "tradePrice",
+ type: "u64",
+ },
+ {
+ name: "tradePriceConfidence",
+ type: "u64",
+ },
+ {
+ name: "shortPnl",
+ type: "i64",
+ },
+ {
+ name: "longPnl",
+ type: "i64",
+ },
+ {
+ name: "openInterestLongUsd",
+ type: "u64",
+ },
+ {
+ name: "openInterestShortUsd",
+ type: "u64",
+ },
+ {
+ name: "cumulativeProfitUsd",
+ type: "u64",
+ },
+ {
+ name: "cumulativeLossUsd",
+ type: "u64",
+ },
+ {
+ name: "cumulativeSwapFeeUsd",
+ type: "u64",
+ },
+ {
+ name: "cumulativeLiquidityFeeUsd",
+ type: "u64",
+ },
+ {
+ name: "cumulativeClosePositionFeeUsd",
+ type: "u64",
+ },
+ {
+ name: "cumulativeLiquidationFeeUsd",
+ type: "u64",
+ },
+ {
+ name: "cumulativeBorrowFeeUsd",
+ type: "u64",
+ },
+ {
+ name: "cumulativeTradingVolumeUsd",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "PoolInfoSnapshot",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "currentTime",
+ type: "u64",
+ },
+ {
+ name: "aumUsd",
+ type: "u64",
+ },
+ {
+ name: "lpTokenPrice",
+ type: "u64",
+ },
+ {
+ name: "custodiesInfoSnapshot",
+ type: {
+ vec: {
+ defined: "CustodyInfoSnapshot",
+ },
+ },
+ },
+ {
+ name: "lpCirculatingSupply",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "GetRemoveLiquidityAmountAndFeeParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "lpAmountIn",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "GetSwapAmountAndFeesParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "amountIn",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "ExitPriceAndFee",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "price",
+ type: "u64",
+ },
+ {
+ name: "fee",
+ type: "u64",
+ },
+ {
+ name: "amountOut",
+ type: "u64",
+ },
+ {
+ name: "profitUsd",
+ type: "u64",
+ },
+ {
+ name: "lossUsd",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "AmountAndFee",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "amount",
+ type: "u64",
+ },
+ {
+ name: "fee",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "NewPositionPricesAndFee",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "entryPrice",
+ type: "u64",
+ },
+ {
+ name: "liquidationPrice",
+ type: "u64",
+ },
+ {
+ name: "exitFee",
+ type: "u64",
+ },
+ {
+ name: "liquidationFee",
+ type: "u64",
+ },
+ {
+ name: "size",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "OpenPositionWithSwapAmountAndFees",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "entryPrice",
+ type: "u64",
+ },
+ {
+ name: "liquidationPrice",
+ type: "u64",
+ },
+ {
+ name: "swapFeeIn",
+ type: "u64",
+ },
+ {
+ name: "swapFeeOut",
+ type: "u64",
+ },
+ {
+ name: "exitFee",
+ type: "u64",
+ },
+ {
+ name: "liquidationFee",
+ type: "u64",
+ },
+ {
+ name: "size",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "SwapAmountAndFees",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "amountOut",
+ type: "u64",
+ },
+ {
+ name: "feeIn",
+ type: "u64",
+ },
+ {
+ name: "feeOut",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "ProfitAndLoss",
+ docs: [
+ "Specific to the codebase, this struct is used to store the profit and loss of a position.",
+ ],
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "profitUsd",
+ type: "u64",
+ },
+ {
+ name: "lossUsd",
+ type: "u64",
+ },
+ {
+ name: "exitFee",
+ type: "u64",
+ },
+ {
+ name: "exitFeeUsd",
+ type: "u64",
+ },
+ {
+ name: "borrowFeeUsd",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "Fees",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "swapIn",
+ type: "u16",
+ },
+ {
+ name: "swapOut",
+ type: "u16",
+ },
+ {
+ name: "stableSwapIn",
+ type: "u16",
+ },
+ {
+ name: "stableSwapOut",
+ type: "u16",
+ },
+ {
+ name: "addLiquidity",
+ type: "u16",
+ },
+ {
+ name: "removeLiquidity",
+ type: "u16",
+ },
+ {
+ name: "closePosition",
+ type: "u16",
+ },
+ {
+ name: "liquidation",
+ type: "u16",
+ },
+ {
+ name: "feeMax",
+ type: "u16",
+ },
+ {
+ name: "padding",
+ type: {
+ array: ["u8", 6],
+ },
+ },
+ {
+ name: "padding2",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "FeesStats",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "swapUsd",
+ type: "u64",
+ },
+ {
+ name: "addLiquidityUsd",
+ type: "u64",
+ },
+ {
+ name: "removeLiquidityUsd",
+ type: "u64",
+ },
+ {
+ name: "closePositionUsd",
+ type: "u64",
+ },
+ {
+ name: "liquidationUsd",
+ type: "u64",
+ },
+ {
+ name: "borrowUsd",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "VolumeStats",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "swapUsd",
+ type: "u64",
+ },
+ {
+ name: "addLiquidityUsd",
+ type: "u64",
+ },
+ {
+ name: "removeLiquidityUsd",
+ type: "u64",
+ },
+ {
+ name: "openPositionUsd",
+ type: "u64",
+ },
+ {
+ name: "closePositionUsd",
+ type: "u64",
+ },
+ {
+ name: "liquidationUsd",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "TradeStats",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "profitUsd",
+ type: "u64",
+ },
+ {
+ name: "lossUsd",
+ type: "u64",
+ },
+ {
+ name: "oiLongUsd",
+ type: "u64",
+ },
+ {
+ name: "oiShortUsd",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "Assets",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "collateral",
+ type: "u64",
+ },
+ {
+ name: "owned",
+ type: "u64",
+ },
+ {
+ name: "locked",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "PricingParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "maxInitialLeverage",
+ type: "u32",
+ },
+ {
+ name: "maxLeverage",
+ type: "u32",
+ },
+ {
+ name: "maxPositionLockedUsd",
+ type: "u64",
+ },
+ {
+ name: "maxCumulativeShortPositionSizeUsd",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "BorrowRateParams",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "maxHourlyBorrowInterestRate",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "BorrowRateState",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "currentRate",
+ type: "u64",
+ },
+ {
+ name: "lastUpdate",
+ type: "i64",
+ },
+ {
+ name: "cumulativeInterest",
+ type: {
+ defined: "U128Split",
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "PositionsAccounting",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "openPositions",
+ type: "u64",
+ },
+ {
+ name: "sizeUsd",
+ type: "u64",
+ },
+ {
+ name: "borrowSizeUsd",
+ type: "u64",
+ },
+ {
+ name: "lockedAmount",
+ type: "u64",
+ },
+ {
+ name: "weightedPrice",
+ type: {
+ defined: "U128Split",
+ },
+ },
+ {
+ name: "totalQuantity",
+ type: {
+ defined: "U128Split",
+ },
+ },
+ {
+ name: "cumulativeInterestUsd",
+ type: "u64",
+ },
+ {
+ name: "padding",
+ type: {
+ array: ["u8", 8],
+ },
+ },
+ {
+ name: "cumulativeInterestSnapshot",
+ type: {
+ defined: "U128Split",
+ },
+ },
+ {
+ name: "exitFeeUsd",
+ type: "u64",
+ },
+ {
+ name: "stableLockedAmount",
+ type: {
+ array: [
+ {
+ defined: "StableLockedAmountStat",
+ },
+ 2,
+ ],
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "StableLockedAmountStat",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "custody",
+ type: "publicKey",
+ },
+ {
+ name: "lockedAmount",
+ type: "u64",
+ },
+ {
+ name: "padding",
+ type: {
+ array: ["u8", 8],
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "OraclePrice",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "price",
+ type: "u64",
+ },
+ {
+ name: "exponent",
+ type: "i32",
+ },
+ {
+ name: "confidence",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "TokenRatios",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "target",
+ type: "u16",
+ },
+ {
+ name: "min",
+ type: "u16",
+ },
+ {
+ name: "max",
+ type: "u16",
+ },
+ {
+ name: "padding",
+ type: {
+ array: ["u8", 2],
+ },
+ },
+ ],
+ },
+ },
+ {
+ name: "StakingRound",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "startTime",
+ type: "i64",
+ },
+ {
+ name: "endTime",
+ type: "i64",
+ },
+ {
+ name: "rate",
+ type: "u64",
+ },
+ {
+ name: "totalStake",
+ type: "u64",
+ },
+ {
+ name: "totalClaim",
+ type: "u64",
+ },
+ {
+ name: "lmRate",
+ type: "u64",
+ },
+ {
+ name: "lmTotalStake",
+ type: "u64",
+ },
+ {
+ name: "lmTotalClaim",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "TradingStats",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "openedPositionCount",
+ type: "u64",
+ },
+ {
+ name: "liquidatedPositionCount",
+ type: "u64",
+ },
+ {
+ name: "openingAverageLeverage",
+ type: "u64",
+ },
+ {
+ name: "openingSizeUsd",
+ type: "u64",
+ },
+ {
+ name: "profitsUsd",
+ type: "u64",
+ },
+ {
+ name: "lossesUsd",
+ type: "u64",
+ },
+ {
+ name: "feePaidUsd",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "LiquidStake",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "amount",
+ type: "u64",
+ },
+ {
+ name: "stakeTime",
+ type: "i64",
+ },
+ {
+ name: "claimTime",
+ type: "i64",
+ },
+ {
+ name: "overlapTime",
+ type: "i64",
+ },
+ {
+ name: "overlapAmount",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "LockedStake",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "amount",
+ type: "u64",
+ },
+ {
+ name: "stakeTime",
+ type: "i64",
+ },
+ {
+ name: "claimTime",
+ type: "i64",
+ },
+ {
+ name: "endTime",
+ type: "i64",
+ },
+ {
+ name: "lockDuration",
+ type: "u64",
+ },
+ {
+ name: "rewardMultiplier",
+ type: "u32",
+ },
+ {
+ name: "lmRewardMultiplier",
+ type: "u32",
+ },
+ {
+ name: "voteMultiplier",
+ type: "u32",
+ },
+ {
+ name: "qualifiedForRewardsInResolvedRoundCount",
+ type: "u32",
+ },
+ {
+ name: "amountWithRewardMultiplier",
+ type: "u64",
+ },
+ {
+ name: "amountWithLmRewardMultiplier",
+ type: "u64",
+ },
+ {
+ name: "resolved",
+ type: "u8",
+ },
+ {
+ name: "padding2",
+ type: {
+ array: ["u8", 7],
+ },
+ },
+ {
+ name: "id",
+ type: "u64",
+ },
+ {
+ name: "earlyExit",
+ type: "u8",
+ },
+ {
+ name: "padding3",
+ type: {
+ array: ["u8", 7],
+ },
+ },
+ {
+ name: "earlyExitFee",
+ type: "u64",
+ },
+ {
+ name: "isGenesis",
+ type: "u8",
+ },
+ {
+ name: "padding4",
+ type: {
+ array: ["u8", 7],
+ },
+ },
+ {
+ name: "genesisClaimTime",
+ type: "i64",
+ },
+ ],
+ },
+ },
+ {
+ name: "LimitedString",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "value",
+ type: {
+ array: ["u8", 31],
+ },
+ },
+ {
+ name: "length",
+ type: "u8",
+ },
+ ],
+ },
+ },
+ {
+ name: "U128Split",
+ type: {
+ kind: "struct",
+ fields: [
+ {
+ name: "high",
+ type: "u64",
+ },
+ {
+ name: "low",
+ type: "u64",
+ },
+ ],
+ },
+ },
+ {
+ name: "BucketName",
+ type: {
+ kind: "enum",
+ variants: [
+ {
+ name: "CoreContributor",
+ },
+ {
+ name: "Foundation",
+ },
+ {
+ name: "Ecosystem",
+ },
+ ],
+ },
+ },
+ {
+ name: "ReservedSpots",
+ type: {
+ kind: "enum",
+ variants: [
+ {
+ name: "None",
+ },
+ {
+ name: "Test",
+ fields: [
+ {
+ name: "firstReservedSpot",
+ type: "publicKey",
+ },
+ {
+ name: "secondReservedSpot",
+ type: "publicKey",
+ },
+ ],
+ },
+ ],
+ },
+ },
+ {
+ name: "CortexInitializationStep",
+ type: {
+ kind: "enum",
+ variants: [
+ {
+ name: "NotCreated",
+ },
+ {
+ name: "Step1",
+ },
+ {
+ name: "Step2",
+ },
+ {
+ name: "Step3",
+ },
+ {
+ name: "Initialized",
+ },
+ ],
+ },
+ },
+ {
+ name: "PoolLiquidityState",
+ type: {
+ kind: "enum",
+ variants: [
+ {
+ name: "GenesisLiquidity",
+ },
+ {
+ name: "Idle",
+ },
+ {
+ name: "Active",
+ },
+ ],
+ },
+ },
+ {
+ name: "LeverageCheckType",
+ type: {
+ kind: "enum",
+ variants: [
+ {
+ name: "Initial",
+ },
+ {
+ name: "AddCollateral",
+ },
+ {
+ name: "RemoveCollateral",
+ },
+ {
+ name: "IncreasePosition",
+ },
+ {
+ name: "Liquidate",
+ },
+ ],
+ },
+ },
+ {
+ name: "Side",
+ type: {
+ kind: "enum",
+ variants: [
+ {
+ name: "None",
+ },
+ {
+ name: "Long",
+ },
+ {
+ name: "Short",
+ },
+ ],
+ },
+ },
+ {
+ name: "StakingType",
+ type: {
+ kind: "enum",
+ variants: [
+ {
+ name: "LM",
+ },
+ {
+ name: "LP",
+ },
+ ],
+ },
+ },
+ {
+ name: "StakingInitializationStep",
+ type: {
+ kind: "enum",
+ variants: [
+ {
+ name: "NotCreated",
+ },
+ {
+ name: "Step1",
+ },
+ {
+ name: "Step2",
+ },
+ {
+ name: "Step3",
+ },
+ {
+ name: "Initialized",
+ },
+ ],
+ },
+ },
+ ],
+ events: [
+ {
+ name: "OpenPositionEvent",
+ fields: [
+ {
+ name: "owner",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "position",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "custodyMint",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "side",
+ type: "u8",
+ index: false,
+ },
+ {
+ name: "sizeUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "price",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "collateralAmountUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "leverage",
+ type: "u32",
+ index: false,
+ },
+ {
+ name: "positionId",
+ type: "u64",
+ index: false,
+ },
+ ],
+ },
+ {
+ name: "IncreasePositionEvent",
+ fields: [
+ {
+ name: "owner",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "position",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "custodyMint",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "side",
+ type: "u8",
+ index: false,
+ },
+ {
+ name: "sizeUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "price",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "collateralAmountUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "leverage",
+ type: "u32",
+ index: false,
+ },
+ {
+ name: "positionId",
+ type: "u64",
+ index: false,
+ },
+ ],
+ },
+ {
+ name: "ClosePositionEvent",
+ fields: [
+ {
+ name: "owner",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "position",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "custodyMint",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "side",
+ type: "u8",
+ index: false,
+ },
+ {
+ name: "sizeUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "price",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "collateralAmountUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "profitUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "lossUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "borrowFeeUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "exitFeeUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "positionId",
+ type: "u64",
+ index: false,
+ },
+ ],
+ },
+ {
+ name: "AddCollateralEvent",
+ fields: [
+ {
+ name: "owner",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "position",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "custodyMint",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "side",
+ type: "u8",
+ index: false,
+ },
+ {
+ name: "addAmountUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "newCollateralAmountUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "leverage",
+ type: "u32",
+ index: false,
+ },
+ {
+ name: "positionId",
+ type: "u64",
+ index: false,
+ },
+ ],
+ },
+ {
+ name: "RemoveCollateralEvent",
+ fields: [
+ {
+ name: "owner",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "position",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "custodyMint",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "side",
+ type: "u8",
+ index: false,
+ },
+ {
+ name: "removeAmountUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "newCollateralAmountUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "leverage",
+ type: "u32",
+ index: false,
+ },
+ {
+ name: "positionId",
+ type: "u64",
+ index: false,
+ },
+ ],
+ },
+ {
+ name: "LiquidateEvent",
+ fields: [
+ {
+ name: "owner",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "position",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "custodyMint",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "side",
+ type: "u8",
+ index: false,
+ },
+ {
+ name: "sizeUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "price",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "collateralAmountUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "lossUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "borrowFeeUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "exitFeeUsd",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "positionId",
+ type: "u64",
+ index: false,
+ },
+ ],
+ },
+ {
+ name: "AddLockedStakeEvent",
+ fields: [
+ {
+ name: "owner",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "staking",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "lockedStakeId",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "amount",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "lockedDays",
+ type: "u32",
+ index: false,
+ },
+ ],
+ },
+ {
+ name: "UpgradeLockedStakeEvent",
+ fields: [
+ {
+ name: "owner",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "staking",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "lockedStakeId",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "amount",
+ type: {
+ option: "u64",
+ },
+ index: false,
+ },
+ {
+ name: "lockedDays",
+ type: {
+ option: "u32",
+ },
+ index: false,
+ },
+ ],
+ },
+ {
+ name: "FinalizeLockedStakeEvent",
+ fields: [
+ {
+ name: "owner",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "staking",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "lockedStakeId",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "earlyExit",
+ type: "bool",
+ index: false,
+ },
+ ],
+ },
+ {
+ name: "RemoveLockedStakeEvent",
+ fields: [
+ {
+ name: "owner",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "staking",
+ type: "publicKey",
+ index: false,
+ },
+ {
+ name: "lockedStakeId",
+ type: "u64",
+ index: false,
+ },
+ ],
+ },
+ {
+ name: "SetStopLossEvent",
+ fields: [
+ {
+ name: "positionId",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "stopLossLimitPrice",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "closePositionPrice",
+ type: {
+ option: "u64",
+ },
+ index: false,
+ },
+ {
+ name: "positionSide",
+ type: "u8",
+ index: false,
+ },
+ ],
+ },
+ {
+ name: "SetTakeProfitEvent",
+ fields: [
+ {
+ name: "positionId",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "takeProfitLimitPrice",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "positionSide",
+ type: "u8",
+ index: false,
+ },
+ ],
+ },
+ {
+ name: "CancelStopLossEvent",
+ fields: [
+ {
+ name: "positionId",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "positionSide",
+ type: "u8",
+ index: false,
+ },
+ ],
+ },
+ {
+ name: "CancelTakeProfitEvent",
+ fields: [
+ {
+ name: "positionId",
+ type: "u64",
+ index: false,
+ },
+ {
+ name: "positionSide",
+ type: "u8",
+ index: false,
+ },
+ ],
+ },
+ ],
+ errors: [
+ {
+ code: 6000,
+ name: "MathOverflow",
+ msg: "Overflow in arithmetic operation",
+ },
+ {
+ code: 6001,
+ name: "UnsupportedOracle",
+ msg: "Unsupported price oracle",
+ },
+ {
+ code: 6002,
+ name: "InvalidOracleAccount",
+ msg: "Invalid oracle account",
+ },
+ {
+ code: 6003,
+ name: "InvalidOracleState",
+ msg: "Invalid oracle state",
+ },
+ {
+ code: 6004,
+ name: "StaleOraclePrice",
+ msg: "Stale oracle price",
+ },
+ {
+ code: 6005,
+ name: "InvalidOraclePrice",
+ msg: "Invalid oracle price",
+ },
+ {
+ code: 6006,
+ name: "InvalidEnvironment",
+ msg: "Instruction is not allowed in production",
+ },
+ {
+ code: 6007,
+ name: "InvalidPoolLiquidityState",
+ msg: "Invalid pool liquidity state",
+ },
+ {
+ code: 6008,
+ name: "InvalidCortexState",
+ msg: "Invalid cortex state",
+ },
+ {
+ code: 6009,
+ name: "InvalidStakingState",
+ msg: "Invalid staking state",
+ },
+ {
+ code: 6010,
+ name: "InvalidPoolState",
+ msg: "Invalid pool state",
+ },
+ {
+ code: 6011,
+ name: "InvalidVestState",
+ msg: "Invalid vest state",
+ },
+ {
+ code: 6012,
+ name: "InvalidStakeState",
+ msg: "Invalid stake state",
+ },
+ {
+ code: 6013,
+ name: "InvalidCustody",
+ msg: "Invalid custody",
+ },
+ {
+ code: 6014,
+ name: "InvalidCustodyAccount",
+ msg: "Invalid custody account",
+ },
+ {
+ code: 6015,
+ name: "InvalidCustodyState",
+ msg: "Invalid custody state",
+ },
+ {
+ code: 6016,
+ name: "InvalidCollateralCustody",
+ msg: "Invalid collateral custody",
+ },
+ {
+ code: 6017,
+ name: "InvalidPositionState",
+ msg: "Invalid position state",
+ },
+ {
+ code: 6018,
+ name: "PositionNotInLiquidationRange",
+ msg: "The position is not in liquidation range",
+ },
+ {
+ code: 6019,
+ name: "InvalidStakingRoundState",
+ msg: "Invalid staking round state",
+ },
+ {
+ code: 6020,
+ name: "InvalidAdrenaConfig",
+ msg: "Invalid adrena config",
+ },
+ {
+ code: 6021,
+ name: "InvalidPoolConfig",
+ msg: "Invalid pool config",
+ },
+ {
+ code: 6022,
+ name: "InvalidCustodyConfig",
+ msg: "Invalid custody config",
+ },
+ {
+ code: 6023,
+ name: "InsufficientAmountReturned",
+ msg: "Insufficient token amount returned",
+ },
+ {
+ code: 6024,
+ name: "MaxPriceSlippage",
+ msg: "Price slippage limit exceeded",
+ },
+ {
+ code: 6025,
+ name: "MaxLeverage",
+ msg: "Position leverage limit exceeded",
+ },
+ {
+ code: 6026,
+ name: "MinLeverage",
+ msg: "Position leverage under minimum",
+ },
+ {
+ code: 6027,
+ name: "CustodyAmountLimit",
+ msg: "Custody amount limit exceeded",
+ },
+ {
+ code: 6028,
+ name: "PositionAmountLimit",
+ msg: "Position amount limit exceeded",
+ },
+ {
+ code: 6029,
+ name: "TokenRatioOutOfRange",
+ msg: "Token ratio out of range",
+ },
+ {
+ code: 6030,
+ name: "UnsupportedToken",
+ msg: "Token is not supported",
+ },
+ {
+ code: 6031,
+ name: "InstructionNotAllowed",
+ msg: "Instruction is not allowed at this time",
+ },
+ {
+ code: 6032,
+ name: "MaxUtilization",
+ msg: "Token utilization limit exceeded",
+ },
+ {
+ code: 6033,
+ name: "MaxRegisteredResolvedStakingRoundReached",
+ msg: "Max registered resolved staking round reached",
+ },
+ {
+ code: 6034,
+ name: "InvalidGovernanceProgram",
+ msg: "Governance program do not match Cortex's one",
+ },
+ {
+ code: 6035,
+ name: "InvalidGovernanceRealm",
+ msg: "Governance realm do not match Cortex's one",
+ },
+ {
+ code: 6036,
+ name: "InvalidVestingUnlockTime",
+ msg: "Vesting unlock time is too close or passed",
+ },
+ {
+ code: 6037,
+ name: "InvalidStakingLockingTime",
+ msg: "Invalid staking locking time",
+ },
+ {
+ code: 6038,
+ name: "UserStakeNotFound",
+ msg: "The user stake account specified could not be found",
+ },
+ {
+ code: 6039,
+ name: "InvalidAccountData",
+ msg: "Invalid account data",
+ },
+ {
+ code: 6040,
+ name: "UnresolvedStake",
+ msg: "Stake is not resolved",
+ },
+ {
+ code: 6041,
+ name: "BucketMintLimit",
+ msg: "Reached bucket mint limit",
+ },
+ {
+ code: 6042,
+ name: "GenesisAlpLimitReached",
+ msg: "Genesis ALP add liquidity limit reached",
+ },
+ {
+ code: 6043,
+ name: "PermissionlessOracleMissingSignature",
+ msg: "Permissionless oracle update must be preceded by Ed25519 signature verification instruction",
+ },
+ {
+ code: 6044,
+ name: "PermissionlessOracleMalformedEd25519Data",
+ msg: "Ed25519 signature verification data does not match expected format",
+ },
+ {
+ code: 6045,
+ name: "PermissionlessOracleSignerMismatch",
+ msg: "Ed25519 signature was not signed by the oracle authority",
+ },
+ {
+ code: 6046,
+ name: "PermissionlessOracleMessageMismatch",
+ msg: "Signed message does not match instruction params",
+ },
+ {
+ code: 6047,
+ name: "CustodyStableLockedAmountNotFound",
+ msg: "Cannot find custody stable locked amount",
+ },
+ {
+ code: 6048,
+ name: "CustodyNotFound",
+ msg: "Cannot find custody",
+ },
+ {
+ code: 6049,
+ name: "InsufficientBucketReserve",
+ msg: "The bucket does not contain enough token for reserving this allocation",
+ },
+ {
+ code: 6050,
+ name: "UserNicknameTooLong",
+ msg: "User nickname exceed 24 characters",
+ },
+ {
+ code: 6051,
+ name: "UserNicknameTooShort",
+ msg: "User nickname is less than 3 characters",
+ },
+ {
+ code: 6052,
+ name: "InvalidGenesisLockState",
+ msg: "Invalid genesis lock state",
+ },
+ {
+ code: 6053,
+ name: "GenesisLockCampaignFullySubscribed",
+ msg: "The campaign is fully subscribed",
+ },
+ {
+ code: 6054,
+ name: "PoolAumSoftCapUsdReached",
+ msg: "The pool is fully subscribed",
+ },
+ {
+ code: 6055,
+ name: "MaxRegisteredPool",
+ msg: "The number of registered pool reached max amount",
+ },
+ {
+ code: 6056,
+ name: "MaxRegisteredCustodies",
+ msg: "The number of registered custody reached max amount",
+ },
+ {
+ code: 6057,
+ name: "MaxCumulativeShortPositionSizeLimit",
+ msg: "The short limit for this asset has been reached",
+ },
+ {
+ code: 6058,
+ name: "LockedStakeArrayFull",
+ msg: "The max number of LockedStaking has been reached",
+ },
+ {
+ code: 6059,
+ name: "IndexOutOfBounds",
+ msg: "Requested index is out of bounds",
+ },
+ {
+ code: 6060,
+ name: "InvalidCaller",
+ msg: "The instruction must be call with a specific account as caller",
+ },
+ {
+ code: 6061,
+ name: "InvalidBucketName",
+ msg: "Invalid bucket name",
+ },
+ {
+ code: 6062,
+ name: "InvalidThreadId",
+ msg: "(deprecated)The provided Sablier thread does not have the expected ID",
+ },
+ {
+ code: 6063,
+ name: "PythPriceExponentTooLargeIncurringPrecisionLoss",
+ msg: "The exponent used for pyth price lead to high precision loss",
+ },
+ {
+ code: 6064,
+ name: "MissingClosePositionPrice",
+ msg: "The close position price is mandatory",
+ },
+ {
+ code: 6065,
+ name: "InvalidVoteMultiplier",
+ msg: "Invalid vote multiplier",
+ },
+ {
+ code: 6066,
+ name: "PositionTooYoung",
+ msg: "A position cannot be close right after open, a slight delay is enforced",
+ },
+ {
+ code: 6067,
+ name: "InsufficientCollateral",
+ msg: "The minimum amount of collateral posted to open a position is not met",
+ },
+ {
+ code: 6068,
+ name: "InvalidLockDuration",
+ msg: "The provided lock duration isn't valid",
+ },
+ {
+ code: 6069,
+ name: "StakeNotEstablished",
+ msg: "The stake isn't established yet",
+ },
+ {
+ code: 6070,
+ name: "PositionAlreadyClosed",
+ msg: "The position is already pending cleanup and close",
+ },
+ ],
+};
diff --git a/src/index.ts b/src/index.ts
index 1b4116f..5199735 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,7 +1,12 @@
import { SolanaAgentKit } from "./agent";
import { createSolanaTools } from "./langchain";
+import { createSolanaTools as createVercelAITools } from "./vercel-ai";
-export { SolanaAgentKit, createSolanaTools };
+export { SolanaAgentKit, createSolanaTools, createVercelAITools };
// Optional: Export types that users might need
export * from "./types";
+
+// Export action system
+export { ACTIONS } from "./actions";
+export * from "./utils/actionExecutor";
diff --git a/src/langchain/index.ts b/src/langchain/index.ts
index ed805e6..97810e8 100644
--- a/src/langchain/index.ts
+++ b/src/langchain/index.ts
@@ -1,14 +1,14 @@
import { PublicKey } from "@solana/web3.js";
+import { BN } from "@coral-xyz/anchor";
import Decimal from "decimal.js";
import { Tool } from "langchain/tools";
import {
GibworkCreateTaskReponse,
+ OrderParams,
PythFetchPriceResponse,
SolanaAgentKit,
} from "../index";
-import { create_image } from "../tools/create_image";
-import { BN } from "@coral-xyz/anchor";
-import { FEE_TIERS } from "../tools";
+import { create_image, FEE_TIERS, generateOrdersfromPattern } from "../tools";
export class SolanaBalanceTool extends Tool {
name = "solana_balance";
@@ -46,7 +46,7 @@ export class SolanaBalanceTool extends Tool {
export class SolanaBalanceOtherTool extends Tool {
name = "solana_balance_other";
- description = `Get the balance of a Solana wallet or token account different from the agent's wallet.
+ description = `Get the balance of a Solana wallet or token account which is different from the agent's wallet.
If no tokenAddress is provided, the SOL balance of the wallet will be returned.
@@ -261,6 +261,114 @@ export class SolanaMintNFTTool extends Tool {
}
}
+export class SolanaPerpCloseTradeTool extends Tool {
+ name = "solana_close_perp_trade";
+ description = `This tool can be used to close perpetuals trade ( It uses Adrena Protocol ).
+
+ Inputs ( input is a JSON string ):
+ tradeMint: string, eg "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn", "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263" etc. (optional)
+ price?: number, eg 100 (optional)
+ side: string, eg: "long" or "short"`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ protected async _call(input: string): Promise {
+ try {
+ const parsedInput = JSON.parse(input);
+
+ const tx =
+ parsedInput.side === "long"
+ ? await this.solanaKit.closePerpTradeLong({
+ price: parsedInput.price,
+ tradeMint: new PublicKey(parsedInput.tradeMint),
+ })
+ : await this.solanaKit.closePerpTradeShort({
+ price: parsedInput.price,
+ tradeMint: new PublicKey(parsedInput.tradeMint),
+ });
+
+ return JSON.stringify({
+ status: "success",
+ message: "Perpetual trade closed successfully",
+ transaction: tx,
+ price: parsedInput.price,
+ tradeMint: new PublicKey(parsedInput.tradeMint),
+ side: parsedInput.side,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "UNKNOWN_ERROR",
+ });
+ }
+ }
+}
+
+export class SolanaPerpOpenTradeTool extends Tool {
+ name = "solana_open_perp_trade";
+ description = `This tool can be used to open perpetuals trade ( It uses Adrena Protocol ).
+
+ Inputs ( input is a JSON string ):
+ collateralAmount: number, eg 1 or 0.01 (required)
+ collateralMint: string, eg "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn" or "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" etc. (optional)
+ tradeMint: string, eg "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn", "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263" etc. (optional)
+ leverage: number, eg 50000 = x5, 100000 = x10, 1000000 = x100 (optional)
+ price?: number, eg 100 (optional)
+ slippage?: number, eg 0.3 (optional)
+ side: string, eg: "long" or "short"`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ protected async _call(input: string): Promise {
+ try {
+ const parsedInput = JSON.parse(input);
+
+ const tx =
+ parsedInput.side === "long"
+ ? await this.solanaKit.openPerpTradeLong({
+ price: parsedInput.price,
+ collateralAmount: parsedInput.collateralAmount,
+ collateralMint: new PublicKey(parsedInput.collateralMint),
+ leverage: parsedInput.leverage,
+ tradeMint: new PublicKey(parsedInput.tradeMint),
+ slippage: parsedInput.slippage,
+ })
+ : await this.solanaKit.openPerpTradeLong({
+ price: parsedInput.price,
+ collateralAmount: parsedInput.collateralAmount,
+ collateralMint: new PublicKey(parsedInput.collateralMint),
+ leverage: parsedInput.leverage,
+ tradeMint: new PublicKey(parsedInput.tradeMint),
+ slippage: parsedInput.slippage,
+ });
+
+ return JSON.stringify({
+ status: "success",
+ message: "Perpetual trade opened successfully",
+ transaction: tx,
+ price: parsedInput.price,
+ collateralAmount: parsedInput.collateralAmount,
+ collateralMint: new PublicKey(parsedInput.collateralMint),
+ leverage: parsedInput.leverage,
+ tradeMint: new PublicKey(parsedInput.tradeMint),
+ slippage: parsedInput.slippage,
+ side: parsedInput.side,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "UNKNOWN_ERROR",
+ });
+ }
+ }
+}
+
export class SolanaTradeTool extends Tool {
name = "solana_trade";
description = `This tool can be used to swap tokens to another token ( It uses Jupiter Exchange ).
@@ -306,6 +414,208 @@ export class SolanaTradeTool extends Tool {
}
}
+export class SolanaLimitOrderTool extends Tool {
+ name = "solana_limit_order";
+ description = `This tool can be used to place limit orders using Manifest.
+
+ Do not allow users to place multiple orders with this instruction, use solana_batch_order instead.
+
+ Inputs ( input is a JSON string ):
+ marketId: PublicKey, eg "ENhU8LsaR7vDD2G1CsWcsuSGNrih9Cv5WZEk7q9kPapQ" for SOL/USDC (required)
+ quantity: number, eg 1 or 0.01 (required)
+ side: string, eg "Buy" or "Sell" (required)
+ price: number, in tokens eg 200 for SOL/USDC (required)`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ protected async _call(input: string): Promise {
+ try {
+ const parsedInput = JSON.parse(input);
+
+ const tx = await this.solanaKit.limitOrder(
+ new PublicKey(parsedInput.marketId),
+ parsedInput.quantity,
+ parsedInput.side,
+ parsedInput.price,
+ );
+
+ return JSON.stringify({
+ status: "success",
+ message: "Trade executed successfully",
+ transaction: tx,
+ marketId: parsedInput.marketId,
+ quantity: parsedInput.quantity,
+ side: parsedInput.side,
+ price: parsedInput.price,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "UNKNOWN_ERROR",
+ });
+ }
+ }
+}
+
+export class SolanaBatchOrderTool extends Tool {
+ name = "solana_batch_order";
+ description = `Places multiple limit orders in one transaction using Manifest. Submit orders either as a list or pattern:
+
+ 1. List format:
+ {
+ "marketId": "ENhU8LsaR7vDD2G1CsWcsuSGNrih9Cv5WZEk7q9kPapQ",
+ "orders": [
+ { "quantity": 1, "side": "Buy", "price": 200 },
+ { "quantity": 0.5, "side": "Sell", "price": 205 }
+ ]
+ }
+
+ 2. Pattern format:
+ {
+ "marketId": "ENhU8LsaR7vDD2G1CsWcsuSGNrih9Cv5WZEk7q9kPapQ",
+ "pattern": {
+ "side": "Buy",
+ "totalQuantity": 100,
+ "priceRange": { "max": 1.0 },
+ "spacing": { "type": "percentage", "value": 1 },
+ "numberOfOrders": 5
+ }
+ }
+
+ Examples:
+ - "Place 5 buy orders totaling 100 tokens, 1% apart below $1"
+ - "Create 3 sell orders of 10 tokens each between $50-$55"
+ - "Place buy orders worth 50 tokens, $0.10 spacing from $0.80"
+
+ Important: All orders must be in one transaction. Combine buy and sell orders into a single pattern or list. Never break the orders down to individual buy or sell orders.`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ protected async _call(input: string): Promise {
+ try {
+ const parsedInput = JSON.parse(input);
+ let ordersToPlace: OrderParams[] = [];
+
+ if (!parsedInput.marketId) {
+ throw new Error("Market ID is required");
+ }
+
+ if (parsedInput.pattern) {
+ ordersToPlace = generateOrdersfromPattern(parsedInput.pattern);
+ } else if (Array.isArray(parsedInput.orders)) {
+ ordersToPlace = parsedInput.orders;
+ } else {
+ throw new Error("Either pattern or orders array is required");
+ }
+
+ if (ordersToPlace.length === 0) {
+ throw new Error("No orders generated or provided");
+ }
+
+ ordersToPlace.forEach((order: OrderParams, index: number) => {
+ if (!order.quantity || !order.side || !order.price) {
+ throw new Error(
+ `Invalid order at index ${index}: quantity, side, and price are required`,
+ );
+ }
+ if (order.side !== "Buy" && order.side !== "Sell") {
+ throw new Error(
+ `Invalid side at index ${index}: must be "Buy" or "Sell"`,
+ );
+ }
+ });
+
+ const tx = await this.solanaKit.batchOrder(
+ new PublicKey(parsedInput.marketId),
+ parsedInput.orders,
+ );
+
+ return JSON.stringify({
+ status: "success",
+ message: "Batch order executed successfully",
+ transaction: tx,
+ marketId: parsedInput.marketId,
+ orders: parsedInput.orders,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "UNKNOWN_ERROR",
+ });
+ }
+ }
+}
+
+export class SolanaCancelAllOrdersTool extends Tool {
+ name = "solana_cancel_all_orders";
+ description = `This tool can be used to cancel all orders from a Manifest market.
+
+ Input ( input is a JSON string ):
+ marketId: string, eg "ENhU8LsaR7vDD2G1CsWcsuSGNrih9Cv5WZEk7q9kPapQ" for SOL/USDC (required)`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ protected async _call(input: string): Promise {
+ try {
+ const marketId = new PublicKey(input.trim());
+ const tx = await this.solanaKit.cancelAllOrders(marketId);
+
+ return JSON.stringify({
+ status: "success",
+ message: "Cancel orders successfully",
+ transaction: tx,
+ marketId,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "UNKNOWN_ERROR",
+ });
+ }
+ }
+}
+
+export class SolanaWithdrawAllTool extends Tool {
+ name = "solana_withdraw_all";
+ description = `This tool can be used to withdraw all funds from a Manifest market.
+
+ Input ( input is a JSON string ):
+ marketId: string, eg "ENhU8LsaR7vDD2G1CsWcsuSGNrih9Cv5WZEk7q9kPapQ" for SOL/USDC (required)`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ protected async _call(input: string): Promise {
+ try {
+ const marketId = new PublicKey(input.trim());
+ const tx = await this.solanaKit.withdrawAll(marketId);
+
+ return JSON.stringify({
+ status: "success",
+ message: "Withdrew successfully",
+ transaction: tx,
+ marketId,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "UNKNOWN_ERROR",
+ });
+ }
+ }
+}
+
export class SolanaRequestFundsTool extends Tool {
name = "solana_request_funds";
description = "Request SOL from Solana faucet (devnet/testnet only)";
@@ -660,6 +970,39 @@ export class SolanaStakeTool extends Tool {
}
}
+export class SolanaRestakeTool extends Tool {
+ name = "solana_restake";
+ description = `This tool can be used to restake your SOL on Solayer to receive Solayer SOL (sSOL) as a Liquid Staking Token (LST).
+
+ Inputs:
+ amount: number, eg 1 or 0.01 (required)`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ protected async _call(input: string): Promise {
+ try {
+ const parsedInput = JSON.parse(input) || Number(input);
+
+ const tx = await this.solanaKit.restake(parsedInput.amount);
+
+ return JSON.stringify({
+ status: "success",
+ message: "Staked successfully",
+ transaction: tx,
+ amount: parsedInput.amount,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "UNKNOWN_ERROR",
+ });
+ }
+ }
+}
+
/**
* Tool to fetch the price of a token in USDC
*/
@@ -796,17 +1139,13 @@ export class SolanaCompressedAirdropTool extends Tool {
}
}
-export class SolanaCreateSingleSidedWhirlpoolTool extends Tool {
- name = "create_orca_single_sided_whirlpool";
- description = `Create a single-sided Whirlpool with liquidity.
+export class SolanaClosePosition extends Tool {
+ name = "orca_close_position";
+ description = `Closes an existing liquidity position in an Orca Whirlpool. This function fetches the position
+ details using the provided mint address and closes the position with a 1% slippage.
- Inputs (input is a JSON string):
- - depositTokenAmount: number, eg: 1000000000 (required, in units of deposit token including decimals)
- - depositTokenMint: string, eg: "DepositTokenMintAddress" (required, mint address of deposit token)
- - otherTokenMint: string, eg: "OtherTokenMintAddress" (required, mint address of other token)
- - initialPrice: number, eg: 0.001 (required, initial price of deposit token in terms of other token)
- - maxPrice: number, eg: 5.0 (required, maximum price at which liquidity is added)
- - feeTier: number, eg: 0.30 (required, fee tier for the pool)`;
+ Inputs (JSON string):
+ - positionMintAddress: string, the address of the position mint that represents the liquidity position.`;
constructor(private solanaKit: SolanaAgentKit) {
super();
@@ -815,7 +1154,102 @@ export class SolanaCreateSingleSidedWhirlpoolTool extends Tool {
async _call(input: string): Promise {
try {
const inputFormat = JSON.parse(input);
- const depositTokenAmount = new BN(inputFormat.depositTokenAmount);
+ const positionMintAddress = new PublicKey(
+ inputFormat.positionMintAddress,
+ );
+
+ const txId = await this.solanaKit.orcaClosePosition(positionMintAddress);
+
+ return JSON.stringify({
+ status: "success",
+ message: "Liquidity position closed successfully.",
+ transaction: txId,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "UNKNOWN_ERROR",
+ });
+ }
+ }
+}
+
+export class SolanaOrcaCreateCLMM extends Tool {
+ name = "orca_create_clmm";
+ description = `Create a Concentrated Liquidity Market Maker (CLMM) pool on Orca, the most efficient and capital-optimized CLMM on Solana. This function initializes a CLMM pool but does not add liquidity. You can add liquidity later using a centered position or a single-sided position.
+
+ Inputs (JSON string):
+ - mintDeploy: string, the mint of the token you want to deploy (required).
+ - mintPair: string, The mint of the token you want to pair the deployed mint with (required).
+ - initialPrice: number, initial price of mintA in terms of mintB, e.g., 0.001 (required).
+ - feeTier: number, fee tier in bps. Options: 1, 2, 4, 5, 16, 30, 65, 100, 200 (required).`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ async _call(input: string): Promise {
+ try {
+ const inputFormat = JSON.parse(input);
+ const mintA = new PublicKey(inputFormat.mintDeploy);
+ const mintB = new PublicKey(inputFormat.mintPair);
+ const initialPrice = new Decimal(inputFormat.initialPrice);
+ const feeTier = inputFormat.feeTier;
+
+ if (!feeTier || !(feeTier in FEE_TIERS)) {
+ throw new Error(
+ `Invalid feeTier. Available options: ${Object.keys(FEE_TIERS).join(
+ ", ",
+ )}`,
+ );
+ }
+
+ const txId = await this.solanaKit.orcaCreateCLMM(
+ mintA,
+ mintB,
+ initialPrice,
+ feeTier,
+ );
+
+ return JSON.stringify({
+ status: "success",
+ message:
+ "CLMM pool created successfully. Note: No liquidity was added.",
+ transaction: txId,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "UNKNOWN_ERROR",
+ });
+ }
+ }
+}
+
+export class SolanaOrcaCreateSingleSideLiquidityPool extends Tool {
+ name = "orca_create_single_sided_liquidity_pool";
+ description = `Create a single-sided liquidity pool on Orca, the most efficient and capital-optimized CLMM platform on Solana.
+
+ This function initializes a single-sided liquidity pool, ideal for community driven project, fair launches, and fundraising. Minimize price impact by setting a narrow price range.
+
+ Inputs (JSON string):
+ - depositTokenAmount: number, in units of the deposit token including decimals, e.g., 1000000000 (required).
+ - depositTokenMint: string, mint address of the deposit token, e.g., "DepositTokenMintAddress" (required).
+ - otherTokenMint: string, mint address of the other token, e.g., "OtherTokenMintAddress" (required).
+ - initialPrice: number, initial price of the deposit token in terms of the other token, e.g., 0.001 (required).
+ - maxPrice: number, maximum price at which liquidity is added, e.g., 5.0 (required).
+ - feeTier: number, fee tier for the pool in bps. Options: 1, 2, 4, 5, 16, 30, 65, 100, 200 (required).`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ async _call(input: string): Promise {
+ try {
+ const inputFormat = JSON.parse(input);
+ const depositTokenAmount = inputFormat.depositTokenAmount;
const depositTokenMint = new PublicKey(inputFormat.depositTokenMint);
const otherTokenMint = new PublicKey(inputFormat.otherTokenMint);
const initialPrice = new Decimal(inputFormat.initialPrice);
@@ -830,7 +1264,7 @@ export class SolanaCreateSingleSidedWhirlpoolTool extends Tool {
);
}
- const txId = await this.solanaKit.createOrcaSingleSidedWhirlpool(
+ const txId = await this.solanaKit.orcaCreateSingleSidedLiquidityPool(
depositTokenAmount,
depositTokenMint,
otherTokenMint,
@@ -854,9 +1288,140 @@ export class SolanaCreateSingleSidedWhirlpoolTool extends Tool {
}
}
+export class SolanaOrcaFetchPositions extends Tool {
+ name = "orca_fetch_positions";
+ description = `Fetch all the liquidity positions in an Orca Whirlpool by owner. Returns an object with positiont mint addresses as keys and position status details as values.`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ async _call(): Promise {
+ try {
+ const txId = await this.solanaKit.orcaFetchPositions();
+
+ return JSON.stringify({
+ status: "success",
+ message: "Liquidity positions fetched.",
+ transaction: txId,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "UNKNOWN_ERROR",
+ });
+ }
+ }
+}
+
+export class SolanaOrcaOpenCenteredPosition extends Tool {
+ name = "orca_open_centered_position_with_liquidity";
+ description = `Add liquidity to a CLMM by opening a centered position in an Orca Whirlpool, the most efficient liquidity pool on Solana.
+
+ Inputs (JSON string):
+ - whirlpoolAddress: string, address of the Orca Whirlpool (required).
+ - priceOffsetBps: number, bps offset (one side) from the current pool price, e.g., 500 for 5% (required).
+ - inputTokenMint: string, mint address of the deposit token (required).
+ - inputAmount: number, amount of the deposit token, e.g., 100.0 (required).`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ async _call(input: string): Promise {
+ try {
+ const inputFormat = JSON.parse(input);
+ const whirlpoolAddress = new PublicKey(inputFormat.whirlpoolAddress);
+ const priceOffsetBps = parseInt(inputFormat.priceOffsetBps, 10);
+ const inputTokenMint = new PublicKey(inputFormat.inputTokenMint);
+ const inputAmount = new Decimal(inputFormat.inputAmount);
+
+ if (priceOffsetBps < 0) {
+ throw new Error(
+ "Invalid distanceFromCurrentPriceBps. It must be equal or greater than 0.",
+ );
+ }
+
+ const txId = await this.solanaKit.orcaOpenCenteredPositionWithLiquidity(
+ whirlpoolAddress,
+ priceOffsetBps,
+ inputTokenMint,
+ inputAmount,
+ );
+
+ return JSON.stringify({
+ status: "success",
+ message: "Centered liquidity position opened successfully.",
+ transaction: txId,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "UNKNOWN_ERROR",
+ });
+ }
+ }
+}
+
+export class SolanaOrcaOpenSingleSidedPosition extends Tool {
+ name = "orca_open_single_sided_position";
+ description = `Add liquidity to a CLMM by opening a single-sided position in an Orca Whirlpool, the most efficient liquidity pool on Solana.
+
+ Inputs (JSON string):
+ - whirlpoolAddress: string, address of the Orca Whirlpool (required).
+ - distanceFromCurrentPriceBps: number, distance in basis points from the current price for the position (required).
+ - widthBps: number, width of the position in basis points (required).
+ - inputTokenMint: string, mint address of the deposit token (required).
+ - inputAmount: number, amount of the deposit token, e.g., 100.0 (required).`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ async _call(input: string): Promise {
+ try {
+ const inputFormat = JSON.parse(input);
+ const whirlpoolAddress = new PublicKey(inputFormat.whirlpoolAddress);
+ const distanceFromCurrentPriceBps =
+ inputFormat.distanceFromCurrentPriceBps;
+ const widthBps = inputFormat.widthBps;
+ const inputTokenMint = new PublicKey(inputFormat.inputTokenMint);
+ const inputAmount = new Decimal(inputFormat.inputAmount);
+
+ if (distanceFromCurrentPriceBps < 0 || widthBps < 0) {
+ throw new Error(
+ "Invalid distanceFromCurrentPriceBps or width. It must be equal or greater than 0.",
+ );
+ }
+
+ const txId = await this.solanaKit.orcaOpenSingleSidedPosition(
+ whirlpoolAddress,
+ distanceFromCurrentPriceBps,
+ widthBps,
+ inputTokenMint,
+ inputAmount,
+ );
+
+ return JSON.stringify({
+ status: "success",
+ message: "Single-sided liquidity position opened successfully.",
+ transaction: txId,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "UNKNOWN_ERROR",
+ });
+ }
+ }
+}
+
export class SolanaRaydiumCreateAmmV4 extends Tool {
name = "raydium_create_ammV4";
- description = `Raydium's Legacy AMM that requiers an OpenBook marketID
+ description = `Raydium's Legacy AMM that requires an OpenBook marketID
Inputs (input is a json string):
marketId: string (required)
@@ -882,7 +1447,7 @@ export class SolanaRaydiumCreateAmmV4 extends Tool {
return JSON.stringify({
status: "success",
- message: "Create raydium amm v4 pool successfully",
+ message: "Raydium amm v4 pool created successfully",
transaction: tx,
});
} catch (error: any) {
@@ -927,7 +1492,7 @@ export class SolanaRaydiumCreateClmm extends Tool {
return JSON.stringify({
status: "success",
- message: "Create raydium clmm pool successfully",
+ message: "Raydium clmm pool created successfully",
transaction: tx,
});
} catch (error: any) {
@@ -975,7 +1540,7 @@ export class SolanaRaydiumCreateCpmm extends Tool {
return JSON.stringify({
status: "success",
- message: "Create raydium cpmm pool successfully",
+ message: "Raydium cpmm pool created successfully",
transaction: tx,
});
} catch (error: any) {
@@ -1017,7 +1582,7 @@ export class SolanaOpenbookCreateMarket extends Tool {
return JSON.stringify({
status: "success",
- message: "Create openbook market successfully",
+ message: "Openbook market created successfully",
transaction: tx,
});
} catch (error: any) {
@@ -1030,12 +1595,50 @@ export class SolanaOpenbookCreateMarket extends Tool {
}
}
+export class SolanaManifestCreateMarket extends Tool {
+ name = "solana_manifest_create_market";
+ description = `Manifest market
+
+ Inputs (input is a json string):
+ baseMint: string (required)
+ quoteMint: string (required)
+ `;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ async _call(input: string): Promise {
+ try {
+ const inputFormat = JSON.parse(input);
+
+ const tx = await this.solanaKit.manifestCreateMarket(
+ new PublicKey(inputFormat.baseMint),
+ new PublicKey(inputFormat.quoteMint),
+ );
+
+ return JSON.stringify({
+ status: "success",
+ message: "Create manifest market successfully",
+ transaction: tx[0],
+ marketId: tx[1],
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "UNKNOWN_ERROR",
+ });
+ }
+ }
+}
+
export class SolanaPythFetchPrice extends Tool {
name = "solana_pyth_fetch_price";
description = `Fetch the price of a given price feed from Pyth's Hermes service
Inputs:
- priceFeedID: string, the price feed ID, e.g., "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43" for BTC/USD`;
+ tokenSymbol: string, e.g., BTC for bitcoin`;
constructor(private solanaKit: SolanaAgentKit) {
super();
@@ -1043,17 +1646,21 @@ export class SolanaPythFetchPrice extends Tool {
async _call(input: string): Promise {
try {
- const price = await this.solanaKit.pythFetchPrice(input);
+ const priceFeedID = await this.solanaKit.getPythPriceFeedID(input);
+ const price = await this.solanaKit.getPythPrice(priceFeedID);
+
const response: PythFetchPriceResponse = {
status: "success",
- priceFeedID: input,
+ tokenSymbol: input,
+ priceFeedID,
price,
};
+
return JSON.stringify(response);
} catch (error: any) {
const response: PythFetchPriceResponse = {
status: "error",
- priceFeedID: input,
+ tokenSymbol: input,
message: error.message,
code: error.code || "UNKNOWN_ERROR",
};
@@ -1302,9 +1909,9 @@ export class SolanaRockPaperScissorsTool extends Tool {
const result = await this.solanaKit.rockPaperScissors(
Number(parsedInput['"amount"']),
parsedInput['"choice"'].replace(/^"|"$/g, "") as
- | "rock"
- | "paper"
- | "scissors",
+ | "rock"
+ | "paper"
+ | "scissors",
);
return JSON.stringify({
@@ -1368,6 +1975,156 @@ export class SolanaTipLinkTool extends Tool {
}
}
+export class SolanaListNFTForSaleTool extends Tool {
+ name = "solana_list_nft_for_sale";
+ description = `List an NFT for sale on Tensor Trade.
+
+ Inputs (input is a JSON string):
+ nftMint: string, the mint address of the NFT (required)
+ price: number, price in SOL (required)`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ protected async _call(input: string): Promise {
+ try {
+ const parsedInput = JSON.parse(input);
+
+ // Validate NFT ownership first
+ const nftAccount =
+ await this.solanaKit.connection.getTokenAccountsByOwner(
+ this.solanaKit.wallet_address,
+ { mint: new PublicKey(parsedInput.nftMint) },
+ );
+
+ if (nftAccount.value.length === 0) {
+ return JSON.stringify({
+ status: "error",
+ message:
+ "NFT not found in wallet. Please make sure you own this NFT.",
+ code: "NFT_NOT_FOUND",
+ });
+ }
+
+ const tx = await this.solanaKit.tensorListNFT(
+ new PublicKey(parsedInput.nftMint),
+ parsedInput.price,
+ );
+
+ return JSON.stringify({
+ status: "success",
+ message: "NFT listed for sale successfully",
+ transaction: tx,
+ price: parsedInput.price,
+ nftMint: parsedInput.nftMint,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "UNKNOWN_ERROR",
+ });
+ }
+ }
+}
+
+export class SolanaCancelNFTListingTool extends Tool {
+ name = "solana_cancel_nft_listing";
+ description = `Cancel an NFT listing on Tensor Trade.
+
+ Inputs (input is a JSON string):
+ nftMint: string, the mint address of the NFT (required)`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ protected async _call(input: string): Promise {
+ try {
+ const parsedInput = JSON.parse(input);
+
+ const tx = await this.solanaKit.tensorCancelListing(
+ new PublicKey(parsedInput.nftMint),
+ );
+
+ return JSON.stringify({
+ status: "success",
+ message: "NFT listing cancelled successfully",
+ transaction: tx,
+ nftMint: parsedInput.nftMint,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "UNKNOWN_ERROR",
+ });
+ }
+ }
+}
+
+export class SolanaFetchTokenReportSummaryTool extends Tool {
+ name = "solana_fetch_token_report_summary";
+ description = `Fetches a summary report for a specific token from RugCheck.
+ Inputs:
+ - mint: string, the mint address of the token, e.g., "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN" (required).`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ protected async _call(input: string): Promise {
+ try {
+ const mint = input.trim();
+ const report = await this.solanaKit.fetchTokenReportSummary(mint);
+
+ return JSON.stringify({
+ status: "success",
+ message: "Token report summary fetched successfully",
+ report,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "FETCH_TOKEN_REPORT_SUMMARY_ERROR",
+ });
+ }
+ }
+}
+
+export class SolanaFetchTokenDetailedReportTool extends Tool {
+ name = "solana_fetch_token_detailed_report";
+ description = `Fetches a detailed report for a specific token from RugCheck.
+ Inputs:
+ - mint: string, the mint address of the token, e.g., "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN" (required).`;
+
+ constructor(private solanaKit: SolanaAgentKit) {
+ super();
+ }
+
+ protected async _call(input: string): Promise {
+ try {
+ const mint = input.trim();
+ const detailedReport =
+ await this.solanaKit.fetchTokenDetailedReport(mint);
+
+ return JSON.stringify({
+ status: "success",
+ message: "Detailed token report fetched successfully",
+ report: detailedReport,
+ });
+ } catch (error: any) {
+ return JSON.stringify({
+ status: "error",
+ message: error.message,
+ code: error.code || "FETCH_TOKEN_DETAILED_REPORT_ERROR",
+ });
+ }
+ }
+}
+
export function createSolanaTools(solanaKit: SolanaAgentKit) {
return [
new SolanaBalanceTool(solanaKit),
@@ -1385,6 +2142,7 @@ export function createSolanaTools(solanaKit: SolanaAgentKit) {
new SolanaLendAssetTool(solanaKit),
new SolanaTPSCalculatorTool(solanaKit),
new SolanaStakeTool(solanaKit),
+ new SolanaRestakeTool(solanaKit),
new SolanaFetchPriceTool(solanaKit),
new SolanaGetDomainTool(solanaKit),
new SolanaTokenDataTool(solanaKit),
@@ -1394,7 +2152,17 @@ export function createSolanaTools(solanaKit: SolanaAgentKit) {
new SolanaRaydiumCreateClmm(solanaKit),
new SolanaRaydiumCreateCpmm(solanaKit),
new SolanaOpenbookCreateMarket(solanaKit),
- new SolanaCreateSingleSidedWhirlpoolTool(solanaKit),
+ new SolanaManifestCreateMarket(solanaKit),
+ new SolanaLimitOrderTool(solanaKit),
+ new SolanaBatchOrderTool(solanaKit),
+ new SolanaCancelAllOrdersTool(solanaKit),
+ new SolanaWithdrawAllTool(solanaKit),
+ new SolanaClosePosition(solanaKit),
+ new SolanaOrcaCreateCLMM(solanaKit),
+ new SolanaOrcaCreateSingleSideLiquidityPool(solanaKit),
+ new SolanaOrcaFetchPositions(solanaKit),
+ new SolanaOrcaOpenCenteredPosition(solanaKit),
+ new SolanaOrcaOpenSingleSidedPosition(solanaKit),
new SolanaPythFetchPrice(solanaKit),
new SolanaResolveDomainTool(solanaKit),
new SolanaGetOwnedDomains(solanaKit),
@@ -1405,5 +2173,11 @@ export function createSolanaTools(solanaKit: SolanaAgentKit) {
new SolanaCreateGibworkTask(solanaKit),
new SolanaRockPaperScissorsTool(solanaKit),
new SolanaTipLinkTool(solanaKit),
+ new SolanaListNFTForSaleTool(solanaKit),
+ new SolanaCancelNFTListingTool(solanaKit),
+ new SolanaFetchTokenReportSummaryTool(solanaKit),
+ new SolanaFetchTokenDetailedReportTool(solanaKit),
+ new SolanaPerpOpenTradeTool(solanaKit),
+ new SolanaPerpCloseTradeTool(solanaKit),
];
}
diff --git a/src/tools/adrena_perp_trading.ts b/src/tools/adrena_perp_trading.ts
new file mode 100644
index 0000000..8c47216
--- /dev/null
+++ b/src/tools/adrena_perp_trading.ts
@@ -0,0 +1,506 @@
+import {
+ PublicKey,
+ SystemProgram,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { SolanaAgentKit } from "../index";
+import { TOKENS, DEFAULT_OPTIONS } from "../constants";
+import { TOKEN_PROGRAM_ID } from "@solana/spl-token";
+import { BN } from "@coral-xyz/anchor";
+
+import AdrenaClient from "../utils/AdrenaClient";
+import { sendTx } from "../utils/send_tx";
+
+const PRICE_DECIMALS = 10;
+const ADRENA_PROGRAM_ID = new PublicKey(
+ "13gDzEXCdocbj8iAiqrScGo47NiSuYENGsRqi3SEAwet",
+);
+
+// i.e percentage = -2 (for -2%)
+// i.e percentage = 5 (for 5%)
+function applySlippage(nb: BN, percentage: number): BN {
+ const negative = percentage < 0 ? true : false;
+
+ // Do x10_000 so percentage can be up to 4 decimals
+ const percentageBN = new BN(
+ (negative ? percentage * -1 : percentage) * 10_000,
+ );
+
+ const delta = nb.mul(percentageBN).divRound(new BN(10_000 * 100));
+
+ return negative ? nb.sub(delta) : nb.add(delta);
+}
+
+/**
+ * Close short trade on Adrena
+ * @returns Transaction signature
+ */
+export async function closePerpTradeShort({
+ agent,
+ price,
+ tradeMint,
+}: {
+ agent: SolanaAgentKit;
+ price: number;
+ tradeMint: PublicKey;
+}) {
+ const client = await AdrenaClient.load(agent);
+
+ const owner = agent.wallet.publicKey;
+
+ const custody = client.getCustodyByMint(tradeMint);
+ const collateralCustody = client.getCustodyByMint(TOKENS.USDC);
+
+ const stakingRewardTokenCustodyAccount = client.getCustodyByMint(
+ AdrenaClient.stakingRewardTokenMint,
+ );
+
+ const stakingRewardTokenCustodyTokenAccount =
+ AdrenaClient.findCustodyTokenAccountAddress(
+ AdrenaClient.stakingRewardTokenMint,
+ );
+
+ const position = AdrenaClient.findPositionAddress(
+ owner,
+ custody.pubkey,
+ "long",
+ );
+
+ const userProfilePda = AdrenaClient.getUserProfilePda(owner);
+
+ const userProfile =
+ await client.program.account.userProfile.fetchNullable(userProfilePda);
+
+ const receivingAccount = AdrenaClient.findATAAddressSync(
+ owner,
+ collateralCustody.mint,
+ );
+
+ const preInstructions: TransactionInstruction[] = [];
+
+ const collateralCustodyOracle = collateralCustody.oracle;
+ const collateralCustodyTokenAccount =
+ AdrenaClient.findCustodyTokenAccountAddress(collateralCustody.mint);
+
+ if (
+ !(await AdrenaClient.isAccountInitialized(
+ agent.connection,
+ receivingAccount,
+ ))
+ ) {
+ preInstructions.push(
+ AdrenaClient.createATAInstruction({
+ ataAddress: receivingAccount,
+ mint: collateralCustody.mint,
+ owner,
+ }),
+ );
+ }
+
+ const instruction = await client.program.methods
+ .closePositionShort({
+ price: new BN(price * 10 ** PRICE_DECIMALS),
+ })
+ .accountsStrict({
+ owner,
+ receivingAccount,
+ transferAuthority: AdrenaClient.transferAuthority,
+ pool: AdrenaClient.mainPool,
+ position: position,
+ custody: custody.pubkey,
+ custodyTradeOracle: custody.tradeOracle,
+ tokenProgram: TOKEN_PROGRAM_ID,
+ lmStaking: AdrenaClient.lmStaking,
+ lpStaking: AdrenaClient.lpStaking,
+ cortex: AdrenaClient.cortex,
+ stakingRewardTokenCustody: stakingRewardTokenCustodyAccount.pubkey,
+ stakingRewardTokenCustodyOracle: stakingRewardTokenCustodyAccount.oracle,
+ stakingRewardTokenCustodyTokenAccount,
+ lmStakingRewardTokenVault: AdrenaClient.lmStakingRewardTokenVault,
+ lpStakingRewardTokenVault: AdrenaClient.lpStakingRewardTokenVault,
+ lpTokenMint: AdrenaClient.lpTokenMint,
+ protocolFeeRecipient: client.cortex.protocolFeeRecipient,
+ adrenaProgram: AdrenaClient.programId,
+ userProfile: userProfile ? userProfilePda : null,
+ caller: owner,
+ collateralCustody: collateralCustody.pubkey,
+ collateralCustodyOracle,
+ collateralCustodyTokenAccount,
+ })
+ .instruction();
+
+ return sendTx(agent, [...preInstructions, instruction]);
+}
+
+/**
+ * Close long trade on Adrena
+ * @returns Transaction signature
+ */
+export async function closePerpTradeLong({
+ agent,
+ price,
+ tradeMint,
+}: {
+ agent: SolanaAgentKit;
+ price: number;
+ tradeMint: PublicKey;
+}) {
+ const client = await AdrenaClient.load(agent);
+
+ const owner = agent.wallet.publicKey;
+
+ const custody = client.getCustodyByMint(tradeMint);
+
+ const custodyTokenAccount =
+ AdrenaClient.findCustodyTokenAccountAddress(tradeMint);
+
+ const stakingRewardTokenCustodyAccount = client.getCustodyByMint(
+ AdrenaClient.stakingRewardTokenMint,
+ );
+
+ const stakingRewardTokenCustodyTokenAccount =
+ AdrenaClient.findCustodyTokenAccountAddress(
+ AdrenaClient.stakingRewardTokenMint,
+ );
+
+ const position = AdrenaClient.findPositionAddress(
+ owner,
+ custody.pubkey,
+ "long",
+ );
+
+ const userProfilePda = AdrenaClient.getUserProfilePda(owner);
+
+ const userProfile =
+ await client.program.account.userProfile.fetchNullable(userProfilePda);
+
+ const receivingAccount = AdrenaClient.findATAAddressSync(owner, custody.mint);
+
+ const preInstructions: TransactionInstruction[] = [];
+
+ if (
+ !(await AdrenaClient.isAccountInitialized(
+ agent.connection,
+ receivingAccount,
+ ))
+ ) {
+ preInstructions.push(
+ AdrenaClient.createATAInstruction({
+ ataAddress: receivingAccount,
+ mint: custody.mint,
+ owner,
+ }),
+ );
+ }
+
+ const instruction = await client.program.methods
+ .closePositionLong({
+ price: new BN(price * 10 ** PRICE_DECIMALS),
+ })
+ .accountsStrict({
+ owner,
+ receivingAccount,
+ transferAuthority: AdrenaClient.transferAuthority,
+ pool: AdrenaClient.mainPool,
+ position: position,
+ custody: custody.pubkey,
+ custodyTokenAccount,
+ custodyOracle: custody.oracle,
+ custodyTradeOracle: custody.tradeOracle,
+ tokenProgram: TOKEN_PROGRAM_ID,
+ lmStaking: AdrenaClient.lmStaking,
+ lpStaking: AdrenaClient.lpStaking,
+ cortex: AdrenaClient.cortex,
+ stakingRewardTokenCustody: stakingRewardTokenCustodyAccount.pubkey,
+ stakingRewardTokenCustodyOracle: stakingRewardTokenCustodyAccount.oracle,
+ stakingRewardTokenCustodyTokenAccount,
+ lmStakingRewardTokenVault: AdrenaClient.lmStakingRewardTokenVault,
+ lpStakingRewardTokenVault: AdrenaClient.lpStakingRewardTokenVault,
+ lpTokenMint: AdrenaClient.lpTokenMint,
+ protocolFeeRecipient: client.cortex.protocolFeeRecipient,
+ adrenaProgram: AdrenaClient.programId,
+ userProfile: userProfile ? userProfilePda : null,
+ caller: owner,
+ })
+ .instruction();
+
+ return sendTx(agent, [...preInstructions, instruction]);
+}
+
+/**
+ * Open long trade on Adrena
+ *
+ * Note: provide the same token as collateralMint and as tradeMint to avoid swap
+ * @returns Transaction signature
+ */
+export async function openPerpTradeLong({
+ agent,
+ price,
+ collateralAmount,
+ collateralMint = TOKENS.jitoSOL,
+ leverage = DEFAULT_OPTIONS.LEVERAGE_BPS,
+ tradeMint = TOKENS.jitoSOL,
+ slippage = 0.3,
+}: {
+ agent: SolanaAgentKit;
+ price: number;
+ collateralAmount: number;
+ collateralMint?: PublicKey;
+ leverage?: number;
+ tradeMint?: PublicKey;
+ slippage?: number;
+}): Promise {
+ const client = await AdrenaClient.load(agent);
+
+ const owner = agent.wallet.publicKey;
+
+ const collateralAccount = AdrenaClient.findATAAddressSync(owner, tradeMint);
+ const fundingAccount = AdrenaClient.findATAAddressSync(owner, collateralMint);
+
+ const receivingCustody = AdrenaClient.findCustodyAddress(collateralMint);
+ const receivingCustodyOracle = client.getCustodyByMint(collateralMint).oracle;
+ const receivingCustodyTokenAccount =
+ AdrenaClient.findCustodyTokenAccountAddress(collateralMint);
+
+ // Principal custody is the custody of the targeted token
+ // i.e open a 1 ETH long position, principal custody is ETH
+ const principalCustody = AdrenaClient.findCustodyAddress(tradeMint);
+ const principalCustodyAccount = client.getCustodyByMint(tradeMint);
+ const principalCustodyOracle = principalCustodyAccount.oracle;
+ const principalCustodyTradeOracle = principalCustodyAccount.tradeOracle;
+ const principalCustodyTokenAccount =
+ AdrenaClient.findCustodyTokenAccountAddress(tradeMint);
+
+ const stakingRewardTokenCustodyAccount = client.getCustodyByMint(
+ AdrenaClient.stakingRewardTokenMint,
+ );
+
+ const stakingRewardTokenCustodyTokenAccount =
+ AdrenaClient.findCustodyTokenAccountAddress(
+ AdrenaClient.stakingRewardTokenMint,
+ );
+
+ const position = AdrenaClient.findPositionAddress(
+ owner,
+ principalCustody,
+ "long",
+ );
+
+ const userProfilePda = AdrenaClient.getUserProfilePda(owner);
+
+ const userProfile =
+ await client.program.account.userProfile.fetchNullable(userProfilePda);
+
+ const priceWithSlippage = applySlippage(
+ new BN(price * 10 ** PRICE_DECIMALS),
+ slippage,
+ );
+
+ const scaledCollateralAmount = new BN(
+ collateralAmount *
+ Math.pow(10, client.getCustodyByMint(collateralMint).decimals),
+ );
+
+ const preInstructions: TransactionInstruction[] = [];
+
+ if (
+ !(await AdrenaClient.isAccountInitialized(
+ agent.connection,
+ collateralAccount,
+ ))
+ ) {
+ preInstructions.push(
+ AdrenaClient.createATAInstruction({
+ ataAddress: collateralAccount,
+ mint: tradeMint,
+ owner,
+ }),
+ );
+ }
+
+ const instruction = await client.program.methods
+ .openOrIncreasePositionWithSwapLong({
+ price: priceWithSlippage,
+ collateral: scaledCollateralAmount,
+ leverage,
+ referrer: null,
+ })
+ .accountsStrict({
+ owner,
+ payer: owner,
+ fundingAccount,
+ collateralAccount,
+ receivingCustody,
+ receivingCustodyOracle,
+ receivingCustodyTokenAccount,
+ principalCustody,
+ principalCustodyOracle,
+ principalCustodyTradeOracle,
+ principalCustodyTokenAccount,
+ transferAuthority: AdrenaClient.transferAuthority,
+ cortex: AdrenaClient.cortex,
+ lmStaking: AdrenaClient.lmStaking,
+ lpStaking: AdrenaClient.lpStaking,
+ pool: AdrenaClient.mainPool,
+ position,
+ stakingRewardTokenCustody: stakingRewardTokenCustodyAccount.pubkey,
+ stakingRewardTokenCustodyOracle: stakingRewardTokenCustodyAccount.oracle,
+ stakingRewardTokenCustodyTokenAccount,
+ lmStakingRewardTokenVault: AdrenaClient.lmStakingRewardTokenVault,
+ lpStakingRewardTokenVault: AdrenaClient.lpStakingRewardTokenVault,
+ lpTokenMint: AdrenaClient.lpTokenMint,
+ userProfile: userProfile ? userProfilePda : null,
+ protocolFeeRecipient: client.cortex.protocolFeeRecipient,
+ systemProgram: SystemProgram.programId,
+ tokenProgram: TOKEN_PROGRAM_ID,
+ adrenaProgram: ADRENA_PROGRAM_ID,
+ })
+ .instruction();
+
+ return sendTx(agent, [...preInstructions, instruction]);
+}
+
+/**
+ * Open short trade on Adrena
+ *
+ * Note: provide USDC as collateralMint to avoid swap
+ * @returns Transaction signature
+ */
+export async function openPerpTradeShort({
+ agent,
+ price,
+ collateralAmount,
+ collateralMint = TOKENS.USDC,
+ leverage = DEFAULT_OPTIONS.LEVERAGE_BPS,
+ tradeMint = TOKENS.jitoSOL,
+ slippage = 0.3,
+}: {
+ agent: SolanaAgentKit;
+ price: number;
+ collateralAmount: number;
+ collateralMint?: PublicKey;
+ leverage?: number;
+ tradeMint?: PublicKey;
+ slippage?: number;
+}): Promise {
+ const client = await AdrenaClient.load(agent);
+
+ const owner = agent.wallet.publicKey;
+
+ const collateralAccount = AdrenaClient.findATAAddressSync(owner, tradeMint);
+ const fundingAccount = AdrenaClient.findATAAddressSync(owner, collateralMint);
+
+ const receivingCustody = AdrenaClient.findCustodyAddress(collateralMint);
+ const receivingCustodyOracle = client.getCustodyByMint(collateralMint).oracle;
+ const receivingCustodyTokenAccount =
+ AdrenaClient.findCustodyTokenAccountAddress(collateralMint);
+
+ // Principal custody is the custody of the targeted token
+ // i.e open a 1 BTC short position, principal custody is BTC
+ const principalCustody = AdrenaClient.findCustodyAddress(tradeMint);
+ const principalCustodyAccount = client.getCustodyByMint(tradeMint);
+ const principalCustodyTradeOracle = principalCustodyAccount.tradeOracle;
+ const principalCustodyTokenAccount =
+ AdrenaClient.findCustodyTokenAccountAddress(tradeMint);
+
+ const usdcAta = AdrenaClient.findATAAddressSync(owner, TOKENS.USDC);
+
+ const preInstructions: TransactionInstruction[] = [];
+
+ if (!(await AdrenaClient.isAccountInitialized(agent.connection, usdcAta))) {
+ preInstructions.push(
+ AdrenaClient.createATAInstruction({
+ ataAddress: usdcAta,
+ mint: TOKENS.USDC,
+ owner,
+ }),
+ );
+ }
+
+ // Custody used to provide collateral when opening the position
+ // Should be a stable token, by default, use USDC
+ const instructionCollateralMint = TOKENS.USDC;
+
+ const collateralCustody = AdrenaClient.findCustodyAddress(
+ instructionCollateralMint,
+ );
+ const collateralCustodyOracle = client.getCustodyByMint(
+ instructionCollateralMint,
+ ).oracle;
+
+ const collateralCustodyTokenAccount =
+ AdrenaClient.findCustodyTokenAccountAddress(instructionCollateralMint);
+
+ const stakingRewardTokenCustodyAccount = client.getCustodyByMint(
+ AdrenaClient.stakingRewardTokenMint,
+ );
+
+ const stakingRewardTokenCustodyTokenAccount =
+ AdrenaClient.findCustodyTokenAccountAddress(
+ AdrenaClient.stakingRewardTokenMint,
+ );
+
+ const position = AdrenaClient.findPositionAddress(
+ owner,
+ principalCustody,
+ "long",
+ );
+
+ const userProfilePda = AdrenaClient.getUserProfilePda(owner);
+
+ const userProfile =
+ await client.program.account.userProfile.fetchNullable(userProfilePda);
+
+ const priceWithSlippage = applySlippage(
+ new BN(price * 10 ** PRICE_DECIMALS),
+ slippage,
+ );
+
+ const scaledCollateralAmount = new BN(
+ collateralAmount *
+ Math.pow(10, client.getCustodyByMint(collateralMint).decimals),
+ );
+
+ const instruction = await client.program.methods
+ .openOrIncreasePositionWithSwapShort({
+ price: priceWithSlippage,
+ collateral: scaledCollateralAmount,
+ leverage,
+ referrer: null,
+ })
+ .accountsStrict({
+ owner,
+ payer: owner,
+ fundingAccount,
+ collateralAccount,
+ receivingCustody,
+ receivingCustodyOracle,
+ receivingCustodyTokenAccount,
+ principalCustody,
+ principalCustodyTradeOracle,
+ principalCustodyTokenAccount,
+ collateralCustody,
+ collateralCustodyOracle,
+ collateralCustodyTokenAccount,
+ transferAuthority: AdrenaClient.transferAuthority,
+ cortex: AdrenaClient.cortex,
+ lmStaking: AdrenaClient.lmStaking,
+ lpStaking: AdrenaClient.lpStaking,
+ pool: AdrenaClient.mainPool,
+ position,
+ stakingRewardTokenCustody: stakingRewardTokenCustodyAccount.pubkey,
+ stakingRewardTokenCustodyOracle: stakingRewardTokenCustodyAccount.oracle,
+ stakingRewardTokenCustodyTokenAccount,
+ lmStakingRewardTokenVault: AdrenaClient.lmStakingRewardTokenVault,
+ lpStakingRewardTokenVault: AdrenaClient.lpStakingRewardTokenVault,
+ lpTokenMint: AdrenaClient.lpTokenMint,
+ userProfile: userProfile ? userProfilePda : null,
+ protocolFeeRecipient: client.cortex.protocolFeeRecipient,
+ systemProgram: SystemProgram.programId,
+ tokenProgram: TOKEN_PROGRAM_ID,
+ adrenaProgram: ADRENA_PROGRAM_ID,
+ })
+ .instruction();
+
+ return sendTx(agent, [...preInstructions, instruction]);
+}
diff --git a/src/tools/batch_order.ts b/src/tools/batch_order.ts
new file mode 100644
index 0000000..83080fe
--- /dev/null
+++ b/src/tools/batch_order.ts
@@ -0,0 +1,152 @@
+import {
+ PublicKey,
+ Transaction,
+ sendAndConfirmTransaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import {
+ ManifestClient,
+ WrapperPlaceOrderParamsExternal,
+ OrderType,
+} from "@cks-systems/manifest-sdk";
+import { SolanaAgentKit } from "../index";
+import { BatchOrderPattern, OrderParams } from "../types";
+
+/**
+ * Generates an array of orders based on the specified pattern
+ */
+export function generateOrdersfromPattern(
+ pattern: BatchOrderPattern,
+): OrderParams[] {
+ const orders: OrderParams[] = [];
+
+ // Random number of orders if not specified, max of 8
+ const numOrders = pattern.numberOfOrders || Math.ceil(Math.random() * 8);
+
+ // Calculate price points
+ const prices: number[] = [];
+ if (pattern.priceRange) {
+ const { min, max } = pattern.priceRange;
+ if (min && max) {
+ // Generate evenly spaced prices
+ for (let i = 0; i < numOrders; i++) {
+ if (pattern.spacing?.type === "percentage") {
+ const factor = 1 + pattern.spacing.value / 100;
+ prices.push(min * Math.pow(factor, i));
+ } else {
+ const step = (max - min) / (numOrders - 1);
+ prices.push(min + step * i);
+ }
+ }
+ } else if (min) {
+ // Generate prices starting from min with specified spacing
+ for (let i = 0; i < numOrders; i++) {
+ if (pattern.spacing?.type === "percentage") {
+ const factor = 1 + pattern.spacing.value / 100;
+ prices.push(min * Math.pow(factor, i));
+ } else {
+ prices.push(min + (pattern.spacing?.value || 0.01) * i);
+ }
+ }
+ }
+ }
+
+ // Calculate quantities
+ let quantities: number[] = [];
+ if (pattern.totalQuantity) {
+ const individualQty = pattern.totalQuantity / numOrders;
+ quantities = Array(numOrders).fill(individualQty);
+ } else if (pattern.individualQuantity) {
+ quantities = Array(numOrders).fill(pattern.individualQuantity);
+ }
+
+ // Generate orders
+ for (let i = 0; i < numOrders; i++) {
+ orders.push({
+ side: pattern.side,
+ price: prices[i],
+ quantity: quantities[i],
+ });
+ }
+
+ return orders;
+}
+
+/**
+ * Validates that sell orders are not priced below buy orders
+ * @param orders Array of order parameters to validate
+ * @throws Error if orders are crossed
+ */
+function validateNoCrossedOrders(orders: OrderParams[]): void {
+ // Find lowest sell and highest buy prices
+ let lowestSell = Number.MAX_SAFE_INTEGER;
+ let highestBuy = 0;
+
+ orders.forEach((order) => {
+ if (order.side === "Sell" && order.price < lowestSell) {
+ lowestSell = order.price;
+ }
+ if (order.side === "Buy" && order.price > highestBuy) {
+ highestBuy = order.price;
+ }
+ });
+
+ // Check if orders cross
+ if (lowestSell <= highestBuy) {
+ throw new Error(
+ `Invalid order prices: Sell order at ${lowestSell} is lower than or equal to Buy order at ${highestBuy}. Orders cannot cross.`,
+ );
+ }
+}
+
+/**
+ * Place batch orders using Manifest
+ * @param agent SolanaAgentKit instance
+ * @param marketId Public key for the manifest market
+ * @param quantity Amount to trade in tokens
+ * @param side Buy or Sell
+ * @param price Price in tokens ie. SOL/USDC
+ * @returns Transaction signature
+ */
+export async function batchOrder(
+ agent: SolanaAgentKit,
+ marketId: PublicKey,
+ orders: OrderParams[],
+): Promise {
+ try {
+ validateNoCrossedOrders(orders);
+
+ const mfxClient = await ManifestClient.getClientForMarket(
+ agent.connection,
+ marketId,
+ agent.wallet,
+ );
+
+ const placeParams: WrapperPlaceOrderParamsExternal[] = orders.map(
+ (order) => ({
+ numBaseTokens: order.quantity,
+ tokenPrice: order.price,
+ isBid: order.side === "Buy",
+ lastValidSlot: 0,
+ orderType: OrderType.Limit,
+ clientOrderId: Number(Math.random() * 10000),
+ }),
+ );
+
+ const batchOrderIx: TransactionInstruction = await mfxClient.batchUpdateIx(
+ placeParams,
+ [],
+ true,
+ );
+
+ const signature = await sendAndConfirmTransaction(
+ agent.connection,
+ new Transaction().add(batchOrderIx),
+ [agent.wallet],
+ );
+
+ return signature;
+ } catch (error: any) {
+ throw new Error(`Batch Order failed: ${error.message}`);
+ }
+}
diff --git a/src/tools/cancel_all_orders.ts b/src/tools/cancel_all_orders.ts
new file mode 100644
index 0000000..d8e3639
--- /dev/null
+++ b/src/tools/cancel_all_orders.ts
@@ -0,0 +1,37 @@
+import {
+ PublicKey,
+ sendAndConfirmTransaction,
+ Transaction,
+} from "@solana/web3.js";
+import { SolanaAgentKit } from "../index";
+import { ManifestClient } from "@cks-systems/manifest-sdk";
+
+/**
+ * Cancels all orders from Manifest
+ * @param agent SolanaAgentKit instance
+ * @param marketId Public key for the manifest market
+ * @returns Transaction signature
+ */
+export async function cancelAllOrders(
+ agent: SolanaAgentKit,
+ marketId: PublicKey,
+): Promise {
+ try {
+ const mfxClient = await ManifestClient.getClientForMarket(
+ agent.connection,
+ marketId,
+ agent.wallet,
+ );
+
+ const cancelAllOrdersIx = await mfxClient.cancelAllIx();
+ const signature = await sendAndConfirmTransaction(
+ agent.connection,
+ new Transaction().add(cancelAllOrdersIx),
+ [agent.wallet],
+ );
+
+ return signature;
+ } catch (error: any) {
+ throw new Error(`Cancel all orders failed: ${error.message}`);
+ }
+}
diff --git a/src/tools/create_image.ts b/src/tools/create_image.ts
index 7fbb2cf..106f3c2 100644
--- a/src/tools/create_image.ts
+++ b/src/tools/create_image.ts
@@ -16,12 +16,12 @@ export async function create_image(
n: number = 1,
) {
try {
- if (!agent.openai_api_key) {
+ if (!agent.config.OPENAI_API_KEY) {
throw new Error("OpenAI API key not found in agent configuration");
}
const openai = new OpenAI({
- apiKey: agent.openai_api_key,
+ apiKey: agent.config.OPENAI_API_KEY,
});
const response = await openai.images.generate({
diff --git a/src/tools/create_orca_single_sided_whirlpool.ts b/src/tools/create_orca_single_sided_whirlpool.ts
deleted file mode 100644
index d3038c1..0000000
--- a/src/tools/create_orca_single_sided_whirlpool.ts
+++ /dev/null
@@ -1,431 +0,0 @@
-import { Keypair, PublicKey, Transaction } from "@solana/web3.js";
-import { SolanaAgentKit } from "../index";
-import { BN, Wallet } from "@coral-xyz/anchor";
-import { Decimal } from "decimal.js";
-import {
- PDAUtil,
- ORCA_WHIRLPOOL_PROGRAM_ID,
- ORCA_WHIRLPOOLS_CONFIG,
- WhirlpoolContext,
- TickUtil,
- PriceMath,
- PoolUtil,
- TokenExtensionContextForPool,
- NO_TOKEN_EXTENSION_CONTEXT,
- TokenExtensionUtil,
- WhirlpoolIx,
- IncreaseLiquidityQuoteParam,
- increaseLiquidityQuoteByInputTokenWithParams,
-} from "@orca-so/whirlpools-sdk";
-import {
- Percentage,
- resolveOrCreateATAs,
- TransactionBuilder,
-} from "@orca-so/common-sdk";
-import {
- increaseLiquidityIx,
- increaseLiquidityV2Ix,
- initTickArrayIx,
- openPositionWithTokenExtensionsIx,
-} from "@orca-so/whirlpools-sdk/dist/instructions";
-import {
- getAssociatedTokenAddressSync,
- TOKEN_2022_PROGRAM_ID,
-} from "@solana/spl-token";
-import { sendTx } from "../utils/send_tx";
-
-/**
- * Maps fee tier percentages to their corresponding tick spacing values in the Orca Whirlpool protocol.
- *
- * @remarks
- * Fee tiers determine the percentage of fees collected on swaps, while tick spacing affects
- * the granularity of price ranges for liquidity positions.
- *
- * For more details, refer to:
- * - [Whirlpool Fees](https://orca-so.github.io/whirlpools/Architecture%20Overview/Whirlpool%20Fees)
- * - [Whirlpool Parameters](https://orca-so.github.io/whirlpools/Architecture%20Overview/Whirlpool%20Parameters)
- *
- * @example
- * const tickSpacing = FEE_TIERS[0.30]; // Returns 64
- */
-export const FEE_TIERS = {
- 0.01: 1,
- 0.02: 2,
- 0.04: 4,
- 0.05: 8,
- 0.16: 16,
- 0.3: 64,
- 0.65: 96,
- 1.0: 128,
- 2.0: 256,
-} as const;
-
-/**
- * # Creates a single-sided Whirlpool.
- *
- * This function initializes a new Whirlpool (liquidity pool) on Orca and seeds it with liquidity from a single token.
- *
- * ## Example Usage:
- * You created a new token called SHARK, and you want to set the initial price to 0.001 USDC.
- * You set `depositTokenMint` to SHARK's mint address and `otherTokenMint` to USDC's mint address.
- * You can minimize price impact for buyers in a few ways:
- * 1. Increase the amount of tokens you deposit
- * 2. Set the initial price very low
- * 3. Set the maximum price closer to the initial price
- *
- * ### Note for experts:
- * The Wrhirlpool program initializes the Whirlpool with the in a specific order. This might not be
- * the order you expect, so the function checks the order and adjusts the inverts the prices. This means that
- * on-chain the Whirlpool might be configured as USDC/SHARK instead of SHARK/USDC, and the on-chain price will
- * be 1/`initialPrice`. This will not affect the price of the token as you intended it to be.
- *
- * @param agent - The `SolanaAgentKit` instance representing the wallet and connection details.
- * @param depositTokenAmount - The amount of the deposit token (including the decimals) to contribute to the pool.
- * @param depositTokenMint - The mint address of the token being deposited into the pool, eg. SHARK.
- * @param otherTokenMint - The mint address of the other token in the pool, eg. USDC.
- * @param initialPrice - The initial price of the deposit token in terms of the other token.
- * @param maxPrice - The maximum price at which liquidity is added.
- * @param feeTier - The fee tier percentage for the pool, determining tick spacing and fee collection rates.
- *
- * @returns A promise that resolves to a transaction ID (`string`) of the transaction creating the pool.
- *
- * @throws Will throw an error if:
- * - Mint accounts for the tokens cannot be fetched.
- * - Prices are out of bounds.
- *
- * @remarks
- * This function is designed for single-sided deposits where users only contribute one type of token,
- * and the function manages mint order and necessary calculations.
- *
- * @example
- * ```typescript
- * import { SolanaAgentKit } from "your-sdk";
- * import { PublicKey } from "@solana/web3.js";
- * import { BN } from "@coral-xyz/anchor";
- * import Decimal from "decimal.js";
- *
- * const agent = new SolanaAgentKit(wallet, connection);
- * const depositAmount = new BN(1_000_000_000_000); // 1 million SHARK if SHARK has 6 decimals
- * const depositTokenMint = new PublicKey("DEPOSTI_TOKEN_ADDRESS");
- * const otherTokenMint = new PublicKey("OTHER_TOKEN_ADDRESS");
- * const initialPrice = new Decimal(0.001);
- * const maxPrice = new Decimal(5.0);
- * const feeTier = 0.30;
- *
- * const txId = await createOrcaSingleSidedWhirlpool(
- * agent,
- * depositAmount,
- * depositTokenMint,
- * otherTokenMint,
- * initialPrice,
- * maxPrice,
- * feeTier,
- * );
- * console.log(`Single sided whirlpool created in transaction: ${txId}`);
- * ```
- */
-export async function createOrcaSingleSidedWhirlpool(
- agent: SolanaAgentKit,
- depositTokenAmount: BN,
- depositTokenMint: PublicKey,
- otherTokenMint: PublicKey,
- initialPrice: Decimal,
- maxPrice: Decimal,
- feeTier: keyof typeof FEE_TIERS,
-): Promise {
- const wallet = new Wallet(agent.wallet);
- const ctx = WhirlpoolContext.from(
- agent.connection,
- wallet,
- ORCA_WHIRLPOOL_PROGRAM_ID,
- );
- const fetcher = ctx.fetcher;
-
- const correctTokenOrder = PoolUtil.orderMints(
- otherTokenMint,
- depositTokenMint,
- ).map((addr) => addr.toString());
- const isCorrectMintOrder =
- correctTokenOrder[0] === depositTokenMint.toString();
- let mintA, mintB;
- if (isCorrectMintOrder) {
- [mintA, mintB] = [depositTokenMint, otherTokenMint];
- } else {
- [mintA, mintB] = [otherTokenMint, depositTokenMint];
- initialPrice = new Decimal(1 / initialPrice.toNumber());
- maxPrice = new Decimal(1 / maxPrice.toNumber());
- }
- const mintAAccount = await fetcher.getMintInfo(mintA);
- const mintBAccount = await fetcher.getMintInfo(mintB);
- if (mintAAccount === null || mintBAccount === null) {
- throw Error("Mint account not found");
- }
- const tickSpacing = FEE_TIERS[feeTier];
- const tickIndex = PriceMath.priceToTickIndex(
- initialPrice,
- mintAAccount.decimals,
- mintBAccount.decimals,
- );
- const initialTick = TickUtil.getInitializableTickIndex(
- tickIndex,
- tickSpacing,
- );
-
- const tokenExtensionCtx: TokenExtensionContextForPool = {
- ...NO_TOKEN_EXTENSION_CONTEXT,
- tokenMintWithProgramA: mintAAccount,
- tokenMintWithProgramB: mintBAccount,
- };
- const feeTierKey = PDAUtil.getFeeTier(
- ORCA_WHIRLPOOL_PROGRAM_ID,
- ORCA_WHIRLPOOLS_CONFIG,
- tickSpacing,
- ).publicKey;
- const initSqrtPrice = PriceMath.tickIndexToSqrtPriceX64(initialTick);
- const tokenVaultAKeypair = Keypair.generate();
- const tokenVaultBKeypair = Keypair.generate();
- const whirlpoolPda = PDAUtil.getWhirlpool(
- ORCA_WHIRLPOOL_PROGRAM_ID,
- ORCA_WHIRLPOOLS_CONFIG,
- mintA,
- mintB,
- FEE_TIERS[feeTier],
- );
- const tokenBadgeA = PDAUtil.getTokenBadge(
- ORCA_WHIRLPOOL_PROGRAM_ID,
- ORCA_WHIRLPOOLS_CONFIG,
- mintA,
- ).publicKey;
- const tokenBadgeB = PDAUtil.getTokenBadge(
- ORCA_WHIRLPOOL_PROGRAM_ID,
- ORCA_WHIRLPOOLS_CONFIG,
- mintB,
- ).publicKey;
- const baseParamsPool = {
- initSqrtPrice,
- whirlpoolsConfig: ORCA_WHIRLPOOLS_CONFIG,
- whirlpoolPda,
- tokenMintA: mintA,
- tokenMintB: mintB,
- tokenVaultAKeypair,
- tokenVaultBKeypair,
- feeTierKey,
- tickSpacing: tickSpacing,
- funder: wallet.publicKey,
- };
- const initPoolIx = !TokenExtensionUtil.isV2IxRequiredPool(tokenExtensionCtx)
- ? WhirlpoolIx.initializePoolIx(ctx.program, baseParamsPool)
- : WhirlpoolIx.initializePoolV2Ix(ctx.program, {
- ...baseParamsPool,
- tokenProgramA: tokenExtensionCtx.tokenMintWithProgramA.tokenProgram,
- tokenProgramB: tokenExtensionCtx.tokenMintWithProgramB.tokenProgram,
- tokenBadgeA,
- tokenBadgeB,
- });
- const initialTickArrayStartTick = TickUtil.getStartTickIndex(
- initialTick,
- tickSpacing,
- );
- const initialTickArrayPda = PDAUtil.getTickArray(
- ctx.program.programId,
- whirlpoolPda.publicKey,
- initialTickArrayStartTick,
- );
-
- const txBuilder = new TransactionBuilder(
- ctx.provider.connection,
- ctx.provider.wallet,
- ctx.txBuilderOpts,
- );
- txBuilder.addInstruction(initPoolIx);
- txBuilder.addInstruction(
- initTickArrayIx(ctx.program, {
- startTick: initialTickArrayStartTick,
- tickArrayPda: initialTickArrayPda,
- whirlpool: whirlpoolPda.publicKey,
- funder: wallet.publicKey,
- }),
- );
-
- let tickLowerIndex, tickUpperIndex;
- if (isCorrectMintOrder) {
- tickLowerIndex = initialTick;
- tickUpperIndex = PriceMath.priceToTickIndex(
- maxPrice,
- mintAAccount.decimals,
- mintBAccount.decimals,
- );
- } else {
- tickLowerIndex = PriceMath.priceToTickIndex(
- maxPrice,
- mintAAccount.decimals,
- mintBAccount.decimals,
- );
- tickUpperIndex = initialTick;
- }
- const tickLowerInitializableIndex = TickUtil.getInitializableTickIndex(
- tickLowerIndex,
- tickSpacing,
- );
- const tickUpperInitializableIndex = TickUtil.getInitializableTickIndex(
- tickUpperIndex,
- tickSpacing,
- );
- if (
- !TickUtil.checkTickInBounds(tickLowerInitializableIndex) ||
- !TickUtil.checkTickInBounds(tickUpperInitializableIndex)
- ) {
- throw Error("Prices out of bounds");
- }
- const increasLiquidityQuoteParam: IncreaseLiquidityQuoteParam = {
- inputTokenAmount: new BN(depositTokenAmount),
- inputTokenMint: depositTokenMint,
- tokenMintA: mintA,
- tokenMintB: mintB,
- tickCurrentIndex: initialTick,
- sqrtPrice: initSqrtPrice,
- tickLowerIndex: tickLowerInitializableIndex,
- tickUpperIndex: tickUpperInitializableIndex,
- tokenExtensionCtx: tokenExtensionCtx,
- slippageTolerance: Percentage.fromFraction(0, 100),
- };
- const liquidityInput = increaseLiquidityQuoteByInputTokenWithParams(
- increasLiquidityQuoteParam,
- );
- const { liquidityAmount: liquidity, tokenMaxA, tokenMaxB } = liquidityInput;
-
- const positionMintKeypair = Keypair.generate();
- const positionMintPubkey = positionMintKeypair.publicKey;
- const positionPda = PDAUtil.getPosition(
- ORCA_WHIRLPOOL_PROGRAM_ID,
- positionMintPubkey,
- );
- const positionTokenAccountAddress = getAssociatedTokenAddressSync(
- positionMintPubkey,
- wallet.publicKey,
- ctx.accountResolverOpts.allowPDAOwnerAddress,
- TOKEN_2022_PROGRAM_ID,
- );
- const params = {
- funder: wallet.publicKey,
- owner: wallet.publicKey,
- positionPda,
- positionTokenAccount: positionTokenAccountAddress,
- whirlpool: whirlpoolPda.publicKey,
- tickLowerIndex: tickLowerInitializableIndex,
- tickUpperIndex: tickUpperInitializableIndex,
- };
- const positionIx = openPositionWithTokenExtensionsIx(ctx.program, {
- ...params,
- positionMint: positionMintPubkey,
- withTokenMetadataExtension: true,
- });
-
- txBuilder.addInstruction(positionIx);
- txBuilder.addSigner(positionMintKeypair);
-
- const [ataA, ataB] = await resolveOrCreateATAs(
- ctx.connection,
- wallet.publicKey,
- [
- { tokenMint: mintA, wrappedSolAmountIn: tokenMaxA },
- { tokenMint: mintB, wrappedSolAmountIn: tokenMaxB },
- ],
- () => ctx.fetcher.getAccountRentExempt(),
- wallet.publicKey,
- undefined,
- ctx.accountResolverOpts.allowPDAOwnerAddress,
- ctx.accountResolverOpts.createWrappedSolAccountMethod,
- );
- const { address: tokenOwnerAccountA, ...tokenOwnerAccountAIx } = ataA;
- const { address: tokenOwnerAccountB, ...tokenOwnerAccountBIx } = ataB;
-
- txBuilder.addInstruction(tokenOwnerAccountAIx);
- txBuilder.addInstruction(tokenOwnerAccountBIx);
-
- const tickArrayLowerStartIndex = TickUtil.getStartTickIndex(
- tickLowerInitializableIndex,
- tickSpacing,
- );
- const tickArrayUpperStartIndex = TickUtil.getStartTickIndex(
- tickUpperInitializableIndex,
- tickSpacing,
- );
- const tickArrayLowerPda = PDAUtil.getTickArray(
- ctx.program.programId,
- whirlpoolPda.publicKey,
- tickArrayLowerStartIndex,
- );
- const tickArrayUpperPda = PDAUtil.getTickArray(
- ctx.program.programId,
- whirlpoolPda.publicKey,
- tickArrayUpperStartIndex,
- );
- if (tickArrayUpperStartIndex !== tickArrayLowerStartIndex) {
- if (isCorrectMintOrder) {
- txBuilder.addInstruction(
- initTickArrayIx(ctx.program, {
- startTick: tickArrayUpperStartIndex,
- tickArrayPda: tickArrayUpperPda,
- whirlpool: whirlpoolPda.publicKey,
- funder: wallet.publicKey,
- }),
- );
- } else {
- txBuilder.addInstruction(
- initTickArrayIx(ctx.program, {
- startTick: tickArrayLowerStartIndex,
- tickArrayPda: tickArrayLowerPda,
- whirlpool: whirlpoolPda.publicKey,
- funder: wallet.publicKey,
- }),
- );
- }
- }
-
- const baseParamsLiquidity = {
- liquidityAmount: liquidity,
- tokenMaxA,
- tokenMaxB,
- whirlpool: whirlpoolPda.publicKey,
- positionAuthority: wallet.publicKey,
- position: positionPda.publicKey,
- positionTokenAccount: positionTokenAccountAddress,
- tokenOwnerAccountA,
- tokenOwnerAccountB,
- tokenVaultA: tokenVaultAKeypair.publicKey,
- tokenVaultB: tokenVaultBKeypair.publicKey,
- tickArrayLower: tickArrayLowerPda.publicKey,
- tickArrayUpper: tickArrayUpperPda.publicKey,
- };
-
- const liquidityIx = !TokenExtensionUtil.isV2IxRequiredPool(tokenExtensionCtx)
- ? increaseLiquidityIx(ctx.program, baseParamsLiquidity)
- : increaseLiquidityV2Ix(ctx.program, {
- ...baseParamsLiquidity,
- tokenMintA: mintA,
- tokenMintB: mintB,
- tokenProgramA: tokenExtensionCtx.tokenMintWithProgramA.tokenProgram,
- tokenProgramB: tokenExtensionCtx.tokenMintWithProgramB.tokenProgram,
- });
- txBuilder.addInstruction(liquidityIx);
-
- const txPayload = await txBuilder.build({
- maxSupportedTransactionVersion: "legacy",
- });
-
- if (txPayload.transaction instanceof Transaction) {
- try {
- const txId = await sendTx(agent, txPayload.transaction, [
- positionMintKeypair,
- tokenVaultAKeypair,
- tokenVaultBKeypair,
- ]);
- return txId;
- } catch (error) {
- throw new Error(`Failed to create pool: ${JSON.stringify(error)}`);
- }
- } else {
- throw new Error("Failed to create pool: Transaction not created");
- }
-}
diff --git a/src/tools/deploy_token.ts b/src/tools/deploy_token.ts
index 7532eef..798e020 100644
--- a/src/tools/deploy_token.ts
+++ b/src/tools/deploy_token.ts
@@ -59,7 +59,7 @@ export async function deploy_token(
mint: mint.publicKey,
tokenStandard: TokenStandard.Fungible,
tokenOwner: fromWeb3JsPublicKey(agent.wallet_address),
- amount: initialSupply,
+ amount: initialSupply * Math.pow(10, decimals),
}),
);
}
diff --git a/src/tools/get_all_domains_tlds.ts b/src/tools/get_all_domains_tlds.ts
index 12bd9f0..4d2fcbd 100644
--- a/src/tools/get_all_domains_tlds.ts
+++ b/src/tools/get_all_domains_tlds.ts
@@ -8,11 +8,10 @@ import { getAllTld } from "@onsol/tldparser";
*/
export async function getAllDomainsTLDs(
agent: SolanaAgentKit,
- // eslint-disable-next-line @typescript-eslint/ban-types
-): Promise {
+): Promise {
try {
const tlds = await getAllTld(agent.connection);
- return tlds.map((tld) => tld.tld);
+ return tlds.map((tld) => String(tld.tld));
} catch (error: any) {
throw new Error(`Failed to fetch TLDs: ${error.message}`);
}
diff --git a/src/tools/get_main_all_domains_domain.ts b/src/tools/get_main_all_domains_domain.ts
index d9ac724..b8114bd 100644
--- a/src/tools/get_main_all_domains_domain.ts
+++ b/src/tools/get_main_all_domains_domain.ts
@@ -16,6 +16,7 @@ export async function getMainAllDomainsDomain(
mainDomain = await _getFavoriteDomain(agent.connection, owner);
return mainDomain.stale ? null : mainDomain.reverse;
} catch (error: any) {
+ console.error(error);
return null;
}
}
diff --git a/src/tools/get_primary_domain.ts b/src/tools/get_primary_domain.ts
index 1a2bd8c..8e53f1d 100644
--- a/src/tools/get_primary_domain.ts
+++ b/src/tools/get_primary_domain.ts
@@ -29,7 +29,8 @@ export async function getPrimaryDomain(
);
}
return reverse;
- } catch (error) {
+ } catch (error: any) {
+ console.error(error);
throw new Error(
`Failed to get primary domain for account: ${account.toBase58()}`,
);
diff --git a/src/tools/get_wallet_address.ts b/src/tools/get_wallet_address.ts
new file mode 100644
index 0000000..bf3c763
--- /dev/null
+++ b/src/tools/get_wallet_address.ts
@@ -0,0 +1,10 @@
+import { SolanaAgentKit } from "../agent";
+
+/**
+ * Get the agents wallet address
+ * @param agent - SolanaAgentKit instance
+ * @returns string
+ */
+export function get_wallet_address(agent: SolanaAgentKit) {
+ return agent.wallet_address.toBase58();
+}
diff --git a/src/tools/index.ts b/src/tools/index.ts
index 584af08..2544fed 100644
--- a/src/tools/index.ts
+++ b/src/tools/index.ts
@@ -1,43 +1,49 @@
-export * from "./request_faucet_funds";
-export * from "./deploy_token";
+export * from "./adrena_perp_trading";
+export * from "./batch_order";
+export * from "./cancel_all_orders";
+export * from "./create_gibwork_task";
+export * from "./create_image";
+export * from "./create_tiplinks";
export * from "./deploy_collection";
+export * from "./deploy_token";
+export * from "./fetch_price";
+export * from "./get_all_domains_tlds";
+export * from "./get_all_registered_all_domains";
export * from "./get_balance";
export * from "./get_balance_other";
-export * from "./mint_nft";
-export * from "./transfer";
-export * from "./trade";
-export * from "./register_domain";
-export * from "./resolve_sol_domain";
+export * from "./get_main_all_domains_domain";
+export * from "./get_owned_all_domains";
+export * from "./get_owned_domains_for_tld";
export * from "./get_primary_domain";
+export * from "./get_token_data";
+export * from "./get_tps";
+export * from "./get_wallet_address";
export * from "./launch_pumpfun_token";
export * from "./lend";
-export * from "./get_tps";
-export * from "./get_token_data";
-export * from "./stake_with_jup";
-export * from "./fetch_price";
-export * from "./send_compressed_airdrop";
-export * from "./create_orca_single_sided_whirlpool";
-export * from "./get_all_domains_tlds";
-export * from "./get_all_registered_all_domains";
-export * from "./get_owned_domains_for_tld";
-export * from "./get_main_all_domains_domain";
-export * from "./get_owned_all_domains";
-export * from "./resolve_domain";
-
-export * from "./get_all_domains_tlds";
-export * from "./get_all_registered_all_domains";
-export * from "./get_owned_domains_for_tld";
-export * from "./get_main_all_domains_domain";
-export * from "./get_owned_all_domains";
-export * from "./resolve_domain";
-
+export * from "./limit_order";
+export * from "./manifest_create_market";
+export * from "./mint_nft";
+export * from "./openbook_create_market";
+export * from "./orca_close_position";
+export * from "./orca_create_clmm";
+export * from "./orca_create_single_sided_liquidity_pool";
+export * from "./orca_fetch_positions";
+export * from "./orca_open_centered_position_with_liquidity";
+export * from "./orca_open_single_sided_position";
+export * from "./pyth_fetch_price";
export * from "./raydium_create_ammV4";
export * from "./raydium_create_clmm";
export * from "./raydium_create_cpmm";
-export * from "./openbook_create_market";
-export * from "./pyth_fetch_price";
-
-export * from "./create_gibwork_task";
-
+export * from "./register_domain";
+export * from "./request_faucet_funds";
+export * from "./resolve_domain";
+export * from "./resolve_sol_domain";
export * from "./rock_paper_scissor";
-export * from "./create_tiplinks";
+export * from "./rugcheck";
+export * from "./send_compressed_airdrop";
+export * from "./stake_with_jup";
+export * from "./stake_with_solayer";
+export * from "./tensor_trade";
+export * from "./trade";
+export * from "./transfer";
+export * from "./withdraw_all";
diff --git a/src/tools/limit_order.ts b/src/tools/limit_order.ts
new file mode 100644
index 0000000..bdbb63d
--- /dev/null
+++ b/src/tools/limit_order.ts
@@ -0,0 +1,61 @@
+import {
+ PublicKey,
+ Transaction,
+ sendAndConfirmTransaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { SolanaAgentKit } from "../index";
+import {
+ ManifestClient,
+ WrapperPlaceOrderParamsExternal,
+ OrderType,
+} from "@cks-systems/manifest-sdk";
+
+/**
+ * Place limit orders using Manifest
+ * @param agent SolanaAgentKit instance
+ * @param marketId Public key for the manifest market
+ * @param quantity Amount to trade in tokens
+ * @param side Buy or Sell
+ * @param price Price in tokens ie. SOL/USDC
+ * @returns Transaction signature
+ */
+export async function limitOrder(
+ agent: SolanaAgentKit,
+ marketId: PublicKey,
+ quantity: number,
+ side: string,
+ price: number,
+): Promise {
+ try {
+ const mfxClient = await ManifestClient.getClientForMarket(
+ agent.connection,
+ marketId,
+ agent.wallet,
+ );
+
+ const orderParams: WrapperPlaceOrderParamsExternal = {
+ numBaseTokens: quantity,
+ tokenPrice: price,
+ isBid: side === "Buy",
+ lastValidSlot: 0,
+ orderType: OrderType.Limit,
+ clientOrderId: Number(Math.random() * 1000),
+ };
+
+ const depositPlaceOrderIx: TransactionInstruction[] =
+ await mfxClient.placeOrderWithRequiredDepositIx(
+ agent.wallet.publicKey,
+ orderParams,
+ );
+ const signature = await sendAndConfirmTransaction(
+ agent.connection,
+ new Transaction().add(...depositPlaceOrderIx),
+ [agent.wallet],
+ );
+
+ return signature;
+ } catch (error: any) {
+ throw new Error(`Limit Order failed: ${error.message}`);
+ }
+}
diff --git a/src/tools/manifest_create_market.ts b/src/tools/manifest_create_market.ts
new file mode 100644
index 0000000..e0960f4
--- /dev/null
+++ b/src/tools/manifest_create_market.ts
@@ -0,0 +1,43 @@
+import { ManifestClient } from "@cks-systems/manifest-sdk";
+import {
+ Keypair,
+ PublicKey,
+ sendAndConfirmTransaction,
+ SystemProgram,
+ Transaction,
+ TransactionInstruction,
+} from "@solana/web3.js";
+import { SolanaAgentKit } from "../index";
+
+export async function manifestCreateMarket(
+ agent: SolanaAgentKit,
+ baseMint: PublicKey,
+ quoteMint: PublicKey,
+): Promise {
+ const marketKeypair: Keypair = Keypair.generate();
+ const FIXED_MANIFEST_HEADER_SIZE: number = 256;
+ const createAccountIx: TransactionInstruction = SystemProgram.createAccount({
+ fromPubkey: agent.wallet.publicKey,
+ newAccountPubkey: marketKeypair.publicKey,
+ space: FIXED_MANIFEST_HEADER_SIZE,
+ lamports: await agent.connection.getMinimumBalanceForRentExemption(
+ FIXED_MANIFEST_HEADER_SIZE,
+ ),
+ programId: new PublicKey("MNFSTqtC93rEfYHB6hF82sKdZpUDFWkViLByLd1k1Ms"),
+ });
+ const createMarketIx = ManifestClient["createMarketIx"](
+ agent.wallet.publicKey,
+ baseMint,
+ quoteMint,
+ marketKeypair.publicKey,
+ );
+
+ const tx: Transaction = new Transaction();
+ tx.add(createAccountIx);
+ tx.add(createMarketIx);
+ const signature = await sendAndConfirmTransaction(agent.connection, tx, [
+ agent.wallet,
+ marketKeypair,
+ ]);
+ return [signature, marketKeypair.publicKey.toBase58()];
+}
diff --git a/src/tools/orca_close_position.ts b/src/tools/orca_close_position.ts
new file mode 100644
index 0000000..4475692
--- /dev/null
+++ b/src/tools/orca_close_position.ts
@@ -0,0 +1,82 @@
+import {
+ Keypair,
+ PublicKey,
+ TransactionMessage,
+ VersionedTransaction,
+} from "@solana/web3.js";
+import { SolanaAgentKit } from "../agent";
+import { Wallet } from "@coral-xyz/anchor";
+import {
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ WhirlpoolContext,
+ buildWhirlpoolClient,
+ PDAUtil,
+} from "@orca-so/whirlpools-sdk";
+import { sendTx } from "../utils/send_tx";
+import { Percentage } from "@orca-so/common-sdk";
+
+/**
+ * # Closes a Liquidity Position in an Orca Whirlpool
+ *
+ * This function closes an existing liquidity position in a specified Orca Whirlpool. The user provides
+ * the position's mint address.
+ *
+ * ## Parameters
+ * - `agent`: The `SolanaAgentKit` instance representing the wallet and connection details.
+ * - `positionMintAddress`: The mint address of the liquidity position to close.
+ *
+ * ## Returns
+ * A `Promise` that resolves to a `string` containing the transaction ID of the transaction
+ *
+ * ## Notes
+ * - The function uses Orca’s SDK to interact with the specified Whirlpool and close the liquidity position.
+ * - A maximum slippage of 1% is assumed for liquidity provision during the position closing.
+ * - The function automatically fetches the associated Whirlpool address and position details using the provided mint address.
+ *
+ * ## Throws
+ * An error will be thrown if:
+ * - The specified position mint address is invalid or inaccessible.
+ * - The transaction fails to send.
+ * - Any required position or Whirlpool data cannot be fetched.
+ *
+ * @param agent - The `SolanaAgentKit` instance representing the wallet and connection.
+ * @param positionMintAddress - The mint address of the liquidity position to close.
+ * @returns A promise resolving to the transaction ID (`string`).
+ */
+export async function orcaClosePosition(
+ agent: SolanaAgentKit,
+ positionMintAddress: PublicKey,
+): Promise {
+ try {
+ const wallet = new Wallet(agent.wallet);
+ const ctx = WhirlpoolContext.from(
+ agent.connection,
+ wallet,
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ );
+ const client = buildWhirlpoolClient(ctx);
+
+ const positionAddress = PDAUtil.getPosition(
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ positionMintAddress,
+ );
+ const position = await client.getPosition(positionAddress.publicKey);
+ const whirlpoolAddress = position.getData().whirlpool;
+ const whirlpool = await client.getPool(whirlpoolAddress);
+ const txBuilder = await whirlpool.closePosition(
+ positionAddress.publicKey,
+ Percentage.fromFraction(1, 100),
+ );
+ const txPayload = await txBuilder[0].build();
+ const txPayloadDecompiled = TransactionMessage.decompile(
+ (txPayload.transaction as VersionedTransaction).message,
+ );
+ const instructions = txPayloadDecompiled.instructions;
+ const signers = txPayload.signers as Keypair[];
+
+ const txId = await sendTx(agent, instructions, signers);
+ return txId;
+ } catch (error) {
+ throw new Error(`${error}`);
+ }
+}
diff --git a/src/tools/orca_create_clmm.ts b/src/tools/orca_create_clmm.ts
new file mode 100644
index 0000000..9fcdc33
--- /dev/null
+++ b/src/tools/orca_create_clmm.ts
@@ -0,0 +1,132 @@
+import {
+ Keypair,
+ PublicKey,
+ TransactionMessage,
+ VersionedTransaction,
+} from "@solana/web3.js";
+import { SolanaAgentKit } from "../agent";
+import { Wallet } from "@coral-xyz/anchor";
+import { Decimal } from "decimal.js";
+import {
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ WhirlpoolContext,
+ PriceMath,
+ PoolUtil,
+ buildWhirlpoolClient,
+} from "@orca-so/whirlpools-sdk";
+import { sendTx } from "../utils/send_tx";
+import { FEE_TIERS } from "./orca_create_single_sided_liquidity_pool";
+
+/**
+ * # Creates a CLMM Pool (Concentrated Liquidity Market Maker Pool).
+ *
+ * This function initializes a new Whirlpool (CLMM Pool) on Orca. It only sets up the pool and does not seed it with liquidity.
+ *
+ * ## Example Usage:
+ * Suppose you want to create a CLMM pool with two tokens, SHARK and USDC, and set the initial price of SHARK to 0.001 USDC.
+ * You would call this function with `mintA` as SHARK's mint address and `mintB` as USDC's mint address. The pool is created
+ * with the specified fee tier and tick spacing associated with that fee tier.
+ *
+ * ### Note for Experts:
+ * The Whirlpool program determines the token mint order, which might not match your expectation. This function
+ * adjusts the input order as needed and inverts the initial price accordingly.
+ *
+ * @param agent - The `SolanaAgentKit` instance representing the wallet and connection details.
+ * @param mintDeploy - The mint of the token you want to deploy (e.g., SHARK).
+ * @param mintPair - The mint of the token you want to pair the deployed mint with (e.g., USDC).
+ * @param initialPrice - The initial price of `mintDeploy` in terms of `mintPair`.
+ * @param feeTier - The fee tier bps for the pool, determining tick spacing and fee collection rates.
+ *
+ * @returns A promise that resolves to a transaction ID (`string`) of the transaction creating the pool.
+ *
+ * @throws Will throw an error if:
+ * - Mint accounts for the tokens cannot be fetched.
+ * - The network is unsupported.
+ *
+ * @remarks
+ * This function only initializes the CLMM pool and does not add liquidity. For adding liquidity, you can use
+ * a separate function after the pool is successfully created.
+ * ```
+ */
+export async function orcaCreateCLMM(
+ agent: SolanaAgentKit,
+ mintDeploy: PublicKey,
+ mintPair: PublicKey,
+ initialPrice: Decimal,
+ feeTier: keyof typeof FEE_TIERS,
+): Promise {
+ try {
+ let whirlpoolsConfigAddress: PublicKey;
+ if (agent.connection.rpcEndpoint.includes("mainnet")) {
+ whirlpoolsConfigAddress = new PublicKey(
+ "2LecshUwdy9xi7meFgHtFJQNSKk4KdTrcpvaB56dP2NQ",
+ );
+ } else if (agent.connection.rpcEndpoint.includes("devnet")) {
+ whirlpoolsConfigAddress = new PublicKey(
+ "FcrweFY1G9HJAHG5inkGB6pKg1HZ6x9UC2WioAfWrGkR",
+ );
+ } else {
+ throw new Error("Unsupported network");
+ }
+ const wallet = new Wallet(agent.wallet);
+ const ctx = WhirlpoolContext.from(
+ agent.connection,
+ wallet,
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ );
+ const fetcher = ctx.fetcher;
+ const client = buildWhirlpoolClient(ctx);
+
+ const correctTokenOrder = PoolUtil.orderMints(mintDeploy, mintPair).map(
+ (addr) => addr.toString(),
+ );
+ const isCorrectMintOrder = correctTokenOrder[0] === mintDeploy.toString();
+ let mintA;
+ let mintB;
+ if (!isCorrectMintOrder) {
+ [mintA, mintB] = [mintPair, mintDeploy];
+ initialPrice = new Decimal(1 / initialPrice.toNumber());
+ } else {
+ [mintA, mintB] = [mintDeploy, mintPair];
+ }
+ const mintAAccount = await fetcher.getMintInfo(mintA);
+ const mintBAccount = await fetcher.getMintInfo(mintB);
+ if (mintAAccount === null || mintBAccount === null) {
+ throw Error("Mint account not found");
+ }
+
+ const tickSpacing = FEE_TIERS[feeTier];
+ const initialTick = PriceMath.priceToInitializableTickIndex(
+ initialPrice,
+ mintAAccount.decimals,
+ mintBAccount.decimals,
+ tickSpacing,
+ );
+ const { poolKey, tx: txBuilder } = await client.createPool(
+ whirlpoolsConfigAddress,
+ mintA,
+ mintB,
+ tickSpacing,
+ initialTick,
+ wallet.publicKey,
+ );
+
+ const txPayload = await txBuilder.build();
+ const txPayloadDecompiled = TransactionMessage.decompile(
+ (txPayload.transaction as VersionedTransaction).message,
+ );
+ const instructions = txPayloadDecompiled.instructions;
+
+ const txId = await sendTx(
+ agent,
+ instructions,
+ txPayload.signers as Keypair[],
+ );
+ return JSON.stringify({
+ transactionId: txId,
+ whirlpoolAddress: poolKey.toString(),
+ });
+ } catch (error) {
+ throw new Error(`${error}`);
+ }
+}
diff --git a/src/tools/orca_create_single_sided_liquidity_pool.ts b/src/tools/orca_create_single_sided_liquidity_pool.ts
new file mode 100644
index 0000000..26792b8
--- /dev/null
+++ b/src/tools/orca_create_single_sided_liquidity_pool.ts
@@ -0,0 +1,422 @@
+import {
+ Keypair,
+ PublicKey,
+ TransactionMessage,
+ VersionedTransaction,
+} from "@solana/web3.js";
+import { SolanaAgentKit } from "../agent";
+import { BN, Wallet } from "@coral-xyz/anchor";
+import { Decimal } from "decimal.js";
+import {
+ PDAUtil,
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ WhirlpoolContext,
+ TickUtil,
+ PriceMath,
+ PoolUtil,
+ TokenExtensionContextForPool,
+ NO_TOKEN_EXTENSION_CONTEXT,
+ TokenExtensionUtil,
+ WhirlpoolIx,
+ IncreaseLiquidityQuoteParam,
+ increaseLiquidityQuoteByInputTokenWithParams,
+} from "@orca-so/whirlpools-sdk";
+import {
+ Percentage,
+ resolveOrCreateATAs,
+ TransactionBuilder,
+} from "@orca-so/common-sdk";
+import {
+ increaseLiquidityIx,
+ increaseLiquidityV2Ix,
+ initTickArrayIx,
+ openPositionWithTokenExtensionsIx,
+} from "@orca-so/whirlpools-sdk/dist/instructions";
+import {
+ getAssociatedTokenAddressSync,
+ TOKEN_2022_PROGRAM_ID,
+} from "@solana/spl-token";
+import { sendTx } from "../utils/send_tx";
+
+/**
+ * Maps fee tier bps to their corresponding tick spacing values in the Orca Whirlpool protocol.
+ *
+ * @remarks
+ * Fee tiers determine the percentage of fees collected on swaps, while tick spacing affects
+ * the granularity of price ranges for liquidity positions.
+ *
+ * For more details, refer to:
+ * - [Whirlpool Fees](https://orca-so.github.io/whirlpools/Architecture%20Overview/Whirlpool%20Fees)
+ * - [Whirlpool Parameters](https://orca-so.github.io/whirlpools/Architecture%20Overview/Whirlpool%20Parameters)
+ *
+ * @example
+ * const tickSpacing = FEE_TIERS[1]; // returns 1
+ */
+export const FEE_TIERS = {
+ 1: 1,
+ 2: 2,
+ 4: 4,
+ 5: 8,
+ 16: 16,
+ 30: 64,
+ 65: 96,
+ 100: 128,
+ 200: 256,
+} as const;
+
+/**
+ * # Creates a single-sided liquidity pool.
+ *
+ * This function initializes a new Whirlpool (liquidity pool) on Orca and seeds it with liquidity from a single token.
+ *
+ * ## Example Usage:
+ * You created a new token called SHARK, and you want to set the initial price to 0.001 USDC.
+ * You set `depositTokenMint` to SHARK's mint address and `otherTokenMint` to USDC's mint address.
+ * You can minimize price impact for buyers in a few ways:
+ * 1. Increase the amount of tokens you deposit
+ * 2. Set the initial price very low
+ * 3. Set the maximum price closer to the initial price
+ *
+ * ### Note for experts:
+ * The Wrhirlpool program initializes the Whirlpool with the in a specific order. This might not be
+ * the order you expect, so the function checks the order and adjusts the inverts the prices. This means that
+ * on-chain the Whirlpool might be configured as USDC/SHARK instead of SHARK/USDC, and the on-chain price will
+ * be 1/`initialPrice`. This will not affect the price of the token as you intended it to be.
+ *
+ * @param agent - The `SolanaAgentKit` instance representing the wallet and connection details.
+ * @param depositTokenAmount - The amount of the deposit token to deposit in the pool.
+ * @param depositTokenMint - The mint address of the token being deposited into the pool, eg. SHARK.
+ * @param otherTokenMint - The mint address of the other token in the pool, eg. USDC.
+ * @param initialPrice - The initial price of the deposit token in terms of the other token.
+ * @param maxPrice - The maximum price at which liquidity is added.
+ * @param feeTier - The fee tier bps for the pool, determining tick spacing and fee collection rates.
+ *
+ * @returns A promise that resolves to a transaction ID (`string`) of the transaction creating the pool.
+ *
+ * @throws Will throw an error if:
+ * - Mint accounts for the tokens cannot be fetched.
+ * - Prices are out of bounds.
+ *
+ * @remarks
+ * This function is designed for single-sided deposits where users only contribute one type of token,
+ * and the function manages mint order and necessary calculations.
+ */
+export async function orcaCreateSingleSidedLiquidityPool(
+ agent: SolanaAgentKit,
+ depositTokenAmount: number,
+ depositTokenMint: PublicKey,
+ otherTokenMint: PublicKey,
+ initialPrice: Decimal,
+ maxPrice: Decimal,
+ feeTierBps: keyof typeof FEE_TIERS,
+): Promise {
+ try {
+ let whirlpoolsConfigAddress: PublicKey;
+ if (agent.connection.rpcEndpoint.includes("mainnet")) {
+ whirlpoolsConfigAddress = new PublicKey(
+ "2LecshUwdy9xi7meFgHtFJQNSKk4KdTrcpvaB56dP2NQ",
+ );
+ } else if (agent.connection.rpcEndpoint.includes("devnet")) {
+ whirlpoolsConfigAddress = new PublicKey(
+ "FcrweFY1G9HJAHG5inkGB6pKg1HZ6x9UC2WioAfWrGkR",
+ );
+ } else {
+ throw new Error("Unsupported network");
+ }
+ const wallet = new Wallet(agent.wallet);
+ const ctx = WhirlpoolContext.from(
+ agent.connection,
+ wallet,
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ );
+ const fetcher = ctx.fetcher;
+
+ const correctTokenOrder = PoolUtil.orderMints(
+ otherTokenMint,
+ depositTokenMint,
+ ).map((addr) => addr.toString());
+ const isCorrectMintOrder =
+ correctTokenOrder[0] === depositTokenMint.toString();
+ let mintA, mintB;
+ if (isCorrectMintOrder) {
+ [mintA, mintB] = [depositTokenMint, otherTokenMint];
+ } else {
+ [mintA, mintB] = [otherTokenMint, depositTokenMint];
+ initialPrice = new Decimal(1 / initialPrice.toNumber());
+ maxPrice = new Decimal(1 / maxPrice.toNumber());
+ }
+ const mintAAccount = await fetcher.getMintInfo(mintA);
+ const mintBAccount = await fetcher.getMintInfo(mintB);
+ if (mintAAccount === null || mintBAccount === null) {
+ throw Error("Mint account not found");
+ }
+ const tickSpacing = FEE_TIERS[feeTierBps];
+ const tickIndex = PriceMath.priceToTickIndex(
+ initialPrice,
+ mintAAccount.decimals,
+ mintBAccount.decimals,
+ );
+ const initialTick = TickUtil.getInitializableTickIndex(
+ tickIndex,
+ tickSpacing,
+ );
+
+ const tokenExtensionCtx: TokenExtensionContextForPool = {
+ ...NO_TOKEN_EXTENSION_CONTEXT,
+ tokenMintWithProgramA: mintAAccount,
+ tokenMintWithProgramB: mintBAccount,
+ };
+ const feeTierKey = PDAUtil.getFeeTier(
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ whirlpoolsConfigAddress,
+ tickSpacing,
+ ).publicKey;
+ const initSqrtPrice = PriceMath.tickIndexToSqrtPriceX64(initialTick);
+ const tokenVaultAKeypair = Keypair.generate();
+ const tokenVaultBKeypair = Keypair.generate();
+ const whirlpoolPda = PDAUtil.getWhirlpool(
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ whirlpoolsConfigAddress,
+ mintA,
+ mintB,
+ FEE_TIERS[feeTierBps],
+ );
+ const tokenBadgeA = PDAUtil.getTokenBadge(
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ whirlpoolsConfigAddress,
+ mintA,
+ ).publicKey;
+ const tokenBadgeB = PDAUtil.getTokenBadge(
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ whirlpoolsConfigAddress,
+ mintB,
+ ).publicKey;
+ const baseParamsPool = {
+ initSqrtPrice,
+ whirlpoolsConfig: whirlpoolsConfigAddress,
+ whirlpoolPda,
+ tokenMintA: mintA,
+ tokenMintB: mintB,
+ tokenVaultAKeypair,
+ tokenVaultBKeypair,
+ feeTierKey,
+ tickSpacing: tickSpacing,
+ funder: wallet.publicKey,
+ };
+ const initPoolIx = !TokenExtensionUtil.isV2IxRequiredPool(tokenExtensionCtx)
+ ? WhirlpoolIx.initializePoolIx(ctx.program, baseParamsPool)
+ : WhirlpoolIx.initializePoolV2Ix(ctx.program, {
+ ...baseParamsPool,
+ tokenProgramA: tokenExtensionCtx.tokenMintWithProgramA.tokenProgram,
+ tokenProgramB: tokenExtensionCtx.tokenMintWithProgramB.tokenProgram,
+ tokenBadgeA,
+ tokenBadgeB,
+ });
+ const initialTickArrayStartTick = TickUtil.getStartTickIndex(
+ initialTick,
+ tickSpacing,
+ );
+ const initialTickArrayPda = PDAUtil.getTickArray(
+ ctx.program.programId,
+ whirlpoolPda.publicKey,
+ initialTickArrayStartTick,
+ );
+
+ const txBuilder = new TransactionBuilder(
+ ctx.provider.connection,
+ ctx.provider.wallet,
+ ctx.txBuilderOpts,
+ );
+ txBuilder.addInstruction(initPoolIx);
+ txBuilder.addInstruction(
+ initTickArrayIx(ctx.program, {
+ startTick: initialTickArrayStartTick,
+ tickArrayPda: initialTickArrayPda,
+ whirlpool: whirlpoolPda.publicKey,
+ funder: wallet.publicKey,
+ }),
+ );
+
+ let tickLowerIndex, tickUpperIndex;
+ if (isCorrectMintOrder) {
+ tickLowerIndex = initialTick;
+ tickUpperIndex = PriceMath.priceToTickIndex(
+ maxPrice,
+ mintAAccount.decimals,
+ mintBAccount.decimals,
+ );
+ } else {
+ tickLowerIndex = PriceMath.priceToTickIndex(
+ maxPrice,
+ mintAAccount.decimals,
+ mintBAccount.decimals,
+ );
+ tickUpperIndex = initialTick;
+ }
+ const tickLowerInitializableIndex = TickUtil.getInitializableTickIndex(
+ tickLowerIndex,
+ tickSpacing,
+ );
+ const tickUpperInitializableIndex = TickUtil.getInitializableTickIndex(
+ tickUpperIndex,
+ tickSpacing,
+ );
+ if (
+ !TickUtil.checkTickInBounds(tickLowerInitializableIndex) ||
+ !TickUtil.checkTickInBounds(tickUpperInitializableIndex)
+ ) {
+ throw Error("Prices out of bounds");
+ }
+ depositTokenAmount = isCorrectMintOrder
+ ? depositTokenAmount * Math.pow(10, mintAAccount.decimals)
+ : depositTokenAmount * Math.pow(10, mintBAccount.decimals);
+ const increasLiquidityQuoteParam: IncreaseLiquidityQuoteParam = {
+ inputTokenAmount: new BN(depositTokenAmount),
+ inputTokenMint: depositTokenMint,
+ tokenMintA: mintA,
+ tokenMintB: mintB,
+ tickCurrentIndex: initialTick,
+ sqrtPrice: initSqrtPrice,
+ tickLowerIndex: tickLowerInitializableIndex,
+ tickUpperIndex: tickUpperInitializableIndex,
+ tokenExtensionCtx: tokenExtensionCtx,
+ slippageTolerance: Percentage.fromFraction(0, 100),
+ };
+ const liquidityInput = increaseLiquidityQuoteByInputTokenWithParams(
+ increasLiquidityQuoteParam,
+ );
+ const { liquidityAmount: liquidity, tokenMaxA, tokenMaxB } = liquidityInput;
+
+ const positionMintKeypair = Keypair.generate();
+ const positionMintPubkey = positionMintKeypair.publicKey;
+ const positionPda = PDAUtil.getPosition(
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ positionMintPubkey,
+ );
+ const positionTokenAccountAddress = getAssociatedTokenAddressSync(
+ positionMintPubkey,
+ wallet.publicKey,
+ ctx.accountResolverOpts.allowPDAOwnerAddress,
+ TOKEN_2022_PROGRAM_ID,
+ );
+ const params = {
+ funder: wallet.publicKey,
+ owner: wallet.publicKey,
+ positionPda,
+ positionTokenAccount: positionTokenAccountAddress,
+ whirlpool: whirlpoolPda.publicKey,
+ tickLowerIndex: tickLowerInitializableIndex,
+ tickUpperIndex: tickUpperInitializableIndex,
+ };
+ const positionIx = openPositionWithTokenExtensionsIx(ctx.program, {
+ ...params,
+ positionMint: positionMintPubkey,
+ withTokenMetadataExtension: true,
+ });
+
+ txBuilder.addInstruction(positionIx);
+ txBuilder.addSigner(positionMintKeypair);
+
+ const [ataA, ataB] = await resolveOrCreateATAs(
+ ctx.connection,
+ wallet.publicKey,
+ [
+ { tokenMint: mintA, wrappedSolAmountIn: tokenMaxA },
+ { tokenMint: mintB, wrappedSolAmountIn: tokenMaxB },
+ ],
+ () => ctx.fetcher.getAccountRentExempt(),
+ wallet.publicKey,
+ undefined,
+ ctx.accountResolverOpts.allowPDAOwnerAddress,
+ "ata",
+ );
+ const { address: tokenOwnerAccountA, ...tokenOwnerAccountAIx } = ataA;
+ const { address: tokenOwnerAccountB, ...tokenOwnerAccountBIx } = ataB;
+
+ txBuilder.addInstruction(tokenOwnerAccountAIx);
+ txBuilder.addInstruction(tokenOwnerAccountBIx);
+
+ const tickArrayLowerStartIndex = TickUtil.getStartTickIndex(
+ tickLowerInitializableIndex,
+ tickSpacing,
+ );
+ const tickArrayUpperStartIndex = TickUtil.getStartTickIndex(
+ tickUpperInitializableIndex,
+ tickSpacing,
+ );
+ const tickArrayLowerPda = PDAUtil.getTickArray(
+ ctx.program.programId,
+ whirlpoolPda.publicKey,
+ tickArrayLowerStartIndex,
+ );
+ const tickArrayUpperPda = PDAUtil.getTickArray(
+ ctx.program.programId,
+ whirlpoolPda.publicKey,
+ tickArrayUpperStartIndex,
+ );
+ if (tickArrayUpperStartIndex !== tickArrayLowerStartIndex) {
+ if (isCorrectMintOrder) {
+ txBuilder.addInstruction(
+ initTickArrayIx(ctx.program, {
+ startTick: tickArrayUpperStartIndex,
+ tickArrayPda: tickArrayUpperPda,
+ whirlpool: whirlpoolPda.publicKey,
+ funder: wallet.publicKey,
+ }),
+ );
+ } else {
+ txBuilder.addInstruction(
+ initTickArrayIx(ctx.program, {
+ startTick: tickArrayLowerStartIndex,
+ tickArrayPda: tickArrayLowerPda,
+ whirlpool: whirlpoolPda.publicKey,
+ funder: wallet.publicKey,
+ }),
+ );
+ }
+ }
+
+ const baseParamsLiquidity = {
+ liquidityAmount: liquidity,
+ tokenMaxA,
+ tokenMaxB,
+ whirlpool: whirlpoolPda.publicKey,
+ positionAuthority: wallet.publicKey,
+ position: positionPda.publicKey,
+ positionTokenAccount: positionTokenAccountAddress,
+ tokenOwnerAccountA,
+ tokenOwnerAccountB,
+ tokenVaultA: tokenVaultAKeypair.publicKey,
+ tokenVaultB: tokenVaultBKeypair.publicKey,
+ tickArrayLower: tickArrayLowerPda.publicKey,
+ tickArrayUpper: tickArrayUpperPda.publicKey,
+ };
+
+ const liquidityIx = !TokenExtensionUtil.isV2IxRequiredPool(
+ tokenExtensionCtx,
+ )
+ ? increaseLiquidityIx(ctx.program, baseParamsLiquidity)
+ : increaseLiquidityV2Ix(ctx.program, {
+ ...baseParamsLiquidity,
+ tokenMintA: mintA,
+ tokenMintB: mintB,
+ tokenProgramA: tokenExtensionCtx.tokenMintWithProgramA.tokenProgram,
+ tokenProgramB: tokenExtensionCtx.tokenMintWithProgramB.tokenProgram,
+ });
+ txBuilder.addInstruction(liquidityIx);
+
+ const txPayload = await txBuilder.build();
+ const instructions = TransactionMessage.decompile(
+ (txPayload.transaction as VersionedTransaction).message,
+ ).instructions;
+
+ const txId = await sendTx(agent, instructions, [
+ positionMintKeypair,
+ tokenVaultAKeypair,
+ tokenVaultBKeypair,
+ ]);
+ return txId;
+ } catch (error) {
+ throw new Error(`Failed to send transaction: ${JSON.stringify(error)}`);
+ }
+}
diff --git a/src/tools/orca_fetch_positions.ts b/src/tools/orca_fetch_positions.ts
new file mode 100644
index 0000000..f90b8a0
--- /dev/null
+++ b/src/tools/orca_fetch_positions.ts
@@ -0,0 +1,121 @@
+import { SolanaAgentKit } from "../agent";
+import { Wallet } from "@coral-xyz/anchor";
+import {
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ WhirlpoolContext,
+ buildWhirlpoolClient,
+ getAllPositionAccountsByOwner,
+ PriceMath,
+} from "@orca-so/whirlpools-sdk";
+
+interface PositionInfo {
+ whirlpoolAddress: string;
+ positionInRange: boolean;
+ distanceFromCenterBps: number;
+}
+
+type PositionDataMap = {
+ [positionMintAddress: string]: PositionInfo;
+};
+
+/**
+ * # Fetches Liquidity Position Data in Orca Whirlpools
+ *
+ * Fetches data for all liquidity positions owned by the provided wallet, including:
+ * - Whirlpool address.
+ * - Whether the position is in range.
+ * - Distance from the center price to the current price in basis points.
+ *
+ * ## Parameters
+ * - `agent`: The `SolanaAgentKit` instance representing the wallet and connection.
+ *
+ * ## Returns
+ * A JSON string with an object mapping position mint addresses to position details:
+ * ```json
+ * {
+ * "positionMintAddress1": {
+ * "whirlpoolAddress": "whirlpoolAddress1",
+ * "positionInRange": true,
+ * "distanceFromCenterBps": 250
+ * }
+ * }
+ * ```
+ *
+ * ## Throws
+ * - If positions cannot be fetched or processed.
+ * - If the position mint address is invalid.
+ *
+ * @param agent - The `SolanaAgentKit` instance.
+ * @returns A JSON string with position data.
+ */
+export async function orcaFetchPositions(
+ agent: SolanaAgentKit,
+): Promise {
+ try {
+ const wallet = new Wallet(agent.wallet);
+ const ctx = WhirlpoolContext.from(
+ agent.connection,
+ wallet,
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ );
+ const client = buildWhirlpoolClient(ctx);
+
+ const positions = await getAllPositionAccountsByOwner({
+ ctx,
+ owner: agent.wallet.publicKey,
+ });
+ const positionDatas = [
+ ...positions.positions.entries(),
+ ...positions.positionsWithTokenExtensions.entries(),
+ ];
+ const result: PositionDataMap = {};
+ for (const [, positionData] of positionDatas) {
+ const positionMintAddress = positionData.positionMint;
+ const whirlpoolAddress = positionData.whirlpool;
+ const whirlpool = await client.getPool(whirlpoolAddress);
+ const whirlpoolData = whirlpool.getData();
+ const sqrtPrice = whirlpoolData.sqrtPrice;
+ const currentTick = whirlpoolData.tickCurrentIndex;
+ const mintA = whirlpool.getTokenAInfo();
+ const mintB = whirlpool.getTokenBInfo();
+ const currentPrice = PriceMath.sqrtPriceX64ToPrice(
+ sqrtPrice,
+ mintA.decimals,
+ mintB.decimals,
+ );
+ const lowerTick = positionData.tickLowerIndex;
+ const upperTick = positionData.tickUpperIndex;
+ const lowerPrice = PriceMath.tickIndexToPrice(
+ lowerTick,
+ mintA.decimals,
+ mintB.decimals,
+ );
+ const upperPrice = PriceMath.tickIndexToPrice(
+ upperTick,
+ mintA.decimals,
+ mintB.decimals,
+ );
+ const centerPosition = lowerPrice.add(upperPrice).div(2);
+
+ const positionInRange =
+ currentTick > lowerTick && currentTick < upperTick ? true : false;
+ const distanceFromCenterBps = Math.ceil(
+ currentPrice
+ .sub(centerPosition)
+ .abs()
+ .div(centerPosition)
+ .mul(10000)
+ .toNumber(),
+ );
+
+ result[positionMintAddress.toString()] = {
+ whirlpoolAddress: whirlpoolAddress.toString(),
+ positionInRange,
+ distanceFromCenterBps,
+ };
+ }
+ return JSON.stringify(result);
+ } catch (error) {
+ throw new Error(`${error}`);
+ }
+}
diff --git a/src/tools/orca_open_centered_position_with_liquidity.ts b/src/tools/orca_open_centered_position_with_liquidity.ts
new file mode 100644
index 0000000..63a8972
--- /dev/null
+++ b/src/tools/orca_open_centered_position_with_liquidity.ts
@@ -0,0 +1,161 @@
+import {
+ Keypair,
+ PublicKey,
+ TransactionInstruction,
+ TransactionMessage,
+ VersionedTransaction,
+} from "@solana/web3.js";
+import { SolanaAgentKit } from "../agent";
+import { Wallet } from "@coral-xyz/anchor";
+import { Decimal } from "decimal.js";
+import {
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ WhirlpoolContext,
+ PriceMath,
+ buildWhirlpoolClient,
+ increaseLiquidityQuoteByInputToken,
+ TokenExtensionContextForPool,
+ NO_TOKEN_EXTENSION_CONTEXT,
+} from "@orca-so/whirlpools-sdk";
+
+import { sendTx } from "../utils/send_tx";
+import { Percentage } from "@orca-so/common-sdk";
+import { TOKEN_2022_PROGRAM_ID } from "@solana/spl-token";
+
+/**
+ * # Opens a Centered Liquidity Position in an Orca Whirlpool
+ *
+ * This function opens a centered liquidity position in a specified Orca Whirlpool. The user defines
+ * a basis point (bps) offset from the current price of the pool to set the lower and upper bounds of the position.
+ * The user also specifies the token mint and the amount to deposit. The required amount of the other token
+ * is calculated automatically.
+ *
+ * ## Parameters
+ * - `agent`: The `SolanaAgentKit` instance representing the wallet and connection details.
+ * - `whirlpoolAddress`: The address of the Orca Whirlpool where the position will be opened.
+ * - `priceOffsetBps`: The basis point (bps) offset (on one side) from the current price fo the pool. For example,
+ * 500 bps (5%) creates a range from 95% to 105% of the current pool price.
+ * - `inputTokenMint`: The mint address of the token being deposited (e.g., USDC or another token).
+ * - `inputAmount`: The amount of the input token to deposit, specified as a `Decimal` value.
+ *
+ * ## Returns
+ * A `Promise` that resolves to the transaction ID (`string`) of the transaction that opens the position.
+ *
+ * ## Notes
+ * - The `priceOffsetBps` specifies the range symmetrically around the current price.
+ * - The specified `inputTokenMint` determines which token is deposited directly. The function calculates
+ * the required amount of the other token based on the specified price range.
+ * - This function supports Orca's token extensions for managing tokens with special behaviors.
+ * - The function assumes a maximum slippage of 1% for liquidity provision.
+ *
+ * ## Throws
+ * An error will be thrown if:
+ * - The specified Whirlpool address is invalid or inaccessible.
+ * - The transaction fails to send.
+ * - Any required mint information cannot be fetched.
+ *
+ * @param agent - The `SolanaAgentKit` instance representing the wallet and connection.
+ * @param whirlpoolAddress - The address of the Orca Whirlpool.
+ * @param priceOffsetBps - The basis point offset (one side) from the current pool price.
+ * @param inputTokenMint - The mint address of the token to deposit.
+ * @param inputAmount - The amount of the input token to deposit.
+ * @returns A promise resolving to the transaction ID (`string`).
+ */
+export async function orcaOpenCenteredPositionWithLiquidity(
+ agent: SolanaAgentKit,
+ whirlpoolAddress: PublicKey,
+ priceOffsetBps: number,
+ inputTokenMint: PublicKey,
+ inputAmount: Decimal,
+): Promise {
+ try {
+ const wallet = new Wallet(agent.wallet);
+ const ctx = WhirlpoolContext.from(
+ agent.connection,
+ wallet,
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ );
+ const client = buildWhirlpoolClient(ctx);
+
+ const whirlpool = await client.getPool(whirlpoolAddress);
+ const whirlpoolData = whirlpool.getData();
+ const mintInfoA = whirlpool.getTokenAInfo();
+ const mintInfoB = whirlpool.getTokenBInfo();
+ const price = PriceMath.sqrtPriceX64ToPrice(
+ whirlpoolData.sqrtPrice,
+ mintInfoA.decimals,
+ mintInfoB.decimals,
+ );
+
+ const lowerPrice = price.mul(1 - priceOffsetBps / 10000);
+ const upperPrice = price.mul(1 + priceOffsetBps / 10000);
+ const lowerTick = PriceMath.priceToInitializableTickIndex(
+ lowerPrice,
+ mintInfoA.decimals,
+ mintInfoB.decimals,
+ whirlpoolData.tickSpacing,
+ );
+ const upperTick = PriceMath.priceToInitializableTickIndex(
+ upperPrice,
+ mintInfoA.decimals,
+ mintInfoB.decimals,
+ whirlpoolData.tickSpacing,
+ );
+
+ const txBuilderTickArrays = await whirlpool.initTickArrayForTicks([
+ lowerTick,
+ upperTick,
+ ]);
+ let instructions: TransactionInstruction[] = [];
+ let signers: Keypair[] = [];
+ if (txBuilderTickArrays !== null) {
+ const txPayloadTickArrays = await txBuilderTickArrays.build();
+ const txPayloadTickArraysDecompiled = TransactionMessage.decompile(
+ (txPayloadTickArrays.transaction as VersionedTransaction).message,
+ );
+ const instructionsTickArrays = txPayloadTickArraysDecompiled.instructions;
+ instructions = instructions.concat(instructionsTickArrays);
+ signers = signers.concat(txPayloadTickArrays.signers as Keypair[]);
+ }
+
+ const tokenExtensionCtx: TokenExtensionContextForPool = {
+ ...NO_TOKEN_EXTENSION_CONTEXT,
+ tokenMintWithProgramA: mintInfoA,
+ tokenMintWithProgramB: mintInfoB,
+ };
+ const increaseLiquiditQuote = increaseLiquidityQuoteByInputToken(
+ inputTokenMint,
+ inputAmount,
+ lowerTick,
+ upperTick,
+ Percentage.fromFraction(1, 100),
+ whirlpool,
+ tokenExtensionCtx,
+ );
+ const { positionMint, tx: txBuilder } =
+ await whirlpool.openPositionWithMetadata(
+ lowerTick,
+ upperTick,
+ increaseLiquiditQuote,
+ undefined,
+ undefined,
+ undefined,
+ TOKEN_2022_PROGRAM_ID,
+ );
+
+ const txPayload = await txBuilder.build();
+ const txPayloadDecompiled = TransactionMessage.decompile(
+ (txPayload.transaction as VersionedTransaction).message,
+ );
+ instructions = instructions.concat(txPayloadDecompiled.instructions);
+ signers = signers.concat(txPayload.signers as Keypair[]);
+
+ const txId = await sendTx(agent, instructions, signers);
+ return JSON.stringify({
+ transactionId: txId,
+ positionMint: positionMint.toString(),
+ });
+ } catch (error) {
+ throw new Error(`${error}`);
+ }
+}
diff --git a/src/tools/orca_open_single_sided_position.ts b/src/tools/orca_open_single_sided_position.ts
new file mode 100644
index 0000000..741069a
--- /dev/null
+++ b/src/tools/orca_open_single_sided_position.ts
@@ -0,0 +1,177 @@
+import {
+ Keypair,
+ PublicKey,
+ TransactionMessage,
+ VersionedTransaction,
+} from "@solana/web3.js";
+import { SolanaAgentKit } from "../agent";
+import { Wallet } from "@coral-xyz/anchor";
+import { Decimal } from "decimal.js";
+import {
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ WhirlpoolContext,
+ PriceMath,
+ buildWhirlpoolClient,
+ increaseLiquidityQuoteByInputToken,
+ TokenExtensionContextForPool,
+ NO_TOKEN_EXTENSION_CONTEXT,
+} from "@orca-so/whirlpools-sdk";
+import { sendTx } from "../utils/send_tx";
+import { Percentage } from "@orca-so/common-sdk";
+import { TOKEN_2022_PROGRAM_ID } from "@solana/spl-token";
+
+/**
+ * # Opens a Single-Sided Liquidity Position in an Orca Whirlpool
+ *
+ * This function opens a single-sided liquidity position in a specified Orca Whirlpool. The user specifies
+ * a basis point (bps) offset from the current price for the lower bound and a width (bps) for the range width.
+ * The required amount of the other token is calculated automatically.
+ *
+ * ## Parameters
+ * - `agent`: The `SolanaAgentKit` instance representing the wallet and connection details.
+ * - `whirlpoolAddress`: The address of the Orca Whirlpool where the position will be opened.
+ * - `distanceFromCurrentPriceBps`: The basis point offset from the current price for the lower bound.
+ * - `widthBps`: The width of the range as a percentage increment from the lower bound.
+ * - `inputTokenMint`: The mint address of the token being deposited (e.g., USDC or another token).
+ * - `inputAmount`: The amount of the input token to deposit, specified as a `Decimal` value.
+ *
+ * ## Returns
+ * A `Promise` that resolves to the transaction ID (`string`) of the transaction that opens the position.
+ *
+ * ## Notes
+ * - The `distanceFromCurrentPriceBps` specifies the starting point of the range.
+ * - The `widthBps` determines the range size from the lower bound.
+ * - The specified `inputTokenMint` determines which token is deposited directly.
+ *
+ * @param agent - The `SolanaAgentKit` instance representing the wallet and connection.
+ * @param whirlpoolAddress - The address of the Orca Whirlpool.
+ * @param distanceFromCurrentPriceBps - The basis point offset from the current price for the lower bound.
+ * @param widthBps - The width of the range as a percentage increment from the lower bound.
+ * @param inputTokenMint - The mint address of the token to deposit.
+ * @param inputAmount - The amount of the input token to deposit.
+ * @returns A promise resolving to the transaction ID (`string`).
+ */
+export async function orcaOpenSingleSidedPosition(
+ agent: SolanaAgentKit,
+ whirlpoolAddress: PublicKey,
+ distanceFromCurrentPriceBps: number,
+ widthBps: number,
+ inputTokenMint: PublicKey,
+ inputAmount: Decimal,
+): Promise {
+ try {
+ const wallet = new Wallet(agent.wallet);
+ const ctx = WhirlpoolContext.from(
+ agent.connection,
+ wallet,
+ ORCA_WHIRLPOOL_PROGRAM_ID,
+ );
+ const client = buildWhirlpoolClient(ctx);
+
+ const whirlpool = await client.getPool(whirlpoolAddress);
+ const whirlpoolData = whirlpool.getData();
+ const mintInfoA = whirlpool.getTokenAInfo();
+ const mintInfoB = whirlpool.getTokenBInfo();
+ const price = PriceMath.sqrtPriceX64ToPrice(
+ whirlpoolData.sqrtPrice,
+ mintInfoA.decimals,
+ mintInfoB.decimals,
+ );
+
+ const isTokenA = inputTokenMint.equals(mintInfoA.mint);
+ let lowerBoundPrice;
+ let upperBoundPrice;
+ let lowerTick;
+ let upperTick;
+ if (isTokenA) {
+ lowerBoundPrice = price.mul(1 + distanceFromCurrentPriceBps / 10000);
+ upperBoundPrice = lowerBoundPrice.mul(1 + widthBps / 10000);
+ upperTick = PriceMath.priceToInitializableTickIndex(
+ upperBoundPrice,
+ mintInfoA.decimals,
+ mintInfoB.decimals,
+ whirlpoolData.tickSpacing,
+ );
+ lowerTick = PriceMath.priceToInitializableTickIndex(
+ lowerBoundPrice,
+ mintInfoA.decimals,
+ mintInfoB.decimals,
+ whirlpoolData.tickSpacing,
+ );
+ } else {
+ lowerBoundPrice = price.mul(1 - distanceFromCurrentPriceBps / 10000);
+ upperBoundPrice = lowerBoundPrice.mul(1 - widthBps / 10000);
+ lowerTick = PriceMath.priceToInitializableTickIndex(
+ upperBoundPrice,
+ mintInfoA.decimals,
+ mintInfoB.decimals,
+ whirlpoolData.tickSpacing,
+ );
+ upperTick = PriceMath.priceToInitializableTickIndex(
+ lowerBoundPrice,
+ mintInfoA.decimals,
+ mintInfoB.decimals,
+ whirlpoolData.tickSpacing,
+ );
+ }
+
+ const txBuilderTickArrays = await whirlpool.initTickArrayForTicks([
+ lowerTick,
+ upperTick,
+ ]);
+ let txIds: string = "";
+ if (txBuilderTickArrays !== null) {
+ const txPayloadTickArrays = await txBuilderTickArrays.build();
+ const txPayloadTickArraysDecompiled = TransactionMessage.decompile(
+ (txPayloadTickArrays.transaction as VersionedTransaction).message,
+ );
+ const instructions = txPayloadTickArraysDecompiled.instructions;
+ const signers = txPayloadTickArrays.signers as Keypair[];
+
+ const tickArrayTxId = await sendTx(agent, instructions, signers);
+ txIds += tickArrayTxId + ",";
+ }
+
+ const tokenExtensionCtx: TokenExtensionContextForPool = {
+ ...NO_TOKEN_EXTENSION_CONTEXT,
+ tokenMintWithProgramA: mintInfoA,
+ tokenMintWithProgramB: mintInfoB,
+ };
+ const increaseLiquiditQuote = increaseLiquidityQuoteByInputToken(
+ inputTokenMint,
+ inputAmount,
+ lowerTick,
+ upperTick,
+ Percentage.fromFraction(1, 100),
+ whirlpool,
+ tokenExtensionCtx,
+ );
+ const { positionMint, tx: txBuilder } =
+ await whirlpool.openPositionWithMetadata(
+ lowerTick,
+ upperTick,
+ increaseLiquiditQuote,
+ undefined,
+ undefined,
+ undefined,
+ TOKEN_2022_PROGRAM_ID,
+ );
+
+ const txPayload = await txBuilder.build();
+ const txPayloadDecompiled = TransactionMessage.decompile(
+ (txPayload.transaction as VersionedTransaction).message,
+ );
+ const instructions = txPayloadDecompiled.instructions;
+ const signers = txPayload.signers as Keypair[];
+
+ const positionTxId = await sendTx(agent, instructions, signers);
+ txIds += positionTxId;
+
+ return JSON.stringify({
+ transactionIds: txIds,
+ positionMint: positionMint.toString(),
+ });
+ } catch (error) {
+ throw new Error(`${error}`);
+ }
+}
diff --git a/src/tools/pyth_fetch_price.ts b/src/tools/pyth_fetch_price.ts
index 789cec8..0946af4 100644
--- a/src/tools/pyth_fetch_price.ts
+++ b/src/tools/pyth_fetch_price.ts
@@ -1,38 +1,91 @@
-import { PriceServiceConnection } from "@pythnetwork/price-service-client";
import BN from "bn.js";
+import { PythPriceFeedIDItem } from "../types";
+
+/**
+ * Fetch the price feed ID for a given token symbol from Pyth
+ * @param tokenSymbol Token symbol
+ * @returns Price feed ID
+ */
+export async function fetchPythPriceFeedID(
+ tokenSymbol: string,
+): Promise {
+ try {
+ const stableHermesServiceUrl: string = "https://hermes.pyth.network";
+
+ const response = await fetch(
+ `${stableHermesServiceUrl}/v2/price_feeds?query=${tokenSymbol}&asset_type=crypto`,
+ );
+
+ if (!response.ok) {
+ throw new Error(`HTTP error! status: ${response.status}`);
+ }
+
+ const data = await response.json();
+
+ if (data.length === 0) {
+ throw new Error(`No price feed found for ${tokenSymbol}`);
+ }
+
+ if (data.length > 1) {
+ const filteredData = data.filter(
+ (item: PythPriceFeedIDItem) =>
+ item.attributes.base.toLowerCase() === tokenSymbol.toLowerCase(),
+ );
+
+ if (filteredData.length === 0) {
+ throw new Error(`No price feed found for ${tokenSymbol}`);
+ }
+
+ return filteredData[0].id;
+ }
+
+ return data[0].id;
+ } catch (error: any) {
+ throw new Error(
+ `Fetching price feed ID from Pyth failed: ${error.message}`,
+ );
+ }
+}
/**
* Fetch the price of a given price feed from Pyth
- * @param agent SolanaAgentKit instance
* @param priceFeedID Price feed ID
* @returns Latest price value from feed
*
* You can find priceFeedIDs here: https://www.pyth.network/developers/price-feed-ids#stable
*/
-export async function pythFetchPrice(priceFeedID: string): Promise {
- // get Hermes service URL from https://docs.pyth.network/price-feeds/api-instances-and-providers/hermes
- const stableHermesServiceUrl: string = "https://hermes.pyth.network";
- const connection = new PriceServiceConnection(stableHermesServiceUrl);
- const feeds = [priceFeedID];
-
+export async function fetchPythPrice(feedID: string): Promise {
try {
- const currentPrice = await connection.getLatestPriceFeeds(feeds);
+ const stableHermesServiceUrl: string = "https://hermes.pyth.network";
- if (currentPrice === undefined) {
- throw new Error("Price data not available for the given token.");
+ const response = await fetch(
+ `${stableHermesServiceUrl}/v2/updates/price/latest?ids[]=${feedID}`,
+ );
+
+ const data = await response.json();
+
+ const parsedData = data.parsed;
+
+ if (parsedData.length === 0) {
+ throw new Error(`No price data found for ${feedID}`);
}
- if (currentPrice.length === 0) {
- throw new Error("Price data not available for the given token.");
+ const price = new BN(parsedData[0].price.price);
+ const exponent = parsedData[0].price.expo;
+
+ if (exponent < 0) {
+ const adjustedPrice = price.mul(new BN(100));
+ const divisor = new BN(10).pow(new BN(-exponent));
+ const scaledPrice = adjustedPrice.div(divisor);
+
+ const priceStr = scaledPrice.toString();
+ const formattedPrice = `${priceStr.slice(0, -2)}.${priceStr.slice(-2)}`;
+ return formattedPrice.startsWith(".")
+ ? `0${formattedPrice}`
+ : formattedPrice;
}
- // get price and exponent from price feed
- const price = new BN(currentPrice[0].getPriceUnchecked().price);
- const exponent = new BN(currentPrice[0].getPriceUnchecked().expo);
-
- // convert to scaled price
- const scaledPrice = price.div(new BN(10).pow(exponent));
-
+ const scaledPrice = price.div(new BN(10).pow(new BN(exponent)));
return scaledPrice.toString();
} catch (error: any) {
throw new Error(`Fetching price from Pyth failed: ${error.message}`);
diff --git a/src/tools/resolve_sol_domain.ts b/src/tools/resolve_sol_domain.ts
index 6969a4c..32b090b 100644
--- a/src/tools/resolve_sol_domain.ts
+++ b/src/tools/resolve_sol_domain.ts
@@ -24,7 +24,8 @@ export async function resolveSolDomain(
try {
return await resolve(agent.connection, domain);
- } catch (error) {
+ } catch (error: any) {
+ console.error(error);
throw new Error(`Failed to resolve domain: ${domain}`);
}
}
diff --git a/src/tools/rugcheck.ts b/src/tools/rugcheck.ts
new file mode 100644
index 0000000..11d533d
--- /dev/null
+++ b/src/tools/rugcheck.ts
@@ -0,0 +1,53 @@
+import { TokenCheck } from "../types";
+
+const BASE_URL = "https://api.rugcheck.xyz/v1";
+
+/**
+ * Fetches a summary report for a specific token.
+ * @async
+ * @param {string} mint - The mint address of the token.
+ * @returns {Promise} The token summary report.
+ * @throws {Error} If the API call fails.
+ */
+export async function fetchTokenReportSummary(
+ mint: string,
+): Promise {
+ try {
+ const response = await fetch(`${BASE_URL}/tokens/${mint}/report/summary`);
+ if (!response.ok) {
+ throw new Error(`HTTP error! status: ${response.status}`);
+ }
+ return await response.json();
+ } catch (error: any) {
+ console.error(
+ `Error fetching report summary for token ${mint}:`,
+ error.message,
+ );
+ throw new Error(`Failed to fetch report summary for token ${mint}.`);
+ }
+}
+
+/**
+ * Fetches a detailed report for a specific token.
+ * @async
+ * @param {string} mint - The mint address of the token.
+ * @returns {Promise} The detailed token report.
+ * @throws {Error} If the API call fails.
+ */
+export async function fetchTokenDetailedReport(
+ mint: string,
+): Promise {
+ try {
+ const response = await fetch(`${BASE_URL}/tokens/${mint}/report`);
+ if (!response.ok) {
+ throw new Error(`HTTP error! status: ${response.status}`);
+ }
+ return await response.json();
+ } catch (error: any) {
+ console.error(
+ `Error fetching detailed report for token ${mint}:`,
+ error.message,
+ );
+ throw new Error(`Failed to fetch detailed report for token ${mint}.`);
+ }
+}
diff --git a/src/tools/send_compressed_airdrop.ts b/src/tools/send_compressed_airdrop.ts
index 3df33ef..871c810 100644
--- a/src/tools/send_compressed_airdrop.ts
+++ b/src/tools/send_compressed_airdrop.ts
@@ -88,6 +88,7 @@ export async function sendCompressedAirdrop(
agent.wallet.publicKey,
);
} catch (error) {
+ console.error(error);
throw new Error(
"Source token account not found and failed to create it. Please add funds to your wallet and try again.",
);
diff --git a/src/tools/stake_with_solayer.ts b/src/tools/stake_with_solayer.ts
new file mode 100644
index 0000000..e2ef643
--- /dev/null
+++ b/src/tools/stake_with_solayer.ts
@@ -0,0 +1,64 @@
+import { VersionedTransaction } from "@solana/web3.js";
+import { SolanaAgentKit } from "../index";
+
+/**
+ * Stake SOL with Solayer
+ * @param agent SolanaAgentKit instance
+ * @param amount Amount of SOL to stake
+ * @returns Transaction signature
+ */
+export async function stakeWithSolayer(
+ agent: SolanaAgentKit,
+ amount: number,
+): Promise {
+ try {
+ const response = await fetch(
+ `https://app.solayer.org/api/action/restake/ssol?amount=${amount}`,
+ {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json",
+ },
+ body: JSON.stringify({
+ account: agent.wallet.publicKey.toBase58(),
+ }),
+ },
+ );
+
+ if (!response.ok) {
+ const errorData = await response.json();
+ throw new Error(errorData.message || "Staking request failed");
+ }
+
+ const data = await response.json();
+
+ // Deserialize and prepare transaction
+ const txn = VersionedTransaction.deserialize(
+ Buffer.from(data.transaction, "base64"),
+ );
+
+ // Update blockhash
+ const { blockhash } = await agent.connection.getLatestBlockhash();
+ txn.message.recentBlockhash = blockhash;
+
+ // Sign and send transaction
+ txn.sign([agent.wallet]);
+ const signature = await agent.connection.sendTransaction(txn, {
+ preflightCommitment: "confirmed",
+ maxRetries: 3,
+ });
+
+ // Wait for confirmation
+ const latestBlockhash = await agent.connection.getLatestBlockhash();
+ await agent.connection.confirmTransaction({
+ signature,
+ blockhash: latestBlockhash.blockhash,
+ lastValidBlockHeight: latestBlockhash.lastValidBlockHeight,
+ });
+
+ return signature;
+ } catch (error: any) {
+ console.error(error);
+ throw new Error(`Solayer sSOL staking failed: ${error.message}`);
+ }
+}
diff --git a/src/tools/tensor_trade.ts b/src/tools/tensor_trade.ts
new file mode 100644
index 0000000..4025ac3
--- /dev/null
+++ b/src/tools/tensor_trade.ts
@@ -0,0 +1,109 @@
+import { SolanaAgentKit } from "../index";
+import { TensorSwapSDK } from "@tensor-oss/tensorswap-sdk";
+import { PublicKey, Transaction } from "@solana/web3.js";
+import { AnchorProvider, Wallet } from "@coral-xyz/anchor";
+import { BN } from "bn.js";
+import {
+ getAssociatedTokenAddress,
+ TOKEN_PROGRAM_ID,
+ getAccount,
+} from "@solana/spl-token";
+
+export async function listNFTForSale(
+ agent: SolanaAgentKit,
+ nftMint: PublicKey,
+ price: number,
+): Promise {
+ try {
+ if (!PublicKey.isOnCurve(nftMint)) {
+ throw new Error("Invalid NFT mint address");
+ }
+
+ const mintInfo = await agent.connection.getAccountInfo(nftMint);
+ if (!mintInfo) {
+ throw new Error(`NFT mint ${nftMint.toString()} does not exist`);
+ }
+
+ const ata = await getAssociatedTokenAddress(nftMint, agent.wallet_address);
+
+ try {
+ const tokenAccount = await getAccount(agent.connection, ata);
+
+ if (!tokenAccount || tokenAccount.amount <= 0) {
+ throw new Error(`You don't own this NFT (${nftMint.toString()})`);
+ }
+ } catch (error: any) {
+ console.error(error);
+ throw new Error(
+ `No token account found for mint ${nftMint.toString()}. Make sure you own this NFT.`,
+ );
+ }
+
+ const provider = new AnchorProvider(
+ agent.connection,
+ new Wallet(agent.wallet),
+ AnchorProvider.defaultOptions(),
+ );
+
+ const tensorSwapSdk = new TensorSwapSDK({ provider });
+ const priceInLamports = new BN(price * 1e9);
+ const nftSource = await getAssociatedTokenAddress(
+ nftMint,
+ agent.wallet_address,
+ );
+
+ const { tx } = await tensorSwapSdk.list({
+ nftMint,
+ nftSource,
+ owner: agent.wallet_address,
+ price: priceInLamports,
+ tokenProgram: TOKEN_PROGRAM_ID,
+ payer: agent.wallet_address,
+ });
+
+ const transaction = new Transaction();
+ transaction.add(...tx.ixs);
+ return await agent.connection.sendTransaction(transaction, [
+ agent.wallet,
+ ...tx.extraSigners,
+ ]);
+ } catch (error: any) {
+ console.error("Full error details:", error);
+ throw error;
+ }
+}
+
+export async function cancelListing(
+ agent: SolanaAgentKit,
+ nftMint: PublicKey,
+): Promise {
+ const provider = new AnchorProvider(
+ agent.connection,
+ new Wallet(agent.wallet),
+ AnchorProvider.defaultOptions(),
+ );
+
+ const tensorSwapSdk = new TensorSwapSDK({ provider });
+ const nftDest = await getAssociatedTokenAddress(
+ nftMint,
+ agent.wallet_address,
+ false,
+ TOKEN_PROGRAM_ID,
+ );
+
+ const { tx } = await tensorSwapSdk.delist({
+ nftMint,
+ nftDest,
+ owner: agent.wallet_address,
+ tokenProgram: TOKEN_PROGRAM_ID,
+ payer: agent.wallet_address,
+ authData: null,
+ });
+
+ const transaction = new Transaction();
+ transaction.add(...tx.ixs);
+ return await agent.connection.sendTransaction(transaction, [
+ agent.wallet,
+ ...tx.extraSigners,
+ ]);
+}
diff --git a/src/tools/trade.ts b/src/tools/trade.ts
index 70a3a45..4e11712 100644
--- a/src/tools/trade.ts
+++ b/src/tools/trade.ts
@@ -1,6 +1,11 @@
import { VersionedTransaction, PublicKey } from "@solana/web3.js";
import { SolanaAgentKit } from "../index";
-import { TOKENS, DEFAULT_OPTIONS, JUP_API } from "../constants";
+import {
+ TOKENS,
+ DEFAULT_OPTIONS,
+ JUP_API,
+ JUP_REFERRAL_ADDRESS,
+} from "../constants";
import { getMint } from "@solana/spl-token";
/**
* Swap tokens using Jupiter Exchange
@@ -11,6 +16,7 @@ import { getMint } from "@solana/spl-token";
* @param slippageBps Slippage tolerance in basis points (default: 300 = 3%)
* @returns Transaction signature
*/
+
export async function trade(
agent: SolanaAgentKit,
outputMint: PublicKey,
@@ -38,11 +44,24 @@ export async function trade(
`&amount=${scaledAmount}` +
`&slippageBps=${slippageBps}` +
`&onlyDirectRoutes=true` +
- `&maxAccounts=20`,
+ `&maxAccounts=20` +
+ `${agent.config.JUPITER_FEE_BPS ? `&platformFeeBps=${agent.config.JUPITER_FEE_BPS}` : ""}`,
)
).json();
// Get serialized transaction
+ let feeAccount;
+ if (agent.config.JUPITER_REFERRAL_ACCOUNT) {
+ [feeAccount] = PublicKey.findProgramAddressSync(
+ [
+ Buffer.from("referral_ata"),
+ new PublicKey(agent.config.JUPITER_REFERRAL_ACCOUNT).toBuffer(),
+ TOKENS.SOL.toBuffer(),
+ ],
+ new PublicKey(JUP_REFERRAL_ADDRESS),
+ );
+ }
+
const { swapTransaction } = await (
await fetch("https://quote-api.jup.ag/v6/swap", {
method: "POST",
@@ -55,6 +74,7 @@ export async function trade(
wrapAndUnwrapSol: true,
dynamicComputeUnitLimit: true,
prioritizationFeeLamports: "auto",
+ feeAccount: feeAccount ? feeAccount.toString() : null,
}),
})
).json();
diff --git a/src/tools/withdraw_all.ts b/src/tools/withdraw_all.ts
new file mode 100644
index 0000000..99e3bc1
--- /dev/null
+++ b/src/tools/withdraw_all.ts
@@ -0,0 +1,37 @@
+import {
+ PublicKey,
+ sendAndConfirmTransaction,
+ Transaction,
+} from "@solana/web3.js";
+import { SolanaAgentKit } from "../index";
+import { ManifestClient } from "@cks-systems/manifest-sdk";
+
+/**
+ * Withdraws all funds from Manifest
+ * @param agent SolanaAgentKit instance
+ * @param marketId Public key for the manifest market
+ * @returns Transaction signature
+ */
+export async function withdrawAll(
+ agent: SolanaAgentKit,
+ marketId: PublicKey,
+): Promise {
+ try {
+ const mfxClient = await ManifestClient.getClientForMarket(
+ agent.connection,
+ marketId,
+ agent.wallet,
+ );
+
+ const withdrawAllIx = await mfxClient.withdrawAllIx();
+ const signature = await sendAndConfirmTransaction(
+ agent.connection,
+ new Transaction().add(...withdrawAllIx),
+ [agent.wallet],
+ );
+
+ return signature;
+ } catch (error: any) {
+ throw new Error(`Withdraw all failed: ${error.message}`);
+ }
+}
diff --git a/src/types/action.ts b/src/types/action.ts
new file mode 100644
index 0000000..df4c0be
--- /dev/null
+++ b/src/types/action.ts
@@ -0,0 +1,56 @@
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+
+/**
+ * Example of an action with input and output
+ */
+export interface ActionExample {
+ input: Record;
+ output: Record;
+ explanation: string;
+}
+
+/**
+ * Handler function type for executing the action
+ */
+export type Handler = (
+ agent: SolanaAgentKit,
+ input: Record,
+) => Promise>;
+
+/**
+ * Main Action interface inspired by ELIZA
+ * This interface makes it easier to implement actions across different frameworks
+ */
+export interface Action {
+ /**
+ * Unique name of the action
+ */
+ name: string;
+
+ /**
+ * Alternative names/phrases that can trigger this action
+ */
+ similes: string[];
+
+ /**
+ * Detailed description of what the action does
+ */
+ description: string;
+
+ /**
+ * Array of example inputs and outputs for the action
+ * Each inner array represents a group of related examples
+ */
+ examples: ActionExample[][];
+
+ /**
+ * Zod schema for input validation
+ */
+ schema: z.ZodType;
+
+ /**
+ * Function that executes the action
+ */
+ handler: Handler;
+}
diff --git a/src/types/index.ts b/src/types/index.ts
index 95d1fc5..ad88ec8 100644
--- a/src/types/index.ts
+++ b/src/types/index.ts
@@ -1,4 +1,12 @@
import { PublicKey } from "@solana/web3.js";
+import { SolanaAgentKit } from "../agent";
+import { z } from "zod";
+
+export interface Config {
+ OPENAI_API_KEY?: string;
+ JUPITER_REFERRAL_ACCOUNT?: string;
+ JUPITER_FEE_BPS?: number;
+}
export interface Creator {
address: string;
@@ -80,7 +88,8 @@ export interface FetchPriceResponse {
export interface PythFetchPriceResponse {
status: "success" | "error";
- priceFeedID: string;
+ tokenSymbol: string;
+ priceFeedID?: string;
price?: string;
message?: string;
code?: string;
@@ -91,3 +100,127 @@ export interface GibworkCreateTaskReponse {
taskId?: string | undefined;
signature?: string | undefined;
}
+
+/**
+ * Example of an action with input and output
+ */
+export interface ActionExample {
+ input: Record;
+ output: Record;
+ explanation: string;
+}
+
+/**
+ * Handler function type for executing the action
+ */
+export type Handler = (
+ agent: SolanaAgentKit,
+ input: Record,
+) => Promise>;
+
+/**
+ * Main Action interface inspired by ELIZA
+ * This interface makes it easier to implement actions across different frameworks
+ */
+export interface Action {
+ /**
+ * Unique name of the action
+ */
+ name: string;
+
+ /**
+ * Alternative names/phrases that can trigger this action
+ */
+ similes: string[];
+
+ /**
+ * Detailed description of what the action does
+ */
+ description: string;
+
+ /**
+ * Array of example inputs and outputs for the action
+ * Each inner array represents a group of related examples
+ */
+ examples: ActionExample[][];
+
+ /**
+ * Zod schema for input validation
+ */
+ schema: z.ZodType;
+
+ /**
+ * Function that executes the action
+ */
+ handler: Handler;
+}
+
+export interface TokenCheck {
+ tokenProgram: string;
+ tokenType: string;
+ risks: Array<{
+ name: string;
+ level: string;
+ description: string;
+ score: number;
+ }>;
+ score: number;
+}
+
+export interface PythPriceFeedIDItem {
+ id: string;
+ attributes: {
+ asset_type: string;
+ base: string;
+ };
+}
+
+export interface PythPriceItem {
+ binary: {
+ data: string[];
+ encoding: string;
+ };
+ parsed: [
+ Array<{
+ id: string;
+ price: {
+ price: string;
+ conf: string;
+ expo: number;
+ publish_time: number;
+ };
+ ema_price: {
+ price: string;
+ conf: string;
+ expo: number;
+ publish_time: number;
+ };
+ metadata: {
+ slot: number;
+ proof_available_time: number;
+ prev_publish_time: number;
+ };
+ }>,
+ ];
+}
+
+export interface OrderParams {
+ quantity: number;
+ side: string;
+ price: number;
+}
+
+export interface BatchOrderPattern {
+ side: string;
+ totalQuantity?: number;
+ priceRange?: {
+ min?: number;
+ max?: number;
+ };
+ spacing?: {
+ type: "percentage" | "fixed";
+ value: number;
+ };
+ numberOfOrders?: number;
+ individualQuantity?: number;
+}
diff --git a/src/utils/AdrenaClient.ts b/src/utils/AdrenaClient.ts
new file mode 100644
index 0000000..410165d
--- /dev/null
+++ b/src/utils/AdrenaClient.ts
@@ -0,0 +1,220 @@
+import { Connection, PublicKey } from "@solana/web3.js";
+import { SolanaAgentKit } from "../index";
+import { AnchorProvider, IdlAccounts, Program } from "@coral-xyz/anchor";
+import { Adrena, IDL as ADRENA_IDL } from "../idls/adrena";
+
+import NodeWallet from "@coral-xyz/anchor/dist/cjs/nodewallet";
+import {
+ ASSOCIATED_TOKEN_PROGRAM_ID,
+ createAssociatedTokenAccountInstruction,
+ TOKEN_PROGRAM_ID,
+} from "@solana/spl-token";
+import { TOKENS } from "../constants";
+
+export type AdrenaProgram = Program;
+
+type Accounts = IdlAccounts;
+
+export type Cortex = Accounts["cortex"];
+export type Custody = Accounts["custody"] & { pubkey: PublicKey };
+export type Pool = Accounts["pool"];
+
+export default class AdrenaClient {
+ public static programId = new PublicKey(
+ "13gDzEXCdocbj8iAiqrScGo47NiSuYENGsRqi3SEAwet",
+ );
+
+ constructor(
+ public program: AdrenaProgram,
+ public mainPool: Pool,
+ public cortex: Cortex,
+ public custodies: Custody[],
+ ) {}
+
+ public static mainPool = new PublicKey(
+ "4bQRutgDJs6vuh6ZcWaPVXiQaBzbHketjbCDjL4oRN34",
+ );
+
+ public static async load(agent: SolanaAgentKit): Promise {
+ const program = new Program(
+ ADRENA_IDL,
+ AdrenaClient.programId,
+ new AnchorProvider(agent.connection, new NodeWallet(agent.wallet), {
+ commitment: "processed",
+ skipPreflight: true,
+ }),
+ );
+
+ const [cortex, mainPool] = await Promise.all([
+ program.account.cortex.fetch(AdrenaClient.cortex),
+ program.account.pool.fetch(AdrenaClient.mainPool),
+ ]);
+
+ const custodiesAddresses = mainPool.custodies.filter(
+ (custody) => !custody.equals(PublicKey.default),
+ );
+
+ const custodies =
+ await program.account.custody.fetchMultiple(custodiesAddresses);
+
+ if (!custodies.length || custodies.some((c) => c === null)) {
+ throw new Error("Custodies not found");
+ }
+
+ return new AdrenaClient(
+ program,
+ mainPool,
+ cortex,
+ (custodies as Custody[]).map((c, i) => ({
+ ...c,
+ pubkey: custodiesAddresses[i],
+ })),
+ );
+ }
+
+ public static findCustodyAddress(mint: PublicKey): PublicKey {
+ return PublicKey.findProgramAddressSync(
+ [
+ Buffer.from("custody"),
+ AdrenaClient.mainPool.toBuffer(),
+ mint.toBuffer(),
+ ],
+ AdrenaClient.programId,
+ )[0];
+ }
+
+ public static findCustodyTokenAccountAddress(mint: PublicKey) {
+ return PublicKey.findProgramAddressSync(
+ [
+ Buffer.from("custody_token_account"),
+ AdrenaClient.mainPool.toBuffer(),
+ mint.toBuffer(),
+ ],
+ AdrenaClient.programId,
+ )[0];
+ }
+
+ public static findPositionAddress(
+ owner: PublicKey,
+ custody: PublicKey,
+ side: "long" | "short",
+ ) {
+ return PublicKey.findProgramAddressSync(
+ [
+ Buffer.from("position"),
+ owner.toBuffer(),
+ AdrenaClient.mainPool.toBuffer(),
+ custody.toBuffer(),
+ Buffer.from([
+ {
+ long: 1,
+ short: 2,
+ }[side],
+ ]),
+ ],
+ AdrenaClient.programId,
+ )[0];
+ }
+
+ public static cortex = PublicKey.findProgramAddressSync(
+ [Buffer.from("cortex")],
+ AdrenaClient.programId,
+ )[0];
+
+ public static lpTokenMint = PublicKey.findProgramAddressSync(
+ [Buffer.from("lp_token_mint"), AdrenaClient.mainPool.toBuffer()],
+ AdrenaClient.programId,
+ )[0];
+
+ public static lmTokenMint = PublicKey.findProgramAddressSync(
+ [Buffer.from("lm_token_mint")],
+ AdrenaClient.programId,
+ )[0];
+
+ public static getStakingPda(stakedTokenMint: PublicKey) {
+ return PublicKey.findProgramAddressSync(
+ [Buffer.from("staking"), stakedTokenMint.toBuffer()],
+ AdrenaClient.programId,
+ )[0];
+ }
+
+ public static lmStaking = AdrenaClient.getStakingPda(
+ AdrenaClient.lmTokenMint,
+ );
+
+ public static lpStaking = AdrenaClient.getStakingPda(
+ AdrenaClient.lpTokenMint,
+ );
+
+ public static transferAuthority = PublicKey.findProgramAddressSync(
+ [Buffer.from("transfer_authority")],
+ AdrenaClient.programId,
+ )[0];
+
+ public static findATAAddressSync(
+ wallet: PublicKey,
+ mint: PublicKey,
+ ): PublicKey {
+ return PublicKey.findProgramAddressSync(
+ [wallet.toBuffer(), TOKEN_PROGRAM_ID.toBuffer(), mint.toBuffer()],
+ ASSOCIATED_TOKEN_PROGRAM_ID,
+ )[0];
+ }
+
+ public getCustodyByMint(mint: PublicKey): Custody {
+ const custody = this.custodies.find((custody) => custody.mint.equals(mint));
+
+ if (!custody) {
+ throw new Error(`Cannot find custody for mint ${mint.toBase58()}`);
+ }
+
+ return custody;
+ }
+
+ public static getUserProfilePda(wallet: PublicKey) {
+ return PublicKey.findProgramAddressSync(
+ [Buffer.from("user_profile"), wallet.toBuffer()],
+ AdrenaClient.programId,
+ )[0];
+ }
+
+ public static stakingRewardTokenMint = TOKENS.USDC;
+
+ public static getStakingRewardTokenVaultPda(stakingPda: PublicKey) {
+ return PublicKey.findProgramAddressSync(
+ [Buffer.from("staking_reward_token_vault"), stakingPda.toBuffer()],
+ AdrenaClient.programId,
+ )[0];
+ }
+
+ public static lmStakingRewardTokenVault =
+ AdrenaClient.getStakingRewardTokenVaultPda(AdrenaClient.lmStaking);
+ public static lpStakingRewardTokenVault =
+ AdrenaClient.getStakingRewardTokenVaultPda(AdrenaClient.lpStaking);
+
+ public static async isAccountInitialized(
+ connection: Connection,
+ address: PublicKey,
+ ): Promise {
+ return !!(await connection.getAccountInfo(address));
+ }
+
+ public static createATAInstruction({
+ ataAddress,
+ mint,
+ owner,
+ payer = owner,
+ }: {
+ ataAddress: PublicKey;
+ mint: PublicKey;
+ owner: PublicKey;
+ payer?: PublicKey;
+ }) {
+ return createAssociatedTokenAccountInstruction(
+ payer,
+ ataAddress,
+ owner,
+ mint,
+ );
+ }
+}
diff --git a/src/utils/actionExecutor.ts b/src/utils/actionExecutor.ts
new file mode 100644
index 0000000..ed2bd90
--- /dev/null
+++ b/src/utils/actionExecutor.ts
@@ -0,0 +1,68 @@
+import { Action } from "../types/action";
+import { SolanaAgentKit } from "../agent";
+import { ACTIONS } from "../actions";
+
+/**
+ * Find an action by its name or one of its similes
+ */
+export function findAction(query: string): Action | undefined {
+ const normalizedQuery = query.toLowerCase().trim();
+ return Object.values(ACTIONS).find(
+ (action) =>
+ action.name.toLowerCase() === normalizedQuery ||
+ action.similes.some((simile) => simile.toLowerCase() === normalizedQuery),
+ );
+}
+
+/**
+ * Execute an action with the given input
+ */
+export async function executeAction(
+ action: Action,
+ agent: SolanaAgentKit,
+ input: Record,
+): Promise> {
+ try {
+ // Validate input using Zod schema
+ const validatedInput = action.schema.parse(input);
+
+ // Execute the action with validated input
+ const result = await action.handler(agent, validatedInput);
+
+ return {
+ status: "success",
+ ...result,
+ };
+ } catch (error: any) {
+ // Handle Zod validation errors specially
+ if (error.errors) {
+ return {
+ status: "error",
+ message: "Validation error",
+ details: error.errors,
+ code: "VALIDATION_ERROR",
+ };
+ }
+
+ return {
+ status: "error",
+ message: error.message,
+ code: error.code || "EXECUTION_ERROR",
+ };
+ }
+}
+
+/**
+ * Get examples for an action
+ */
+export function getActionExamples(action: Action): string {
+ return action.examples
+ .flat()
+ .map((example) => {
+ return `Input: ${JSON.stringify(example.input, null, 2)}
+Output: ${JSON.stringify(example.output, null, 2)}
+Explanation: ${example.explanation}
+---`;
+ })
+ .join("\n");
+}
diff --git a/src/utils/send_tx.ts b/src/utils/send_tx.ts
index 5af33b7..11923b5 100644
--- a/src/utils/send_tx.ts
+++ b/src/utils/send_tx.ts
@@ -1,70 +1,71 @@
import { SolanaAgentKit } from "../agent";
-import { Transaction, Keypair, TransactionInstruction } from "@solana/web3.js";
-import { Connection, ComputeBudgetProgram } from "@solana/web3.js";
+import {
+ Keypair,
+ Signer,
+ TransactionInstruction,
+ TransactionMessage,
+ VersionedTransaction,
+} from "@solana/web3.js";
+import { ComputeBudgetProgram } from "@solana/web3.js";
+
+const feeTiers = {
+ min: 0.01,
+ mid: 0.5,
+ max: 0.95,
+};
/**
* Get priority fees for the current block
* @param connection - Solana RPC connection
* @returns Priority fees statistics and instructions for different fee levels
*/
-export async function getPriorityFees(connection: Connection): Promise<{
- min: number;
- median: number;
- max: number;
- instructions?: {
- low: TransactionInstruction;
- medium: TransactionInstruction;
- high: TransactionInstruction;
- };
+export async function getComputeBudgetInstructions(
+ agent: SolanaAgentKit,
+ instructions: TransactionInstruction[],
+ feeTier: keyof typeof feeTiers,
+): Promise<{
+ blockhash: string;
+ computeBudgetLimitInstruction: TransactionInstruction;
+ computeBudgetPriorityFeeInstructions: TransactionInstruction;
}> {
- try {
- // Get recent prioritization fees
- const priorityFees = await connection.getRecentPrioritizationFees();
+ const blockhash = (await agent.connection.getLatestBlockhash()).blockhash;
+ const messageV0 = new TransactionMessage({
+ payerKey: agent.wallet_address,
+ recentBlockhash: blockhash,
+ instructions: instructions,
+ }).compileToV0Message();
+ const transaction = new VersionedTransaction(messageV0);
+ const simulatedTx = agent.connection.simulateTransaction(transaction);
+ const estimatedComputeUnits = (await simulatedTx).value.unitsConsumed;
+ const safeComputeUnits = Math.ceil(
+ estimatedComputeUnits
+ ? Math.max(estimatedComputeUnits + 100000, estimatedComputeUnits * 1.2)
+ : 200000,
+ );
+ const computeBudgetLimitInstruction =
+ ComputeBudgetProgram.setComputeUnitLimit({
+ units: safeComputeUnits,
+ });
- if (!priorityFees.length) {
- return {
- min: 0,
- median: 0,
- max: 0,
- };
- }
+ const priorityFee = await agent.connection
+ .getRecentPrioritizationFees()
+ .then(
+ (fees) =>
+ fees.sort((a, b) => a.prioritizationFee - b.prioritizationFee)[
+ Math.floor(fees.length * feeTiers[feeTier])
+ ].prioritizationFee,
+ );
- // Sort fees by value
- const sortedFees = priorityFees
- .map((x) => x.prioritizationFee)
- .sort((a, b) => a - b);
+ const computeBudgetPriorityFeeInstructions =
+ ComputeBudgetProgram.setComputeUnitPrice({
+ microLamports: priorityFee,
+ });
- // Calculate statistics
- const min = sortedFees[0] ?? 0;
- const max = sortedFees[sortedFees.length - 1] ?? 0;
- const mid = Math.floor(sortedFees.length / 2);
- const median =
- sortedFees.length % 2 === 0
- ? ((sortedFees[mid - 1] ?? 0) + (sortedFees[mid] ?? 0)) / 2
- : (sortedFees[mid] ?? 0);
-
- // Helper to create priority fee IX based on chosen strategy
- const createPriorityFeeIx = (fee: number) => {
- return ComputeBudgetProgram.setComputeUnitPrice({
- microLamports: fee,
- });
- };
-
- return {
- min,
- median,
- max,
- // Return instructions for different fee levels
- instructions: {
- low: createPriorityFeeIx(min),
- medium: createPriorityFeeIx(median),
- high: createPriorityFeeIx(max),
- },
- };
- } catch (error) {
- console.error("Error getting priority fees:", error);
- throw error;
- }
+ return {
+ blockhash,
+ computeBudgetLimitInstruction,
+ computeBudgetPriorityFeeInstructions,
+ };
}
/**
@@ -75,23 +76,53 @@ export async function getPriorityFees(connection: Connection): Promise<{
*/
export async function sendTx(
agent: SolanaAgentKit,
- tx: Transaction,
+ instructions: TransactionInstruction[],
otherKeypairs?: Keypair[],
) {
- tx.recentBlockhash = (await agent.connection.getLatestBlockhash()).blockhash;
- tx.feePayer = agent.wallet_address;
- const fees = await getPriorityFees(agent.connection);
- if (fees.instructions) {
- tx.add(fees.instructions.medium!);
- }
+ const ixComputeBudget = await getComputeBudgetInstructions(
+ agent,
+ instructions,
+ "mid",
+ );
+ const allInstructions = [
+ ixComputeBudget.computeBudgetLimitInstruction,
+ ixComputeBudget.computeBudgetPriorityFeeInstructions,
+ ...instructions,
+ ];
+ const messageV0 = new TransactionMessage({
+ payerKey: agent.wallet_address,
+ recentBlockhash: ixComputeBudget.blockhash,
+ instructions: allInstructions,
+ }).compileToV0Message();
+ const transaction = new VersionedTransaction(messageV0);
+ transaction.sign([agent.wallet, ...(otherKeypairs ?? [])] as Signer[]);
- tx.sign(agent.wallet, ...(otherKeypairs ?? []));
- const txid = await agent.connection.sendRawTransaction(tx.serialize());
- await agent.connection.confirmTransaction({
- signature: txid,
- blockhash: (await agent.connection.getLatestBlockhash()).blockhash,
- lastValidBlockHeight: (await agent.connection.getLatestBlockhash())
- .lastValidBlockHeight,
- });
- return txid;
+ const timeoutMs = 90000;
+ const startTime = Date.now();
+ while (Date.now() - startTime < timeoutMs) {
+ const transactionStartTime = Date.now();
+
+ const signature = await agent.connection.sendTransaction(transaction, {
+ maxRetries: 0,
+ skipPreflight: false,
+ });
+
+ const statuses = await agent.connection.getSignatureStatuses([signature]);
+ if (statuses.value[0]) {
+ if (!statuses.value[0].err) {
+ return signature;
+ } else {
+ throw new Error(
+ `Transaction failed: ${statuses.value[0].err.toString()}`,
+ );
+ }
+ }
+
+ const elapsedTime = Date.now() - transactionStartTime;
+ const remainingTime = Math.max(0, 1000 - elapsedTime);
+ if (remainingTime > 0) {
+ await new Promise((resolve) => setTimeout(resolve, remainingTime));
+ }
+ }
+ throw new Error("Transaction timeout");
}
diff --git a/src/vercel-ai/index.ts b/src/vercel-ai/index.ts
new file mode 100644
index 0000000..ba35643
--- /dev/null
+++ b/src/vercel-ai/index.ts
@@ -0,0 +1,25 @@
+import { tool, type CoreTool } from "ai";
+import { SolanaAgentKit } from "../agent";
+import { executeAction } from "../utils/actionExecutor";
+import { ACTIONS } from "../actions";
+
+export function createSolanaTools(
+ solanaAgentKit: SolanaAgentKit,
+): Record {
+ const tools: Record = {};
+ const actionKeys = Object.keys(ACTIONS);
+
+ for (const key of actionKeys) {
+ const action = ACTIONS[key as keyof typeof ACTIONS];
+ tools[key] = tool({
+ // @ts-expect-error Value matches type however TS still shows error
+ id: action.name,
+ description: action.description,
+ parameters: action.schema,
+ execute: async (params) =>
+ await executeAction(action, solanaAgentKit, params),
+ });
+ }
+
+ return tools;
+}
diff --git a/test/agent_sdks/vercel_ai.ts b/test/agent_sdks/vercel_ai.ts
new file mode 100644
index 0000000..77fda22
--- /dev/null
+++ b/test/agent_sdks/vercel_ai.ts
@@ -0,0 +1,198 @@
+import { SolanaAgentKit } from "../../src";
+import { createVercelAITools } from "../../src";
+import * as dotenv from "dotenv";
+import * as readline from "readline";
+import { streamText } from "ai";
+import { createOpenAI } from "@ai-sdk/openai";
+
+dotenv.config();
+
+function validateEnvironment(): void {
+ const missingVars: string[] = [];
+ const requiredVars = ["OPENAI_API_KEY", "RPC_URL", "SOLANA_PRIVATE_KEY"];
+
+ requiredVars.forEach((varName) => {
+ if (!process.env[varName]) {
+ missingVars.push(varName);
+ }
+ });
+
+ if (missingVars.length > 0) {
+ console.error("Error: Required environment variables are not set");
+ missingVars.forEach((varName) => {
+ console.error(`${varName}=your_${varName.toLowerCase()}_here`);
+ });
+ process.exit(1);
+ }
+}
+
+validateEnvironment();
+
+async function runAutonomousMode(interval = 10) {
+ console.log("Starting autonomous mode...");
+ const openai = createOpenAI({
+ apiKey: process.env.OPENAI_API_KEY as string,
+ });
+
+ const solanaAgent = new SolanaAgentKit(
+ process.env.SOLANA_PRIVATE_KEY!,
+ process.env.RPC_URL!,
+ {
+ OPENAI_API_KEY: process.env.OPENAI_API_KEY!,
+ },
+ );
+
+ const tools = createVercelAITools(solanaAgent);
+
+ while (true) {
+ try {
+ const thought =
+ "Be creative and do something interesting on the blockchain. " +
+ "Choose an action or set of actions and execute it that highlights your abilities.";
+
+ const response = streamText({
+ prompt: thought,
+ tools,
+ model: openai("gpt-4o-mini"),
+ temperature: 0.7,
+ system: `You are a helpful agent that can interact onchain using the Solana Agent Kit. You are
+ empowered to interact onchain using your tools. If you ever need funds, you can request them from the
+ faucet. If not, you can provide your wallet details and request funds from the user. If there is a 5XX
+ (internal) HTTP error code, ask the user to try again later. If someone asks you to do something you
+ can't do with your currently available tools, you must say so, and encourage them to implement it
+ themselves using the Solana Agent Kit, recommend they go to https://www.solanaagentkit.xyz for more information. Be
+ concise and helpful with your responses. Refrain from restating your tools' descriptions unless it is explicitly requested.`,
+ maxSteps: 10,
+ });
+
+ for await (const textPart of response.textStream) {
+ process.stdout.write(textPart);
+ }
+ console.log();
+
+ await new Promise((resolve) => setTimeout(resolve, interval * 1000));
+ } catch (error) {
+ if (error instanceof Error) {
+ console.error("Error:", error.message);
+ }
+ process.exit(1);
+ }
+ }
+}
+
+async function runChatMode() {
+ console.log("Starting chat mode... Type 'exit' to end.");
+ const openai = createOpenAI({
+ apiKey: process.env.OPENAI_API_KEY as string,
+ });
+
+ const solanaAgent = new SolanaAgentKit(
+ process.env.SOLANA_PRIVATE_KEY!,
+ process.env.RPC_URL!,
+ {
+ OPENAI_API_KEY: process.env.OPENAI_API_KEY!,
+ },
+ );
+
+ const tools = createVercelAITools(solanaAgent);
+ console.log(tools);
+
+ const rl = readline.createInterface({
+ input: process.stdin,
+ output: process.stdout,
+ });
+
+ const question = (prompt: string): Promise =>
+ new Promise((resolve) => rl.question(prompt, resolve));
+
+ try {
+ while (true) {
+ const userInput = await question("\nPrompt: ");
+
+ if (userInput.toLowerCase() === "exit") {
+ break;
+ }
+
+ const response = streamText({
+ prompt: userInput,
+ tools,
+ model: openai("gpt-4o-mini"),
+ temperature: 0.7,
+ system: `You are a helpful agent that can interact onchain using the Solana Agent Kit. You are
+ empowered to interact onchain using your tools. If you ever need funds, you can request them from the
+ faucet. If not, you can provide your wallet details and request funds from the user. If there is a 5XX
+ (internal) HTTP error code, ask the user to try again later. If someone asks you to do something you
+ can't do with your currently available tools, you must say so, and encourage them to implement it
+ themselves using the Solana Agent Kit, recommend they go to https://www.solanaagentkit.xyz for more information. Be
+ concise and helpful with your responses. Refrain from restating your tools' descriptions unless it is explicitly requested.`,
+ maxSteps: 10,
+ });
+
+ for await (const textPart of response.textStream) {
+ process.stdout.write(textPart);
+ }
+ console.log();
+ }
+ } catch (error) {
+ if (error instanceof Error) {
+ console.error("Error:", error.message);
+ }
+ process.exit(1);
+ } finally {
+ rl.close();
+ }
+}
+
+async function chooseMode(): Promise<"chat" | "auto"> {
+ const rl = readline.createInterface({
+ input: process.stdin,
+ output: process.stdout,
+ });
+
+ const question = (prompt: string): Promise =>
+ new Promise((resolve) => rl.question(prompt, resolve));
+
+ while (true) {
+ console.log("\nAvailable modes:");
+ console.log("1. chat - Interactive chat mode");
+ console.log("2. auto - Autonomous action mode");
+
+ const choice = (await question("\nChoose a mode (enter number or name): "))
+ .toLowerCase()
+ .trim();
+
+ rl.close();
+
+ if (choice === "1" || choice === "chat") {
+ return "chat";
+ } else if (choice === "2" || choice === "auto") {
+ return "auto";
+ }
+ console.log("Invalid choice. Please try again.");
+ }
+}
+
+async function main() {
+ try {
+ console.log("Starting Agent...");
+ const mode = await chooseMode();
+
+ if (mode === "chat") {
+ await runChatMode();
+ } else {
+ await runAutonomousMode();
+ }
+ } catch (error) {
+ if (error instanceof Error) {
+ console.error("Error:", error.message);
+ }
+ process.exit(1);
+ }
+}
+
+if (require.main === module) {
+ main().catch((error) => {
+ console.error("Fatal error:", error);
+ process.exit(1);
+ });
+}
diff --git a/test/index.ts b/test/index.ts
index 7cbf8bc..00f9976 100644
--- a/test/index.ts
+++ b/test/index.ts
@@ -1,4 +1,4 @@
-import { SolanaAgentKit } from "../src";
+import { SolanaAgentKit, ACTIONS } from "../src";
import { createSolanaTools } from "../src/langchain";
import { HumanMessage } from "@langchain/core/messages";
import { MemorySaver } from "@langchain/langgraph";
@@ -37,7 +37,7 @@ async function initializeAgent() {
try {
const llm = new ChatOpenAI({
modelName: "gpt-4o-mini",
- temperature: 0.7,
+ temperature: 0.3,
});
let walletDataStr: string | null = null;
@@ -52,11 +52,14 @@ async function initializeAgent() {
const solanaAgent = new SolanaAgentKit(
process.env.SOLANA_PRIVATE_KEY!,
- process.env.RPC_URL,
- process.env.OPENAI_API_KEY!,
+ process.env.RPC_URL!,
+ {
+ OPENAI_API_KEY: process.env.OPENAI_API_KEY!,
+ },
);
const tools = createSolanaTools(solanaAgent);
+
const memory = new MemorySaver();
const config = { configurable: { thread_id: "Solana Agent Kit!" } };
diff --git a/tsconfig.json b/tsconfig.json
index ba8a225..e79de5f 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,29 +1,29 @@
{
- "compilerOptions": {
- "target": "es2020",
- "module": "commonjs",
- "lib": ["es2020", "dom"],
- "declaration": true,
- "declarationMap": true,
- "sourceMap": true,
- "outDir": "./dist",
- "rootDir": "./src",
- "strict": true,
- "noImplicitAny": true,
- "strictBindCallApply": true,
- "strictPropertyInitialization": true,
- "noImplicitThis": true,
- "useUnknownInCatchVariables": true,
- "alwaysStrict": true,
- "exactOptionalPropertyTypes": true,
- "noImplicitReturns": true,
- "noFallthroughCasesInSwitch": true,
- "noImplicitOverride": true,
- "esModuleInterop": true,
- "forceConsistentCasingInFileNames": true,
- "skipLibCheck": true,
- "resolveJsonModule": true
- },
- "include": ["src/**/*"],
- "exclude": ["node_modules", "dist", "**/*.test.ts"]
- }
\ No newline at end of file
+ "compilerOptions": {
+ "target": "es2020",
+ "module": "commonjs",
+ "lib": ["es2020", "dom"],
+ "declaration": true,
+ "declarationMap": true,
+ "sourceMap": true,
+ "outDir": "./dist",
+ "rootDir": "./src",
+ "strict": true,
+ "noImplicitAny": true,
+ "strictBindCallApply": true,
+ "strictPropertyInitialization": true,
+ "noImplicitThis": true,
+ "useUnknownInCatchVariables": true,
+ "alwaysStrict": true,
+ "exactOptionalPropertyTypes": true,
+ "noImplicitReturns": true,
+ "noFallthroughCasesInSwitch": true,
+ "noImplicitOverride": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "skipLibCheck": true,
+ "resolveJsonModule": true
+ },
+ "include": ["src/**/*"],
+ "exclude": ["node_modules", "dist", "**/*.test.ts"]
+}
Main class for interacting with Solana blockchain +
- Preparing search index...
- The search index is not available
solana-agent-kitClass SolanaAgentKit
Main class for interacting with Solana blockchain Provides a unified interface for token operations, NFT management, trading and more
SolanaAgentKit
-Index
Constructors
Properties
Index
Constructors
Properties
Methods
Methods
Constructors
constructor
Parameters
Returns SolanaAgentKit
Properties
connection
Solana RPC connection
-openai_ api_ key
wallet
Wallet keypair for signing transactions
-wallet_ address
Public key of the wallet
-Methods
create Gibwork Task
Parameters
Optionalpayer: stringReturns Promise<GibworkCreateTaskReponse>
create Orca Single Sided Whirlpool
Parameters
| 0.01
| 0.02
| 0.04
| 0.05
| 0.16
| 0.3
| 0.65
| 1
| 2
Returns Promise<string>
create Tiplink
signature: string;
url: string;
}>
Parameters
OptionalsplmintAddress: PublicKeyReturns Promise<{
signature: string;
url: string;
}>
deploy Collection
Parameters
Returns Promise<CollectionDeployment>
deploy Token
mint: PublicKey;
}>
Parameters
OptionalinitialSupply: numberReturns Promise<{
mint: PublicKey;
}>
fetch Token Price
Parameters
Returns Promise<string>
get All DomainsTLDs
Returns Promise<String[]>
get All Registered All Domains
Returns Promise<string[]>
get Balance
Parameters
Optionaltoken_address: PublicKeyReturns Promise<number>
get Balance Other
Parameters
OptionaltokenAddress: PublicKeyReturns Promise<number>
get Main All Domains Domain
Parameters
Returns Promise<null | string>
get Owned All Domains
Parameters
Returns Promise<string[]>
get Owned Domains ForTLD
Parameters
Returns Promise<string[]>
get Primary Domain
Parameters
Returns Promise<string>
get Token Data By Address
Parameters
Returns Promise<undefined | JupiterTokenData>
get Token Data By Ticker
Parameters
Returns Promise<undefined | JupiterTokenData>
getTPS
Returns Promise<number>
launch Pump Fun Token
Parameters
Optionaloptions: PumpFunTokenOptionsReturns Promise<PumpfunLaunchResponse>
lend Assets
Parameters
Returns Promise<string>
mintNFT
Parameters
creators?: {
address: string;
share: number;
}[];
name: string;
sellerFeeBasisPoints?: number;
uri: string;
}
Optionalcreators?: {address: string;
share: number;
}[]
name: string
Optionalselleruri: string
Optionalrecipient: PublicKeyReturns Promise<MintCollectionNFTResponse>
openbook Create Market
Parameters
Returns Promise<string[]>
pyth Fetch Price
Parameters
Returns Promise<string>
raydium Create Amm V4
Parameters
Returns Promise<string>
raydium Create Clmm
Parameters
Returns Promise<string>
raydium Create Cpmm
Parameters
Returns Promise<string>
register Domain
Parameters
OptionalspaceKB: numberReturns Promise<string>
request Faucet Funds
Returns Promise<string>
resolve All Domains
Parameters
Returns Promise<undefined | PublicKey>
resolve Sol Domain
Parameters
Returns Promise<PublicKey>
rock Paper Scissors
Parameters
Returns Promise<string>
send Compressed Airdrop
Parameters
Returns Promise<string[]>
stake
Parameters
Returns Promise<string>
trade
Parameters
OptionalinputMint: PublicKeyReturns Promise<string>
transfer
Parameters
Optionalmint: PublicKeyReturns Promise<string>
Settings
On This Page
Constructors
Properties
Methods