From 6d4f468fb3f35a3e39e1db37f73f10f9a7cb33fa Mon Sep 17 00:00:00 2001 From: Arihant Bansal <17180950+arihantbansal@users.noreply.github.com> Date: Sun, 22 Dec 2024 01:30:29 +0530 Subject: [PATCH] fix --- README.md | 4 +- docs/assets/highlight.css | 15 +- docs/assets/search.js | 2 +- docs/classes/SolanaAgentKit.html | 13 +- docs/functions/createSolanaTools.html | 2 +- docs/index.html | 119 ++++++++----- docs/interfaces/CollectionDeployment.html | 4 +- docs/interfaces/CollectionOptions.html | 4 +- docs/interfaces/Creator.html | 4 +- docs/interfaces/FetchPriceResponse.html | 4 +- docs/interfaces/JupiterTokenData.html | 4 +- .../LuloAccountDetailsResponse.html | 4 +- .../interfaces/MintCollectionNFTResponse.html | 4 +- docs/interfaces/PumpFunTokenOptions.html | 4 +- docs/interfaces/PumpfunLaunchResponse.html | 4 +- docs/media/CONTRIBUTING.md | 154 +++++++++++++++++ guides/add_your_own_tool.md | 14 +- src/agent/index.ts | 4 +- src/index.ts | 4 +- src/langchain/index.ts | 161 +++++++++--------- src/tools/create_image.ts | 4 +- .../create_orca_single_sided_whirlpool.ts | 6 +- src/tools/deploy_collection.ts | 4 +- src/tools/deploy_token.ts | 4 +- src/tools/get_balance.ts | 4 +- src/tools/get_primary_domain.ts | 4 +- src/tools/get_tps.ts | 2 +- src/tools/launch_pumpfun_token.ts | 4 +- src/tools/lend.ts | 4 +- src/tools/mint_nft.ts | 4 +- src/tools/openbook_create_market.ts | 4 +- src/tools/raydium_create_ammV4.ts | 4 +- src/tools/raydium_create_clmm.ts | 4 +- src/tools/raydium_create_cpmm.ts | 4 +- src/tools/register_domain.ts | 4 +- src/tools/request_faucet_funds.ts | 4 +- src/tools/resolve_sol_domain.ts | 4 +- src/tools/send_compressed_airdrop.ts | 6 +- src/tools/stake_with_jup.ts | 4 +- src/tools/trade.ts | 4 +- src/tools/transfer.ts | 4 +- src/utils/send_tx.ts | 4 +- test/index.ts | 2 +- 43 files changed, 407 insertions(+), 213 deletions(-) create mode 100644 docs/media/CONTRIBUTING.md diff --git a/README.md b/README.md index 6e2df64..93c262c 100644 --- a/README.md +++ b/README.md @@ -78,10 +78,10 @@ npm install solana-agent-kit ## Quick Start ```typescript -import { SolanaAgent, createSolanaTools } from "solana-agent-kit"; +agent: SolanaAgentKit, createSolanaTools } from "solana-agent-kit"; // Initialize with private key and optional RPC URL -const agent = new SolanaAgent( +const agent = new SolanaAgentKit( "your-wallet-private-key-as-base58", "https://api.mainnet-beta.solana.com", "your-openai-api-key" diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css index 63010a9..fd488bf 100644 --- a/docs/assets/highlight.css +++ b/docs/assets/highlight.css @@ -5,8 +5,8 @@ --dark-hl-1: #D4D4D4; --light-hl-2: #A31515; --dark-hl-2: #CE9178; - --light-hl-3: #AF00DB; - --dark-hl-3: #C586C0; + --light-hl-3: #000000; + --dark-hl-3: #C8C8C8; --light-hl-4: #001080; --dark-hl-4: #9CDCFE; --light-hl-5: #008000; @@ -15,8 +15,10 @@ --dark-hl-6: #569CD6; --light-hl-7: #0070C1; --dark-hl-7: #4FC1FF; - --light-hl-8: #098658; - --dark-hl-8: #B5CEA8; + --light-hl-8: #AF00DB; + --dark-hl-8: #C586C0; + --light-hl-9: #098658; + --dark-hl-9: #B5CEA8; --light-code-background: #FFFFFF; --dark-code-background: #1E1E1E; } @@ -31,6 +33,7 @@ --hl-6: var(--light-hl-6); --hl-7: var(--light-hl-7); --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); --code-background: var(--light-code-background); } } @@ -44,6 +47,7 @@ --hl-6: var(--dark-hl-6); --hl-7: var(--dark-hl-7); --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); --code-background: var(--dark-code-background); } } @@ -57,6 +61,7 @@ --hl-6: var(--light-hl-6); --hl-7: var(--light-hl-7); --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); --code-background: var(--light-code-background); } @@ -70,6 +75,7 @@ --hl-6: var(--dark-hl-6); --hl-7: var(--dark-hl-7); --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); --code-background: var(--dark-code-background); } @@ -82,4 +88,5 @@ .hl-6 { color: var(--hl-6); } .hl-7 { color: var(--hl-7); } .hl-8 { color: var(--hl-8); } +.hl-9 { color: var(--hl-9); } pre, code { background: var(--code-background); } diff --git a/docs/assets/search.js b/docs/assets/search.js index 0bcb10d..8b3e63a 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/classes/SolanaAgentKit.html b/docs/classes/SolanaAgentKit.html index b767597..8179e3b 100644 --- a/docs/classes/SolanaAgentKit.html +++ b/docs/classes/SolanaAgentKit.html @@ -1,7 +1,7 @@ SolanaAgentKit | solana-agent-kit

Class SolanaAgentKit

Main class for interacting with Solana blockchain -Provides a unified interface for token operations, NFT management, and trading

+Provides a unified interface for token operations, NFT management, trading and more

SolanaAgentKit

-

Constructors

Constructors

Properties

connection openai_api_key wallet @@ -9,6 +9,7 @@ Provides a unified interface for token operations, NFT management, and trading

Methods

createOrcaSingleSidedWhirlpool deployCollection deployToken +fetchTokenPrice getBalance getPrimaryDomain getTokenDataByAddress @@ -28,7 +29,7 @@ Provides a unified interface for token operations, NFT management, and tradingstake trade transfer -

Constructors

  • Parameters

    • private_key: string
    • rpc_url: string = "https://api.mainnet-beta.solana.com"
    • openai_api_key: string

    Returns SolanaAgentKit

Properties

connection: Connection

Solana RPC connection

-
openai_api_key: string
wallet: Keypair

Wallet keypair for signing transactions

-
wallet_address: PublicKey

Public key of the wallet

-

Methods

  • Parameters

    • depositTokenAmount: BN
    • depositTokenMint: PublicKey
    • otherTokenMint: PublicKey
    • initialPrice: Decimal
    • maxPrice: Decimal
    • feeTier:
          | 0.01
          | 0.02
          | 0.04
          | 0.05
          | 0.16
          | 0.3
          | 0.65
          | 1
          | 2

    Returns Promise<string>

  • Parameters

    • name: string
    • uri: string
    • symbol: string
    • decimals: number = DEFAULT_OPTIONS.TOKEN_DECIMALS
    • OptionalinitialSupply: number

    Returns Promise<{
        mint: PublicKey;
    }>

  • Parameters

    • Optionaltoken_address: PublicKey

    Returns Promise<null | number>

  • Parameters

    • account: PublicKey

    Returns Promise<string>

  • Parameters

    • tokenName: string
    • tokenTicker: string
    • description: string
    • imageUrl: string
    • Optionaloptions: PumpFunTokenOptions

    Returns Promise<{
        metadataUri: any;
        mint: string;
        signature: string;
    }>

  • Parameters

    • amount: number

    Returns Promise<string>

  • Parameters

    • collectionMint: PublicKey
    • metadata: {
          creators?: {
              address: string;
              share: number;
          }[];
          name: string;
          sellerFeeBasisPoints?: number;
          uri: string;
      }
      • Optionalcreators?: {
            address: string;
            share: number;
        }[]
      • name: string
      • OptionalsellerFeeBasisPoints?: number
      • uri: string
    • Optionalrecipient: PublicKey

    Returns Promise<MintCollectionNFTResponse>

  • Parameters

    • baseMint: PublicKey
    • quoteMint: PublicKey
    • lotSize: number = 1
    • tickSize: number = 0.01

    Returns Promise<string[]>

  • Parameters

    • marketId: PublicKey
    • baseAmount: BN
    • quoteAmount: BN
    • startTime: BN

    Returns Promise<string>

  • Parameters

    • mint1: PublicKey
    • mint2: PublicKey
    • configId: PublicKey
    • initialPrice: Decimal
    • startTime: BN

    Returns Promise<string>

  • Parameters

    • mint1: PublicKey
    • mint2: PublicKey
    • configId: PublicKey
    • mintAAmount: BN
    • mintBAmount: BN
    • startTime: BN

    Returns Promise<string>

  • Parameters

    • name: string
    • OptionalspaceKB: number

    Returns Promise<string>

  • Returns Promise<string>

  • Parameters

    • domain: string

    Returns Promise<PublicKey>

  • Parameters

    • mintAddress: string
    • amount: number
    • decimals: number
    • recipients: string[]
    • priorityFeeInLamports: number
    • shouldLog: boolean

    Returns Promise<string[]>

  • Parameters

    • amount: number

    Returns Promise<string>

  • Parameters

    • outputMint: PublicKey
    • inputAmount: number
    • OptionalinputMint: PublicKey
    • slippageBps: number = DEFAULT_OPTIONS.SLIPPAGE_BPS

    Returns Promise<string>

  • Parameters

    • to: PublicKey
    • amount: number
    • Optionalmint: PublicKey

    Returns Promise<string>

+

Constructors

  • Parameters

    • private_key: string
    • rpc_url: string = "https://api.mainnet-beta.solana.com"
    • openai_api_key: string

    Returns SolanaAgentKit

Properties

connection: Connection

Solana RPC connection

+
openai_api_key: string
wallet: Keypair

Wallet keypair for signing transactions

+
wallet_address: PublicKey

Public key of the wallet

+

Methods

  • Parameters

    • depositTokenAmount: BN
    • depositTokenMint: PublicKey
    • otherTokenMint: PublicKey
    • initialPrice: Decimal
    • maxPrice: Decimal
    • feeTier:
          | 0.01
          | 0.02
          | 0.04
          | 0.05
          | 0.16
          | 0.3
          | 0.65
          | 1
          | 2

    Returns Promise<string>

  • Parameters

    • name: string
    • uri: string
    • symbol: string
    • decimals: number = DEFAULT_OPTIONS.TOKEN_DECIMALS
    • OptionalinitialSupply: number

    Returns Promise<{
        mint: PublicKey;
    }>

  • Parameters

    • mint: string

    Returns Promise<string>

  • Parameters

    • Optionaltoken_address: PublicKey

    Returns Promise<null | number>

  • Parameters

    • account: PublicKey

    Returns Promise<string>

  • Parameters

    • amount: number

    Returns Promise<string>

  • Parameters

    • collectionMint: PublicKey
    • metadata: {
          creators?: {
              address: string;
              share: number;
          }[];
          name: string;
          sellerFeeBasisPoints?: number;
          uri: string;
      }
      • Optionalcreators?: {
            address: string;
            share: number;
        }[]
      • name: string
      • OptionalsellerFeeBasisPoints?: number
      • uri: string
    • Optionalrecipient: PublicKey

    Returns Promise<MintCollectionNFTResponse>

  • Parameters

    • baseMint: PublicKey
    • quoteMint: PublicKey
    • lotSize: number = 1
    • tickSize: number = 0.01

    Returns Promise<string[]>

  • Parameters

    • marketId: PublicKey
    • baseAmount: BN
    • quoteAmount: BN
    • startTime: BN

    Returns Promise<string>

  • Parameters

    • mint1: PublicKey
    • mint2: PublicKey
    • configId: PublicKey
    • initialPrice: Decimal
    • startTime: BN

    Returns Promise<string>

  • Parameters

    • mint1: PublicKey
    • mint2: PublicKey
    • configId: PublicKey
    • mintAAmount: BN
    • mintBAmount: BN
    • startTime: BN

    Returns Promise<string>

  • Parameters

    • name: string
    • OptionalspaceKB: number

    Returns Promise<string>

  • Returns Promise<string>

  • Parameters

    • domain: string

    Returns Promise<PublicKey>

  • Parameters

    • mintAddress: string
    • amount: number
    • decimals: number
    • recipients: string[]
    • priorityFeeInLamports: number
    • shouldLog: boolean

    Returns Promise<string[]>

  • Parameters

    • amount: number

    Returns Promise<string>

  • Parameters

    • outputMint: PublicKey
    • inputAmount: number
    • OptionalinputMint: PublicKey
    • slippageBps: number = DEFAULT_OPTIONS.SLIPPAGE_BPS

    Returns Promise<string>

  • Parameters

    • to: PublicKey
    • amount: number
    • Optionalmint: PublicKey

    Returns Promise<string>

diff --git a/docs/functions/createSolanaTools.html b/docs/functions/createSolanaTools.html index ca5e484..1f177c1 100644 --- a/docs/functions/createSolanaTools.html +++ b/docs/functions/createSolanaTools.html @@ -1 +1 @@ -createSolanaTools | solana-agent-kit

Function createSolanaTools

  • Parameters

    Returns (
        | SolanaBalanceTool
        | SolanaTransferTool
        | SolanaDeployTokenTool
        | SolanaDeployCollectionTool
        | SolanaMintNFTTool
        | SolanaTradeTool
        | SolanaRequestFundsTool
        | SolanaRegisterDomainTool
        | SolanaResolveDomainTool
        | SolanaGetDomainTool
        | SolanaGetWalletAddressTool
        | SolanaPumpfunTokenLaunchTool
        | SolanaCreateImageTool
        | SolanaLendAssetTool
        | SolanaTPSCalculatorTool
        | SolanaStakeTool
        | SolanaFetchPriceTool
        | SolanaTokenDataTool
        | SolanaTokenDataByTickerTool
        | SolanaCompressedAirdropTool
        | SolanaCreateSingleSidedWhirlpoolTool
        | SolanaRaydiumCreateAmmV4
        | SolanaRaydiumCreateClmm
        | SolanaRaydiumCreateCpmm
        | SolanaOpenbookCreateMarket)[]

+createSolanaTools | solana-agent-kit

Function createSolanaTools

  • Parameters

    Returns (
        | SolanaBalanceTool
        | SolanaTransferTool
        | SolanaDeployTokenTool
        | SolanaDeployCollectionTool
        | SolanaMintNFTTool
        | SolanaTradeTool
        | SolanaRequestFundsTool
        | SolanaRegisterDomainTool
        | SolanaResolveDomainTool
        | SolanaGetDomainTool
        | SolanaGetWalletAddressTool
        | SolanaPumpfunTokenLaunchTool
        | SolanaCreateImageTool
        | SolanaLendAssetTool
        | SolanaTPSCalculatorTool
        | SolanaStakeTool
        | SolanaFetchPriceTool
        | SolanaTokenDataTool
        | SolanaTokenDataByTickerTool
        | SolanaCompressedAirdropTool
        | SolanaCreateSingleSidedWhirlpoolTool
        | SolanaRaydiumCreateAmmV4
        | SolanaRaydiumCreateClmm
        | SolanaRaydiumCreateCpmm
        | SolanaOpenbookCreateMarket)[]

diff --git a/docs/index.html b/docs/index.html index e7acd0e..c39a52f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,80 +1,112 @@ -solana-agent-kit

solana-agent-kit

Solana Agent Kit

A powerful toolkit for interacting with the Solana blockchain, providing easy-to-use functions for token operations, NFT management, and trading. Now integrated with LangChain for enhanced functionality.

-
    -
  • -

    🪙 Token Operations

    +solana-agent-kit

    solana-agent-kit

    +

    Solana Agent Kit

    +

    Solana Agent Kit Cover 1 (3)

    +

    An open-source toolkit for connecting AI agents to Solana protocols. Now, any agent, using any model can autonomously perform 15+ Solana actions:

      -
    • Deploy new SPL tokens
    • -
    • Transfer SOL and SPL tokens
    • -
    • Check token balances
    • +
    • Trade tokens
    • +
    • Launch new tokens
    • +
    • Lend assets
    • +
    • Send compressed airdrops
    • +
    • Execute blinks
    • +
    • Launch tokens on AMMs
    • +
    • 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.

    +
      +
    • +

      Token Operations

      +
        +
      • Deploy SPL tokens by Metaplex
      • +
      • Transfer assets
      • +
      • Balance checks
      • Stake SOL
      • +
      • Zk compressed Airdrop by Light Protocol and Helius
    • -

      🖼️ NFT Management

      +

      NFT Management via Metaplex

        -
      • Deploy NFT collections
      • -
      • Mint NFTs to collections
      • -
      • Manage metadata and royalties
      • +
      • Collection deployment
      • +
      • NFT minting
      • +
      • Metadata management
      • +
      • Royalty configuration
    • -

      💱 Trading

      +

      DeFi Integration

        -
      • Integrated Jupiter Exchange support
      • -
      • Token swaps with customizable slippage
      • -
      • Direct routing options
      • +
      • Jupiter Exchange swaps
      • +
      • Launch on Pump via PumpPortal
      • +
      • Raydium pool creation (CPMM, CLMM, AMMv4)
      • +
      • Orca whirlpool integration
      • +
      • Meteora Dynamic AMM, DLMM Pool, and Alpga Vault
      • +
      • Openbook market creation
      • +
      • Register and Resolve SNS
      • +
      • Jito Bundles
    • -

      🏦 Yield Farming

      +

      Solana Blinks

        -
      • Lend idle assets to earn interest with Lulo
      • +
      • Lending by Lulo
      • +
      • Send Arcade Games
      • +
      • JupSOL staking
      • +
      +
    • +
    +
      +
    • +

      LangChain Integration

      +
        +
      • Ready-to-use LangChain tools for blockchain operations
      • +
      • Autonomous agent support with React framework
      • +
      • Memory management for persistent interactions
      • +
      • Streaming responses for real-time feedback
    • -

      🔗 LangChain Integration

      +

      Autonomous Modes

        -
      • Utilize LangChain tools for enhanced blockchain interactions
      • -
      • Access a suite of tools for balance checks, transfers, token deployments, and more
      • +
      • Interactive chat mode for guided operations
      • +
      • Autonomous mode for independent agent actions
      • +
      • Configurable action intervals
      • +
      • Built-in error handling and recovery
      • +
      +
    • +
    • +

      AI Tools

      +
        +
      • DALL-E integration for NFT artwork generation
      • +
      • Natural language processing for blockchain commands
      • +
      • Price feed integration for market analysis
      • +
      • Automated decision-making capabilities
    -
    npm install solana-agent-kit
    +
    npm install solana-agent-kit
     
    -
    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); +
    agent: 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);
    -
    import { deploy_token } from "solana-agent-kit";

    const result = await deploy_token(
    agent,
    9, // decimals
    1000000 // initial supply
    );

    console.log("Token Mint Address:", result.mint.toString()); +
    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());
    -
    import { deploy_collection } from "solana-agent-kit";

    const collection = await deploy_collection(agent, {
    name: "My NFT Collection",
    uri: "https://arweave.net/metadata.json",
    royaltyBasisPoints: 500, // 5%
    creators: [
    {
    address: "creator-wallet-address",
    percentage: 100,
    },
    ],
    }); +
    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,
    },
    ],
    });
    -
    import { trade } from "solana-agent-kit";
    import { PublicKey } from "@solana/web3.js";

    const signature = await trade(
    agent,
    new PublicKey("target-token-mint"),
    100, // amount
    new PublicKey("source-token-mint"),
    300 // 3% slippage
    ); +
    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
    );
    -
    import { lendAsset } from "solana-agent-kit";
    import { PublicKey } from "@solana/web3.js";

    const signature = await lendAsset(
    agent,
    100 // amount
    ); +
    import { PublicKey } from "@solana/web3.js";

    const signature = await agent.lendAssets(
    100 // amount of USDC to lend
    );
    -
    import { stakeWithJup } from "solana-agent-kit";

    const signature = await stakeWithJup(
    agent,
    1 // amount in SOL
    ); +
    const signature = await agent.stake(
    1 // amount in SOL to stake
    );
    -
    import { fetchPrice } from "solana-agent-kit";

    const price = await fetchPrice(
    agent,
    "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN" // Token mint address
    );

    console.log("Price in USDC:", price); +
    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
    );
    })();
    -
    import {
    sendCompressedAirdrop,
    getAirdropCostEstimate,
    } from "solana-agent-kit";
    import { PublicKey } from "@solana/web3.js";

    (async () => {
    console.log(
    "~Airdrop cost estimate:",
    getAirdropCostEstimate(
    1000, // recipients
    30_000 // priority fee in lamports
    )
    );

    const signature = await sendCompressedAirdrop(
    agent,
    new PublicKey("JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN"), // mint
    42, // amount per recipient
    [
    new PublicKey("1nc1nerator11111111111111111111111111111111"),
    // ... add more recipients
    ],
    30_000 // priority fee in lamports
    );
    })(); -
    - -

    Deploy a new SPL token with optional initial supply. If not specified, decimals default to 9.

    -

    Create a new NFT collection with customizable metadata and royalties.

    -

    Mint a new NFT as part of an existing collection.

    -

    Transfer SOL or SPL tokens to a recipient.

    -

    Swap tokens using Jupiter Exchange integration.

    -

    Check SOL or token balance for the agent's wallet.

    -

    Lend idle assets to earn interest with Lulo.

    -

    Stake SOL with Jupiter to earn rewards.

    -

    Send an SPL token airdrop to many recipients at low cost via ZK Compression.

    The toolkit relies on several key Solana and Metaplex libraries:

    • @solana/web3.js
    • @@ -85,7 +117,8 @@
    • @lightprotocol/compressed-token
    • @lightprotocol/stateless.js
    -

    Contributions are welcome! Please feel free to submit a Pull Request.

    -

    ISC License

    +

    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.

    +

    MIT License

    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/CollectionDeployment.html b/docs/interfaces/CollectionDeployment.html index 0438e92..6999f92 100644 --- a/docs/interfaces/CollectionDeployment.html +++ b/docs/interfaces/CollectionDeployment.html @@ -1,3 +1,3 @@ -CollectionDeployment | solana-agent-kit

Interface CollectionDeployment

interface CollectionDeployment {
    collectionAddress: PublicKey;
    signature: Uint8Array<ArrayBufferLike>;
}

Properties

collectionAddress +CollectionDeployment | solana-agent-kit

Interface CollectionDeployment

interface CollectionDeployment {
    collectionAddress: PublicKey;
    signature: Uint8Array<ArrayBufferLike>;
}

Properties

collectionAddress: PublicKey
signature: Uint8Array<ArrayBufferLike>
+

Properties

collectionAddress: PublicKey
signature: Uint8Array<ArrayBufferLike>
diff --git a/docs/interfaces/CollectionOptions.html b/docs/interfaces/CollectionOptions.html index 997e32b..29b5bfc 100644 --- a/docs/interfaces/CollectionOptions.html +++ b/docs/interfaces/CollectionOptions.html @@ -1,5 +1,5 @@ -CollectionOptions | solana-agent-kit

Interface CollectionOptions

interface CollectionOptions {
    creators?: Creator[];
    name: string;
    royaltyBasisPoints?: number;
    uri: string;
}

Properties

creators? +CollectionOptions | solana-agent-kit

Interface CollectionOptions

interface CollectionOptions {
    creators?: Creator[];
    name: string;
    royaltyBasisPoints?: number;
    uri: string;
}

Properties

creators?: Creator[]
name: string
royaltyBasisPoints?: number
uri: string
+

Properties

creators?: Creator[]
name: string
royaltyBasisPoints?: number
uri: string
diff --git a/docs/interfaces/Creator.html b/docs/interfaces/Creator.html index 72a3136..38c524a 100644 --- a/docs/interfaces/Creator.html +++ b/docs/interfaces/Creator.html @@ -1,3 +1,3 @@ -Creator | solana-agent-kit

Interface Creator

interface Creator {
    address: string;
    percentage: number;
}

Properties

address +Creator | solana-agent-kit

Interface Creator

interface Creator {
    address: string;
    percentage: number;
}

Properties

Properties

address: string
percentage: number
+

Properties

address: string
percentage: number
diff --git a/docs/interfaces/FetchPriceResponse.html b/docs/interfaces/FetchPriceResponse.html index f2ffea8..37c020c 100644 --- a/docs/interfaces/FetchPriceResponse.html +++ b/docs/interfaces/FetchPriceResponse.html @@ -1,6 +1,6 @@ -FetchPriceResponse | solana-agent-kit

Interface FetchPriceResponse

interface FetchPriceResponse {
    code?: string;
    message?: string;
    priceInUSDC?: string;
    status: "success" | "error";
    tokenId?: string;
}

Properties

code? +FetchPriceResponse | solana-agent-kit

Interface FetchPriceResponse

interface FetchPriceResponse {
    code?: string;
    message?: string;
    priceInUSDC?: string;
    status: "success" | "error";
    tokenId?: string;
}

Properties

code?: string
message?: string
priceInUSDC?: string
status: "success" | "error"
tokenId?: string
+

Properties

code?: string
message?: string
priceInUSDC?: string
status: "success" | "error"
tokenId?: string
diff --git a/docs/interfaces/JupiterTokenData.html b/docs/interfaces/JupiterTokenData.html index 1fbabda..a162800 100644 --- a/docs/interfaces/JupiterTokenData.html +++ b/docs/interfaces/JupiterTokenData.html @@ -1,4 +1,4 @@ -JupiterTokenData | solana-agent-kit

Interface JupiterTokenData

interface JupiterTokenData {
    address: string;
    daily_volume: number;
    decimals: number;
    extensions: {
        coingeckoId?: string;
    };
    freeze_authority: null | string;
    logoURI: string;
    mint_authority: null | string;
    name: string;
    permanent_delegate: null | string;
    symbol: string;
    tags: string[];
}

Properties

address +JupiterTokenData | solana-agent-kit

Interface JupiterTokenData

interface JupiterTokenData {
    address: string;
    daily_volume: number;
    decimals: number;
    extensions: {
        coingeckoId?: string;
    };
    freeze_authority: null | string;
    logoURI: string;
    mint_authority: null | string;
    name: string;
    permanent_delegate: null | string;
    symbol: string;
    tags: string[];
}

Properties

address: string
daily_volume: number
decimals: number
extensions: {
    coingeckoId?: string;
}
freeze_authority: null | string
logoURI: string
mint_authority: null | string
name: string
permanent_delegate: null | string
symbol: string
tags: string[]
+

Properties

address: string
daily_volume: number
decimals: number
extensions: {
    coingeckoId?: string;
}
freeze_authority: null | string
logoURI: string
mint_authority: null | string
name: string
permanent_delegate: null | string
symbol: string
tags: string[]
diff --git a/docs/interfaces/LuloAccountDetailsResponse.html b/docs/interfaces/LuloAccountDetailsResponse.html index 0aafae9..f80d34c 100644 --- a/docs/interfaces/LuloAccountDetailsResponse.html +++ b/docs/interfaces/LuloAccountDetailsResponse.html @@ -1,6 +1,6 @@ LuloAccountDetailsResponse | solana-agent-kit

Interface LuloAccountDetailsResponse

Lulo Account Details response format

-
interface LuloAccountDetailsResponse {
    interestEarned: number;
    realtimeApy: number;
    settings: {
        allowedProtocols: null | string;
        homebase: null | string;
        minimumRate: string;
        owner: string;
    };
    totalValue: number;
}

Properties

interface LuloAccountDetailsResponse {
    interestEarned: number;
    realtimeApy: number;
    settings: {
        allowedProtocols: null | string;
        homebase: null | string;
        minimumRate: string;
        owner: string;
    };
    totalValue: number;
}

Properties

interestEarned: number
realtimeApy: number
settings: {
    allowedProtocols: null | string;
    homebase: null | string;
    minimumRate: string;
    owner: string;
}
totalValue: number
+

Properties

interestEarned: number
realtimeApy: number
settings: {
    allowedProtocols: null | string;
    homebase: null | string;
    minimumRate: string;
    owner: string;
}
totalValue: number
diff --git a/docs/interfaces/MintCollectionNFTResponse.html b/docs/interfaces/MintCollectionNFTResponse.html index 4c85a86..f5a840f 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;
}

Properties

metadata +MintCollectionNFTResponse | solana-agent-kit

Interface MintCollectionNFTResponse

interface MintCollectionNFTResponse {
    metadata: PublicKey;
    mint: PublicKey;
}

Properties

Properties

metadata: PublicKey
mint: PublicKey
+

Properties

metadata: PublicKey
mint: PublicKey
diff --git a/docs/interfaces/PumpFunTokenOptions.html b/docs/interfaces/PumpFunTokenOptions.html index d904b0c..fd2a37f 100644 --- a/docs/interfaces/PumpFunTokenOptions.html +++ b/docs/interfaces/PumpFunTokenOptions.html @@ -1,7 +1,7 @@ -PumpFunTokenOptions | solana-agent-kit

Interface PumpFunTokenOptions

interface PumpFunTokenOptions {
    initialLiquiditySOL?: number;
    priorityFee?: number;
    slippageBps?: number;
    telegram?: string;
    twitter?: string;
    website?: string;
}

Properties

initialLiquiditySOL? +PumpFunTokenOptions | solana-agent-kit

Interface PumpFunTokenOptions

interface PumpFunTokenOptions {
    initialLiquiditySOL?: number;
    priorityFee?: number;
    slippageBps?: number;
    telegram?: string;
    twitter?: string;
    website?: string;
}

Properties

initialLiquiditySOL?: number
priorityFee?: number
slippageBps?: number
telegram?: string
twitter?: string
website?: string
+

Properties

initialLiquiditySOL?: number
priorityFee?: number
slippageBps?: number
telegram?: string
twitter?: string
website?: string
diff --git a/docs/interfaces/PumpfunLaunchResponse.html b/docs/interfaces/PumpfunLaunchResponse.html index 7e65f2a..da5a287 100644 --- a/docs/interfaces/PumpfunLaunchResponse.html +++ b/docs/interfaces/PumpfunLaunchResponse.html @@ -1,5 +1,5 @@ -PumpfunLaunchResponse | solana-agent-kit

Interface PumpfunLaunchResponse

interface PumpfunLaunchResponse {
    error?: string;
    metadataUri?: string;
    mint: string;
    signature: string;
}

Properties

error? +PumpfunLaunchResponse | solana-agent-kit

Interface PumpfunLaunchResponse

interface PumpfunLaunchResponse {
    error?: string;
    metadataUri?: string;
    mint: string;
    signature: string;
}

Properties

error?: string
metadataUri?: string
mint: string
signature: string
+

Properties

error?: string
metadataUri?: string
mint: string
signature: string
diff --git a/docs/media/CONTRIBUTING.md b/docs/media/CONTRIBUTING.md new file mode 100644 index 0000000..9cc1837 --- /dev/null +++ b/docs/media/CONTRIBUTING.md @@ -0,0 +1,154 @@ +# Contributing to Solana Agent Kit + +First off, thank you for considering contributing to Solana Agent Kit! 🎉 Your contributions are **greatly appreciated**. + +## Table of Contents + +- [Contributing to Solana Agent Kit](#contributing-to-solana-agent-kit) + - [Table of Contents](#table-of-contents) + - [Code of Conduct](#code-of-conduct) + - [How Can I Contribute?](#how-can-i-contribute) + - [Reporting Bugs](#reporting-bugs) + - [Suggesting Enhancements](#suggesting-enhancements) + - [Your First Code Contribution](#your-first-code-contribution) + - [Pull Requests](#pull-requests) + - [Style Guides](#style-guides) + - [Code Style](#code-style) + - [Commit Messages](#commit-messages) + - [Naming Conventions](#naming-conventions) + - [Development Setup](#development-setup) + - [Prerequisites](#prerequisites) + - [Installation](#installation) + - [Building the Project](#building-the-project) + - [Running Tests](#running-tests) + - [Generating Documentation](#generating-documentation) + - [Security](#security) + - [License](#license) + +## Code of Conduct + +This project adheres to the [Contributor Covenant Code of Conduct](https://www.contributor-covenant.org/version/2/0/code_of_conduct/). By participating, you are expected to uphold this code. Please report unacceptable behavior to [aryan@sendai.fun](mailto:aryan@sendai.fun). + +## How Can I Contribute? + +### Reporting Bugs + +**Great**! Opening an issue is the best way to help us improve. Here's how you can report a bug: + +1. **Search** the [existing issues](https://github.com/sendaifun/solana-agent-kit/issues) to make sure it hasn't been reported. +2. **Open a new issue** and fill out the template with as much information as possible. +3. **Provide reproduction steps** if applicable. + +### Suggesting Enhancements + +We welcome your ideas for improving Solana Agent Kit! To suggest an enhancement: + +1. **Search** the [existing issues](https://github.com/sendaifun/solana-agent-kit/issues) to see if it's already been suggested. +2. **Open a new issue** and describe your idea in detail. + +### Your First Code Contribution + +Unsure where to start? You can help out by: + +- Fixing simple bugs. +- Improving documentation. +- Adding tests. + +Check out the [Good First Issues](https://github.com/sendaifun/solana-agent-kit/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) to get started! + +### Pull Requests + +1. **Fork** the repository. +2. **Create** a new branch for your feature or bugfix. + ```bash + git checkout -b feature/your-feature-name + ``` +3. **Commit** your changes with clear and descriptive messages. +4. **Push** to your fork. + ```bash + git push origin feature/your-feature-name + ``` +5. **Open a Pull Request** against the `main` branch of this repository. + +## Style Guides + +### Code Style + +- **Language**: TypeScript +- **Formatting**: Follow the existing codebase formatting. Consider using [Prettier](https://prettier.io/) for consistent code formatting. +- **Code Quality**: Adhere to the code quality rules defined in `.eslintrc`. Ensure all checks pass before submitting a PR. + +### Commit Messages + +Use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) for your commit messages. Examples: + +- `feat: add ability to deploy new SPL token` +- `fix: handle edge case when deploying collection` +- `docs: update README with new usage examples` + +### Naming Conventions + +- **Variables and Functions**: `camelCase` +- **Classes and Types**: `PascalCase` +- **Constants**: `UPPER_SNAKE_CASE` + +## Development Setup + +### Prerequisites + +- **Node.js**: v23.x or higher +- **npm**: v10.x or higher +- **Git**: Installed and configured + +### Installation + +1. **Clone** the repository: + ```bash + git clone https://github.com/yourusername/solana-agent-kit.git + ``` +2. **Navigate** to the project directory: + ```bash + cd solana-agent-kit + ``` +3. **Install** dependencies: + ```bash + pnpm install + ``` + +### Building the Project + +To compile the TypeScript code: + +```bash +pnpm run build +``` + +### Running Tests + +To execute the test suite: + +```bash +pnpm run test +``` + +### Generating Documentation + +To generate the project documentation using TypeDoc: + +```bash +npm run docs +``` + +The documentation will be available in the `docs/` directory. + +## Security + +This toolkit handles sensitive information such as private keys and API keys. **Ensure you never commit `.env` files or any sensitive data**. Review the `.gitignore` to confirm that sensitive files are excluded. + +For security vulnerabilities, please follow the [responsible disclosure](mailto:aryan@sendai.fun) process. + +## License + +This project is licensed under the [ISC License](LICENSE). + +--- diff --git a/guides/add_your_own_tool.md b/guides/add_your_own_tool.md index 71bfb7c..47782cb 100644 --- a/guides/add_your_own_tool.md +++ b/guides/add_your_own_tool.md @@ -21,19 +21,19 @@ Create a new TypeScript file in the `src/tools/` directory for your tool (e.g., ```typescript:src/tools/custom_tool.ts import { Tool } from "langchain/tools"; -import { SolanaAgent } from "../agent"; +import { SolanaAgentKit } from "../agent"; export class CustomTool extends Tool { name = "custom_tool"; description = "Description of what the custom tool does."; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } protected async _call(input: string): Promise { try { - const result = await this.solanaAgent.customFunction(input); + const result = await this.solanaKit.customFunction(input); return JSON.stringify({ status: "success", message: "Custom tool executed successfully", @@ -87,7 +87,7 @@ export function createSolanaTools(agent: SolanaAgentKit) { ### 6. Usage Example ```typescript -import { SolanaAgent, createSolanaTools } from "solana-agent-kit"; +agent: SolanaAgentKit, createSolanaTools } from "solana-agent-kit"; const agent = new SolanaAgent( "your-wallet-private-key-as-base58", @@ -118,19 +118,19 @@ Here's a complete example of implementing a tool to fetch token prices: ```typescript:src/tools/fetch_token_price.ts import { Tool } from "langchain/tools"; -import { SolanaAgent } from "../agent"; +import { SolanaAgentKit } from "../agent"; export class FetchTokenPriceTool extends Tool { name = "fetch_token_price"; description = "Fetches the current price of a specified token."; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } protected async _call(tokenSymbol: string): Promise { try { - const price = await this.solanaAgent.getTokenPrice(tokenSymbol); + const price = await this.solanaKit.getTokenPrice(tokenSymbol); return JSON.stringify({ status: "success", message: `Price fetched successfully for ${tokenSymbol}.`, diff --git a/src/agent/index.ts b/src/agent/index.ts index f40e18d..44eae4f 100644 --- a/src/agent/index.ts +++ b/src/agent/index.ts @@ -42,12 +42,12 @@ import { BN } from "@coral-xyz/anchor"; * Main class for interacting with Solana blockchain * Provides a unified interface for token operations, NFT management, trading and more * - * @class SolanaAgent + * @class SolanaAgentKit * @property {Connection} connection - Solana RPC connection * @property {Keypair} wallet - Wallet keypair for signing transactions * @property {PublicKey} wallet_address - Public key of the wallet */ -export class SolanaAgent { +export class SolanaAgentKit { public connection: Connection; public wallet: Keypair; public wallet_address: PublicKey; diff --git a/src/index.ts b/src/index.ts index 8c267a1..1b4116f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,7 +1,7 @@ -import { SolanaAgent } from "./agent"; +import { SolanaAgentKit } from "./agent"; import { createSolanaTools } from "./langchain"; -export { SolanaAgent, createSolanaTools }; +export { SolanaAgentKit, createSolanaTools }; // Optional: Export types that users might need export * from "./types"; diff --git a/src/langchain/index.ts b/src/langchain/index.ts index 11a0ff1..c5db27c 100644 --- a/src/langchain/index.ts +++ b/src/langchain/index.ts @@ -1,7 +1,7 @@ import { PublicKey } from "@solana/web3.js"; import Decimal from "decimal.js"; import { Tool } from "langchain/tools"; -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; import { create_image } from "../tools/create_image"; import { BN } from "@coral-xyz/anchor"; import { FEE_TIERS } from "../tools"; @@ -17,14 +17,14 @@ export class SolanaBalanceTool extends Tool { Inputs: tokenAddress: string, eg "So11111111111111111111111111111111111111112" (optional)`; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } protected async _call(input: string): Promise { try { const tokenAddress = input ? new PublicKey(input) : undefined; - const balance = await this.solanaAgent.getBalance(tokenAddress); + const balance = await this.solanaKit.getBalance(tokenAddress); return JSON.stringify({ status: "success", @@ -50,7 +50,7 @@ export class SolanaTransferTool extends Tool { amount: number, eg 1 (required) mint?: string, eg "So11111111111111111111111111111111111111112" or "SENDdRQtYMWaQrBroBrJ2Q53fgVuq95CV9UPGEvpCxa" (optional)`; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -63,7 +63,7 @@ export class SolanaTransferTool extends Tool { ? new PublicKey(parsedInput.mint) : undefined; - const tx = await this.solanaAgent.transfer( + const tx = await this.solanaKit.transfer( recipient, parsedInput.amount, mintAddress, @@ -98,7 +98,7 @@ export class SolanaDeployTokenTool extends Tool { decimals?: number, eg 9 (optional, defaults to 9) initialSupply?: number, eg 1000000 (optional)`; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -106,7 +106,7 @@ export class SolanaDeployTokenTool extends Tool { try { const parsedInput = JSON.parse(input); - const result = await this.solanaAgent.deployToken( + const result = await this.solanaKit.deployToken( parsedInput.name, parsedInput.uri, parsedInput.symbol, @@ -139,7 +139,7 @@ export class SolanaDeployCollectionTool extends Tool { uri: string, eg "https://example.com/collection.json" (required) royaltyBasisPoints?: number, eg 500 for 5% (optional)`; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -147,7 +147,7 @@ export class SolanaDeployCollectionTool extends Tool { try { const parsedInput = JSON.parse(input); - const result = await this.solanaAgent.deployCollection(parsedInput); + const result = await this.solanaKit.deployCollection(parsedInput); return JSON.stringify({ status: "success", @@ -173,9 +173,9 @@ export class SolanaMintNFTTool extends Tool { collectionMint: string, eg "J1S9H3QjnRtBbbuD4HjPV6RpRhwuk4zKbxsnCHuTgh9w" (required) - The address of the collection to mint into name: string, eg "My NFT" (required) uri: string, eg "https://example.com/nft.json" (required) - recipient?: string, eg "9aUn5swQzUTRanaaTwmszxiv89cvFwUCjEBv1vZCoT1u" (optional) - The wallet to receive the NFT, defaults to agent's wallet which is ${this.solanaAgent.wallet_address.toString()}`; + recipient?: string, eg "9aUn5swQzUTRanaaTwmszxiv89cvFwUCjEBv1vZCoT1u" (optional) - The wallet to receive the NFT, defaults to agent's wallet which is ${this.solanaKit.wallet_address.toString()}`; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -183,7 +183,7 @@ export class SolanaMintNFTTool extends Tool { try { const parsedInput = JSON.parse(input); - const result = await this.solanaAgent.mintNFT( + const result = await this.solanaKit.mintNFT( new PublicKey(parsedInput.collectionMint), { name: parsedInput.name, @@ -191,7 +191,7 @@ export class SolanaMintNFTTool extends Tool { }, parsedInput.recipient ? new PublicKey(parsedInput.recipient) - : this.solanaAgent.wallet_address, + : this.solanaKit.wallet_address, ); return JSON.stringify({ @@ -225,7 +225,7 @@ export class SolanaTradeTool extends Tool { inputMint?: string, eg "So11111111111111111111111111111111111111112" (optional) slippageBps?: number, eg 100 (optional)`; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -233,7 +233,7 @@ export class SolanaTradeTool extends Tool { try { const parsedInput = JSON.parse(input); - const tx = await this.solanaAgent.trade( + const tx = await this.solanaKit.trade( new PublicKey(parsedInput.outputMint), parsedInput.inputAmount, parsedInput.inputMint @@ -264,18 +264,18 @@ export class SolanaRequestFundsTool extends Tool { name = "solana_request_funds"; description = "Request SOL from Solana faucet (devnet/testnet only)"; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } protected async _call(_input: string): Promise { try { - await this.solanaAgent.requestFaucetFunds(); + await this.solanaKit.requestFaucetFunds(); return JSON.stringify({ status: "success", message: "Successfully requested faucet funds", - network: this.solanaAgent.connection.rpcEndpoint.split("/")[2], + network: this.solanaKit.connection.rpcEndpoint.split("/")[2], }); } catch (error: any) { return JSON.stringify({ @@ -296,7 +296,7 @@ export class SolanaRegisterDomainTool extends Tool { spaceKB: number, eg 1 (optional, default is 1) `; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -317,7 +317,7 @@ export class SolanaRegisterDomainTool extends Tool { const parsedInput = toJSON(input); this.validateInput(parsedInput); - const tx = await this.solanaAgent.registerDomain( + const tx = await this.solanaKit.registerDomain( parsedInput.name, parsedInput.spaceKB || 1, ); @@ -347,14 +347,14 @@ export class SolanaResolveDomainTool extends Tool { domain: string, eg "pumpfun.sol" or "pumpfun"(required) `; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } protected async _call(input: string): Promise { try { const domain = input.trim(); - const publicKey = await this.solanaAgent.resolveSolDomain(domain); + const publicKey = await this.solanaKit.resolveSolDomain(domain); return JSON.stringify({ status: "success", @@ -379,14 +379,14 @@ export class SolanaGetDomainTool extends Tool { account: string, eg "4Be9CvxqHW6BYiRAxW9Q3xu1ycTMWaL5z8NX4HR3ha7t" (required) `; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } protected async _call(input: string): Promise { try { const account = new PublicKey(input.trim()); - const domain = await this.solanaAgent.getPrimaryDomain(account); + const domain = await this.solanaKit.getPrimaryDomain(account); return JSON.stringify({ status: "success", @@ -407,12 +407,12 @@ export class SolanaGetWalletAddressTool extends Tool { name = "solana_get_wallet_address"; description = `Get the wallet address of the agent`; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } async _call(_input: string): Promise { - return this.solanaAgent.wallet_address.toString(); + return this.solanaKit.wallet_address.toString(); } } @@ -430,7 +430,7 @@ export class SolanaPumpfunTokenLaunchTool extends Tool { description: string, eg "PumpFun Token is a token on the Solana blockchain", imageUrl: string, eg "https://i.imgur.com/UFm07Np_d.png`; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -464,7 +464,7 @@ export class SolanaPumpfunTokenLaunchTool extends Tool { this.validateInput(parsedInput); // Launch token with validated input - await this.solanaAgent.launchPumpFunToken( + await this.solanaKit.launchPumpFunToken( parsedInput.tokenName, parsedInput.tokenTicker, parsedInput.description, @@ -498,7 +498,7 @@ export class SolanaCreateImageTool extends Tool { description = "Create an image using OpenAI's DALL-E. Input should be a string prompt for the image."; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -511,7 +511,7 @@ export class SolanaCreateImageTool extends Tool { protected async _call(input: string): Promise { try { this.validateInput(input); - const result = await create_image(this.solanaAgent, input.trim()); + const result = await create_image(this.solanaKit, input.trim()); return JSON.stringify({ status: "success", @@ -535,7 +535,7 @@ export class SolanaLendAssetTool extends Tool { Inputs (input is a json string): amount: number, eg 1, 0.01 (required)`; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -543,7 +543,7 @@ export class SolanaLendAssetTool extends Tool { try { let amount = JSON.parse(input).amount || input; - const tx = await this.solanaAgent.lendAssets(amount); + const tx = await this.solanaKit.lendAssets(amount); return JSON.stringify({ status: "success", @@ -565,13 +565,13 @@ export class SolanaTPSCalculatorTool extends Tool { name = "solana_get_tps"; description = "Get the current TPS of the Solana network"; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } async _call(_input: string): Promise { try { - const tps = await this.solanaAgent.getTPS(); + const tps = await this.solanaKit.getTPS(); return `Solana (mainnet-beta) current transactions per second: ${tps}`; } catch (error: any) { return `Error fetching TPS: ${error.message}`; @@ -586,7 +586,7 @@ export class SolanaStakeTool extends Tool { Inputs ( input is a JSON string ): amount: number, eg 1 or 0.01 (required)`; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -594,7 +594,7 @@ export class SolanaStakeTool extends Tool { try { const parsedInput = JSON.parse(input) || Number(input); - const tx = await this.solanaAgent.stake(parsedInput.amount); + const tx = await this.solanaKit.stake(parsedInput.amount); return JSON.stringify({ status: "success", @@ -622,13 +622,13 @@ export class SolanaFetchPriceTool extends Tool { Inputs: - tokenId: string, the mint address of the token, e.g., "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN"`; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } async _call(input: string): Promise { try { - const price = await this.solanaAgent.fetchTokenPrice(input.trim()); + const price = await this.solanaKit.fetchTokenPrice(input.trim()); return JSON.stringify({ status: "success", tokenId: input.trim(), @@ -651,7 +651,7 @@ export class SolanaTokenDataTool extends Tool { Inputs: mintAddress is required. mintAddress: string, eg "So11111111111111111111111111111111111111112" (required)`; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -659,8 +659,7 @@ export class SolanaTokenDataTool extends Tool { try { const parsedInput = input.trim(); - const tokenData = - await this.solanaAgent.getTokenDataByAddress(parsedInput); + const tokenData = await this.solanaKit.getTokenDataByAddress(parsedInput); return JSON.stringify({ status: "success", @@ -683,14 +682,14 @@ export class SolanaTokenDataByTickerTool extends Tool { Inputs: ticker is required. ticker: string, eg "USDC" (required)`; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } protected async _call(input: string): Promise { try { const ticker = input.trim(); - const tokenData = await this.solanaAgent.getTokenDataByTicker(ticker); + const tokenData = await this.solanaKit.getTokenDataByTicker(ticker); return JSON.stringify({ status: "success", tokenData: tokenData, @@ -717,7 +716,7 @@ export class SolanaCompressedAirdropTool extends Tool { priorityFeeInLamports: number, the priority fee in lamports. Default is 30_000. (optional) shouldLog: boolean, whether to log progress to stdout. Default is false. (optional)`; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -725,7 +724,7 @@ export class SolanaCompressedAirdropTool extends Tool { try { const parsedInput = JSON.parse(input); - const txs = await this.solanaAgent.sendCompressedAirdrop( + const txs = await this.solanaKit.sendCompressedAirdrop( parsedInput.mintAddress, parsedInput.amount, parsedInput.decimals, @@ -761,7 +760,7 @@ export class SolanaCreateSingleSidedWhirlpoolTool extends Tool { - maxPrice: number, eg: 5.0 (required, maximum price at which liquidity is added) - feeTier: number, eg: 0.30 (required, fee tier for the pool)`; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -781,7 +780,7 @@ export class SolanaCreateSingleSidedWhirlpoolTool extends Tool { ); } - const txId = await this.solanaAgent.createOrcaSingleSidedWhirlpool( + const txId = await this.solanaKit.createOrcaSingleSidedWhirlpool( depositTokenAmount, depositTokenMint, otherTokenMint, @@ -816,7 +815,7 @@ export class SolanaRaydiumCreateAmmV4 extends Tool { startTime: number(seconds), eg: now number or zero (required) `; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -824,7 +823,7 @@ export class SolanaRaydiumCreateAmmV4 extends Tool { try { let inputFormat = JSON.parse(input); - const tx = await this.solanaAgent.raydiumCreateAmmV4( + const tx = await this.solanaKit.raydiumCreateAmmV4( new PublicKey(inputFormat.marketId), new BN(inputFormat.baseAmount), new BN(inputFormat.quoteAmount), @@ -858,7 +857,7 @@ export class SolanaRaydiumCreateClmm extends Tool { startTime: number(seconds), eg: now number or zero (required) `; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -866,7 +865,7 @@ export class SolanaRaydiumCreateClmm extends Tool { try { let inputFormat = JSON.parse(input); - const tx = await this.solanaAgent.raydiumCreateClmm( + const tx = await this.solanaKit.raydiumCreateClmm( new PublicKey(inputFormat.mint1), new PublicKey(inputFormat.mint2), @@ -904,7 +903,7 @@ export class SolanaRaydiumCreateCpmm extends Tool { startTime: number(seconds), eg: now number or zero (required) `; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -912,7 +911,7 @@ export class SolanaRaydiumCreateCpmm extends Tool { try { let inputFormat = JSON.parse(input); - const tx = await this.solanaAgent.raydiumCreateCpmm( + const tx = await this.solanaKit.raydiumCreateCpmm( new PublicKey(inputFormat.mint1), new PublicKey(inputFormat.mint2), @@ -950,7 +949,7 @@ export class SolanaOpenbookCreateMarket extends Tool { tickSize: number (required) `; - constructor(private solanaAgent: SolanaAgent) { + constructor(private solanaKit: SolanaAgentKit) { super(); } @@ -958,7 +957,7 @@ export class SolanaOpenbookCreateMarket extends Tool { try { let inputFormat = JSON.parse(input); - const tx = await this.solanaAgent.openbookCreateMarket( + const tx = await this.solanaKit.openbookCreateMarket( new PublicKey(inputFormat.baseMint), new PublicKey(inputFormat.quoteMint), @@ -981,32 +980,32 @@ export class SolanaOpenbookCreateMarket extends Tool { } } -export function createSolanaTools(solanaAgent: SolanaAgent) { +export function createSolanaTools(solanaKit: SolanaAgentKit) { return [ - new SolanaBalanceTool(solanaAgent), - new SolanaTransferTool(solanaAgent), - new SolanaDeployTokenTool(solanaAgent), - new SolanaDeployCollectionTool(solanaAgent), - new SolanaMintNFTTool(solanaAgent), - new SolanaTradeTool(solanaAgent), - new SolanaRequestFundsTool(solanaAgent), - new SolanaRegisterDomainTool(solanaAgent), - new SolanaGetWalletAddressTool(solanaAgent), - new SolanaPumpfunTokenLaunchTool(solanaAgent), - new SolanaCreateImageTool(solanaAgent), - new SolanaLendAssetTool(solanaAgent), - new SolanaTPSCalculatorTool(solanaAgent), - new SolanaStakeTool(solanaAgent), - new SolanaFetchPriceTool(solanaAgent), - new SolanaResolveDomainTool(solanaAgent), - new SolanaGetDomainTool(solanaAgent), - new SolanaTokenDataTool(solanaAgent), - new SolanaTokenDataByTickerTool(solanaAgent), - new SolanaCompressedAirdropTool(solanaAgent), - new SolanaRaydiumCreateAmmV4(solanaAgent), - new SolanaRaydiumCreateClmm(solanaAgent), - new SolanaRaydiumCreateCpmm(solanaAgent), - new SolanaOpenbookCreateMarket(solanaAgent), - new SolanaCreateSingleSidedWhirlpoolTool(solanaAgent), + new SolanaBalanceTool(solanaKit), + new SolanaTransferTool(solanaKit), + new SolanaDeployTokenTool(solanaKit), + new SolanaDeployCollectionTool(solanaKit), + new SolanaMintNFTTool(solanaKit), + new SolanaTradeTool(solanaKit), + new SolanaRequestFundsTool(solanaKit), + new SolanaRegisterDomainTool(solanaKit), + new SolanaGetWalletAddressTool(solanaKit), + new SolanaPumpfunTokenLaunchTool(solanaKit), + new SolanaCreateImageTool(solanaKit), + new SolanaLendAssetTool(solanaKit), + new SolanaTPSCalculatorTool(solanaKit), + new SolanaStakeTool(solanaKit), + new SolanaFetchPriceTool(solanaKit), + new SolanaResolveDomainTool(solanaKit), + new SolanaGetDomainTool(solanaKit), + new SolanaTokenDataTool(solanaKit), + new SolanaTokenDataByTickerTool(solanaKit), + new SolanaCompressedAirdropTool(solanaKit), + new SolanaRaydiumCreateAmmV4(solanaKit), + new SolanaRaydiumCreateClmm(solanaKit), + new SolanaRaydiumCreateCpmm(solanaKit), + new SolanaOpenbookCreateMarket(solanaKit), + new SolanaCreateSingleSidedWhirlpoolTool(solanaKit), ]; } diff --git a/src/tools/create_image.ts b/src/tools/create_image.ts index c5660ae..b1b085d 100644 --- a/src/tools/create_image.ts +++ b/src/tools/create_image.ts @@ -1,4 +1,4 @@ -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; import OpenAI from "openai"; /** @@ -10,7 +10,7 @@ import OpenAI from "openai"; * @returns Object containing the generated image URLs */ export async function create_image( - agent: SolanaAgent, + agent: SolanaAgentKit, prompt: string, size: "256x256" | "512x512" | "1024x1024" = "1024x1024", n: number = 1, diff --git a/src/tools/create_orca_single_sided_whirlpool.ts b/src/tools/create_orca_single_sided_whirlpool.ts index 095d8fc..bed5870 100644 --- a/src/tools/create_orca_single_sided_whirlpool.ts +++ b/src/tools/create_orca_single_sided_whirlpool.ts @@ -1,5 +1,5 @@ import { Keypair, PublicKey, Transaction } from "@solana/web3.js"; -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; import { BN, Wallet } from "@coral-xyz/anchor"; import { Decimal } from "decimal.js"; import { @@ -99,7 +99,7 @@ export const FEE_TIERS = { * * @example * ```typescript - * import { SolanaAgentKit } from "your-sdk"; + * agent: SolanaAgentKitKit } from "your-sdk"; * import { PublicKey } from "@solana/web3.js"; * import { BN } from "@coral-xyz/anchor"; * import Decimal from "decimal.js"; @@ -125,7 +125,7 @@ export const FEE_TIERS = { * ``` */ export async function createOrcaSingleSidedWhirlpool( - agent: SolanaAgent, + agent: SolanaAgentKit, depositTokenAmount: BN, depositTokenMint: PublicKey, otherTokenMint: PublicKey, diff --git a/src/tools/deploy_collection.ts b/src/tools/deploy_collection.ts index 086d736..91e951c 100644 --- a/src/tools/deploy_collection.ts +++ b/src/tools/deploy_collection.ts @@ -1,4 +1,4 @@ -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; import { generateSigner, keypairIdentity, @@ -23,7 +23,7 @@ import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; * @returns Object containing collection address and metadata */ export async function deploy_collection( - agent: SolanaAgent, + agent: SolanaAgentKit, options: CollectionOptions, ): Promise { try { diff --git a/src/tools/deploy_token.ts b/src/tools/deploy_token.ts index 5940141..812d4b4 100644 --- a/src/tools/deploy_token.ts +++ b/src/tools/deploy_token.ts @@ -1,4 +1,4 @@ -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; import { PublicKey } from "@solana/web3.js"; import { createUmi } from "@metaplex-foundation/umi-bundle-defaults"; import { generateSigner, keypairIdentity } from "@metaplex-foundation/umi"; @@ -24,7 +24,7 @@ import { * @returns Object containing token mint address and initial account (if supply was minted) */ export async function deploy_token( - agent: SolanaAgent, + agent: SolanaAgentKit, name: string, uri: string, symbol: string, diff --git a/src/tools/get_balance.ts b/src/tools/get_balance.ts index fb70699..9e75daf 100644 --- a/src/tools/get_balance.ts +++ b/src/tools/get_balance.ts @@ -1,5 +1,5 @@ import { LAMPORTS_PER_SOL, PublicKey } from "@solana/web3.js"; -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; /** * Get the balance of SOL or an SPL token for the agent's wallet @@ -8,7 +8,7 @@ import { SolanaAgent } from "../index"; * @returns Promise resolving to the balance as a number (in UI units) or null if account doesn't exist */ export async function get_balance( - agent: SolanaAgent, + agent: SolanaAgentKit, token_address?: PublicKey, ): Promise { if (!token_address) diff --git a/src/tools/get_primary_domain.ts b/src/tools/get_primary_domain.ts index 01f19b6..d54f294 100644 --- a/src/tools/get_primary_domain.ts +++ b/src/tools/get_primary_domain.ts @@ -1,6 +1,6 @@ import { getPrimaryDomain as _getPrimaryDomain } from "@bonfida/spl-name-service"; import { PublicKey } from "@solana/web3.js"; -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; /** * Retrieves the primary .sol domain associated with a given Solana public key. @@ -15,7 +15,7 @@ import { SolanaAgent } from "../index"; * @throws Error if the domain is stale or if the domain resolution fails */ export async function getPrimaryDomain( - agent: SolanaAgent, + agent: SolanaAgentKit, account: PublicKey, ): Promise { try { diff --git a/src/tools/get_tps.ts b/src/tools/get_tps.ts index 38eb356..7314ce3 100644 --- a/src/tools/get_tps.ts +++ b/src/tools/get_tps.ts @@ -1,4 +1,4 @@ -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; export async function getTPS(agent: SolanaAgentKit): Promise { const perfSamples = await agent.connection.getRecentPerformanceSamples(); diff --git a/src/tools/launch_pumpfun_token.ts b/src/tools/launch_pumpfun_token.ts index ce997b4..7cb22cf 100644 --- a/src/tools/launch_pumpfun_token.ts +++ b/src/tools/launch_pumpfun_token.ts @@ -55,7 +55,7 @@ async function uploadMetadata( } async function createTokenTransaction( - agent: SolanaAgent, + agent: SolanaAgentKit, mintKeypair: Keypair, metadataResponse: any, options?: PumpFunTokenOptions, @@ -149,7 +149,7 @@ async function signAndSendTransaction( * @returns - Signature of the transaction, mint address and metadata URI, if successful, else error */ export async function launchPumpFunToken( - agent: SolanaAgent, + agent: SolanaAgentKit, tokenName: string, tokenTicker: string, description: string, diff --git a/src/tools/lend.ts b/src/tools/lend.ts index f036aa7..41107cf 100644 --- a/src/tools/lend.ts +++ b/src/tools/lend.ts @@ -1,5 +1,5 @@ import { VersionedTransaction } from "@solana/web3.js"; -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; /** * Lend tokens for yields using Lulo @@ -8,7 +8,7 @@ import { SolanaAgent } from "../index"; * @returns Transaction signature */ export async function lendAsset( - agent: SolanaAgent, + agent: SolanaAgentKit, amount: number, ): Promise { try { diff --git a/src/tools/mint_nft.ts b/src/tools/mint_nft.ts index 97e5fd2..88b37e4 100644 --- a/src/tools/mint_nft.ts +++ b/src/tools/mint_nft.ts @@ -1,4 +1,4 @@ -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; import { generateSigner, keypairIdentity } from "@metaplex-foundation/umi"; import { create, mplCore } from "@metaplex-foundation/mpl-core"; import { fetchCollection } from "@metaplex-foundation/mpl-core"; @@ -20,7 +20,7 @@ import { MintCollectionNFTResponse } from "../types"; * @returns Object containing NFT mint address and token account */ export async function mintCollectionNFT( - agent: SolanaAgent, + agent: SolanaAgentKit, collectionMint: PublicKey, metadata: { name: string; diff --git a/src/tools/openbook_create_market.ts b/src/tools/openbook_create_market.ts index 29dd829..c7c12aa 100644 --- a/src/tools/openbook_create_market.ts +++ b/src/tools/openbook_create_market.ts @@ -5,10 +5,10 @@ import { } from "@raydium-io/raydium-sdk-v2"; import { MintLayout, TOKEN_PROGRAM_ID } from "@solana/spl-token"; import { PublicKey } from "@solana/web3.js"; -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; export async function openbookCreateMarket( - agent: SolanaAgent, + agent: SolanaAgentKit, baseMint: PublicKey, quoteMint: PublicKey, lotSize: number = 1, diff --git a/src/tools/raydium_create_ammV4.ts b/src/tools/raydium_create_ammV4.ts index cc06431..98f641e 100644 --- a/src/tools/raydium_create_ammV4.ts +++ b/src/tools/raydium_create_ammV4.ts @@ -9,10 +9,10 @@ import { import { MintLayout, TOKEN_PROGRAM_ID } from "@solana/spl-token"; import { PublicKey } from "@solana/web3.js"; import BN from "bn.js"; -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; export async function raydiumCreateAmmV4( - agent: SolanaAgent, + agent: SolanaAgentKit, marketId: PublicKey, baseAmount: BN, quoteAmount: BN, diff --git a/src/tools/raydium_create_clmm.ts b/src/tools/raydium_create_clmm.ts index 2ce62f1..b77ab74 100644 --- a/src/tools/raydium_create_clmm.ts +++ b/src/tools/raydium_create_clmm.ts @@ -7,10 +7,10 @@ import { MintLayout } from "@solana/spl-token"; import { PublicKey } from "@solana/web3.js"; import BN from "bn.js"; import Decimal from "decimal.js"; -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; export async function raydiumCreateClmm( - agent: SolanaAgent, + agent: SolanaAgentKit, mint1: PublicKey, mint2: PublicKey, configId: PublicKey, diff --git a/src/tools/raydium_create_cpmm.ts b/src/tools/raydium_create_cpmm.ts index 6e129c6..d1c4dbd 100644 --- a/src/tools/raydium_create_cpmm.ts +++ b/src/tools/raydium_create_cpmm.ts @@ -7,10 +7,10 @@ import { import { MintLayout } from "@solana/spl-token"; import { PublicKey } from "@solana/web3.js"; import BN from "bn.js"; -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; export async function raydiumCreateCpmm( - agent: SolanaAgent, + agent: SolanaAgentKit, mintA: PublicKey, mintB: PublicKey, configId: PublicKey, diff --git a/src/tools/register_domain.ts b/src/tools/register_domain.ts index 20bcf79..6140ceb 100644 --- a/src/tools/register_domain.ts +++ b/src/tools/register_domain.ts @@ -1,6 +1,6 @@ import { registerDomainNameV2 } from "@bonfida/spl-name-service"; import { Transaction } from "@solana/web3.js"; -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; import { getAssociatedTokenAddressSync } from "@solana/spl-token"; import { TOKENS } from "../constants"; @@ -12,7 +12,7 @@ import { TOKENS } from "../constants"; * @returns Transaction signature */ export async function registerDomain( - agent: SolanaAgent, + agent: SolanaAgentKit, name: string, spaceKB: number = 1, ): Promise { diff --git a/src/tools/request_faucet_funds.ts b/src/tools/request_faucet_funds.ts index dd44cb3..40e6f09 100644 --- a/src/tools/request_faucet_funds.ts +++ b/src/tools/request_faucet_funds.ts @@ -1,4 +1,4 @@ -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; import { LAMPORTS_PER_SOL } from "@solana/web3.js"; /** @@ -8,7 +8,7 @@ import { LAMPORTS_PER_SOL } from "@solana/web3.js"; * @throws Error if the request fails or times out */ export async function request_faucet_funds( - agent: SolanaAgent, + agent: SolanaAgentKit, ): Promise { const tx = await agent.connection.requestAirdrop( agent.wallet_address, diff --git a/src/tools/resolve_sol_domain.ts b/src/tools/resolve_sol_domain.ts index e5c87a5..47a3419 100644 --- a/src/tools/resolve_sol_domain.ts +++ b/src/tools/resolve_sol_domain.ts @@ -1,6 +1,6 @@ import { resolve } from "@bonfida/spl-name-service"; import { PublicKey } from "@solana/web3.js"; -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; /** * Resolves a .sol domain to a Solana PublicKey. @@ -15,7 +15,7 @@ import { SolanaAgent } from "../index"; * @throws Error if the domain resolution fails */ export async function resolveSolDomain( - agent: SolanaAgent, + agent: SolanaAgentKit, domain: string, ): Promise { if (!domain || typeof domain !== "string") { diff --git a/src/tools/send_compressed_airdrop.ts b/src/tools/send_compressed_airdrop.ts index 3a80f42..2a66e47 100644 --- a/src/tools/send_compressed_airdrop.ts +++ b/src/tools/send_compressed_airdrop.ts @@ -5,7 +5,7 @@ import { PublicKey, TransactionInstruction, } from "@solana/web3.js"; -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; import { buildAndSignTx, calculateComputeUnitPrice, @@ -56,7 +56,7 @@ export const getAirdropCostEstimate = ( * @param shouldLog Whether to log progress to stdout. Defaults to false. */ export async function sendCompressedAirdrop( - agent: SolanaAgent, + agent: SolanaAgentKit, mintAddress: PublicKey, amount: number, decimals: number, @@ -119,7 +119,7 @@ export async function sendCompressedAirdrop( } async function processAll( - agent: SolanaAgent, + agent: SolanaAgentKit, amount: number, mint: PublicKey, recipients: PublicKey[], diff --git a/src/tools/stake_with_jup.ts b/src/tools/stake_with_jup.ts index 981dd64..5f41788 100644 --- a/src/tools/stake_with_jup.ts +++ b/src/tools/stake_with_jup.ts @@ -1,5 +1,5 @@ import { VersionedTransaction } from "@solana/web3.js"; -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; /** * Stake SOL with Jup validator @@ -8,7 +8,7 @@ import { SolanaAgent } from "../index"; * @returns Transaction signature */ export async function stakeWithJup( - agent: SolanaAgent, + agent: SolanaAgentKit, amount: number, ): Promise { try { diff --git a/src/tools/trade.ts b/src/tools/trade.ts index 4c9b713..b391df0 100644 --- a/src/tools/trade.ts +++ b/src/tools/trade.ts @@ -3,7 +3,7 @@ import { PublicKey, LAMPORTS_PER_SOL, } from "@solana/web3.js"; -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; import { TOKENS, DEFAULT_OPTIONS, JUP_API } from "../constants"; /** @@ -16,7 +16,7 @@ import { TOKENS, DEFAULT_OPTIONS, JUP_API } from "../constants"; * @returns Transaction signature */ export async function trade( - agent: SolanaAgent, + agent: SolanaAgentKit, outputMint: PublicKey, inputAmount: number, inputMint: PublicKey = TOKENS.USDC, diff --git a/src/tools/transfer.ts b/src/tools/transfer.ts index 93607de..1f31f50 100644 --- a/src/tools/transfer.ts +++ b/src/tools/transfer.ts @@ -1,4 +1,4 @@ -import { SolanaAgent } from "../index"; +import { SolanaAgentKit } from "../index"; import { PublicKey, SystemProgram, Transaction } from "@solana/web3.js"; import { LAMPORTS_PER_SOL } from "@solana/web3.js"; import { @@ -16,7 +16,7 @@ import { * @returns Transaction signature */ export async function transfer( - agent: SolanaAgent, + agent: SolanaAgentKit, to: PublicKey, amount: number, mint?: PublicKey, diff --git a/src/utils/send_tx.ts b/src/utils/send_tx.ts index 65fafe4..bb232c0 100644 --- a/src/utils/send_tx.ts +++ b/src/utils/send_tx.ts @@ -1,4 +1,4 @@ -import { SolanaAgent } from "../agent"; +import { SolanaAgentKit } from "../agent"; import { Transaction, Keypair, TransactionInstruction } from "@solana/web3.js"; import { Connection, ComputeBudgetProgram } from "@solana/web3.js"; @@ -74,7 +74,7 @@ export async function getPriorityFees(connection: Connection): Promise<{ * @returns Transaction ID */ export async function sendTx( - agent: SolanaAgent, + agent: SolanaAgentKit, tx: Transaction, otherKeypairs?: Keypair[], ) { diff --git a/test/index.ts b/test/index.ts index b226ce4..cacded6 100644 --- a/test/index.ts +++ b/test/index.ts @@ -1,4 +1,4 @@ -import { SolanaAgent } from "../src"; +agent: SolanaAgentKit } from "../src"; import { createSolanaTools } from "../src/langchain"; import { HumanMessage } from "@langchain/core/messages"; import { MemorySaver } from "@langchain/langgraph";