Commit Graph

273 Commits

Author SHA1 Message Date
YCrydev
c56b03d69f Merge remote-tracking branch 'upstream/main' into jup-referral-fee 2024-12-31 11:33:18 +01:00
aryan
a4548c2280 Fix some typos and grammar (#104)
# Pull Request Description

Not sure if you are interested in PRs fixing typo and grammar, but I
thought it a good way to start with the repo (so here we are 🤗)

## Changes Made
This PR adds the following changes:
<!-- List the key changes made in this PR -->

- Fixed some obvious typos and grammar
- Renamed persistance-agent to more natural persistent-agent 

## Additional Notes
<!-- Any additional information that reviewers should know -->

## Checklist
- [x] I have tested these changes locally
- [ ]  I have updated the documentation
* I did not update the documentation yet, as there were many changes
when I ran `npm run docs`
2024-12-31 14:52:13 +05:30
krill
fcdf174ce8 📝 fix some more typos and grammar 2024-12-31 12:35:12 +09:00
krill
38a88239ca 👔 fix typo in func name 2024-12-31 12:34:44 +09:00
krill
0e6b78b971 🚚 fix more typos; rename example 2024-12-31 12:04:11 +09:00
krill
df386a8cbd 📝 fix typos 2024-12-31 12:02:55 +09:00
YCrydev
7429943942 update 2024-12-31 02:56:21 +01:00
aryan
9500b68e1a Add: tensor trade support (#93)
# Pull Request Description
Add Tensor Trade SDK support for NFT trading operations

## Related Issue
Fixes #20

## Changes Made
This PR adds the following changes:
- Added `tensor_trade.ts` file in `src/tools` with NFT trading
functions:
  - `listNFTForSale`
  - `buyNFT`
  - `cancelListing`
- Integrated Tensor Trade functions into Langchain tools
- Added proper error handling and validation for NFT operations

## Implementation Details
- Integrated `@tensor-oss/tensorswap-sdk` for Tensor Trade Swap
- Added support for listing, buying, and canceling NFT listings
- Implemented proper transaction building and signing
- Added validation checks for NFT ownership and wallet balance
- Supports both compressed and non-compressed NFTs

## Transaction executed by agent 
Test transaction on mainnet:

## Prompt Used
I want to list my NFT for sale on Tensor Trade
NFT Mint Address: [NFT_MINT_ADDRESS]
Price: 1 SOL
Expiry Time: 3600

## Additional Notes
- Will add more comprehensive error handling based on testing results

## Checklist
- [x] I have tested these changes locally
- [ ] I have updated the documentation
- [ ] I have added transaction links
- [x] I have added the prompt used to test it
2024-12-31 02:52:33 +05:30
aryan
ba61f1db4b Merge branch 'main' into feature/tensor-sdk 2024-12-31 02:51:29 +05:30
aryan
9b8bd14cf5 chore: deploy to vercel 2024-12-31 02:39:56 +05:30
Lautaro Suarez
05effae52a Merge branch 'main' into feature/tensor-sdk 2024-12-30 14:04:12 -03:00
Lautaro
9fba6484b5 Fix: remove buyNFT not working with sdk 2024-12-30 14:00:55 -03:00
aryan
b4ec76bb6c Update send transaction and orca tool (#59)
This PR adds the following 3 things:
- Single Sided pool creation can now be done on Devnet
- Changed the wrapping strategy for SOL to reduce transaction size in
case the agent does not have WSOL account
- Update send transaction logic. I noticed that Orca's tool is the only
tool that utilizes the `sendTx` function, so I took the liberty to
update the function to optimize it for transaction landing, which is
especially important in DeFi operations, including:
  - Include computeBugetSetUnitLimit instruction
- Replace the deprecated 'confirmTransaction' API method:
https://solana.com/docs/rpc/deprecated/confirmtransaction
- Client-side retry mechanism.
https://www.helius.dev/blog/how-to-land-transactions-on-solana
  
Example transaction executed by the agent:

https://solscan.io/tx/3u59wSqNBGJqKJjN4n9vzhtx1w637wVDDhhsmBmtE1S8hgv1XRLPTbcrahot48Ya9YSZFcYqQHu3f9H87ssE8JNu?cluster=devnet
2024-12-30 14:51:56 +05:30
aryan
93055a8837 Merge branch 'main' into update-orca-single-sided-pools-and-send_transaction 2024-12-30 14:51:22 +05:30
aryan
4c0124da97 chore: lint 2024-12-30 14:37:47 +05:30
aryan
dc181722c5 Upgrade NPM dependencies (#85)
# Pull Request Description

## Changes Made
Upgraded NPM dependencies to keep up to date.

The upgrades do not affect any specific SDKs, they upgrade the langchain
and openai SDK as well as other devDependencies
2024-12-30 14:21:36 +05:30
calintje
43953f262f Update description 2024-12-30 05:23:16 +01:00
calintje
3f9828d672 Update lockfile 2024-12-30 05:05:02 +01:00
calintje
20b1f4ab57 Remove console.logs 2024-12-30 05:00:58 +01:00
calintje
1e1588b3fc Finish Orca tools 2024-12-30 04:53:28 +01:00
ARYAN
35781f4dc1 fix: rm package-lock.json 2024-12-30 07:05:39 +05:30
aryan
46ff233f35 chore: lint 2024-12-30 07:04:06 +05:30
Lautaro
98369a0912 Fix: change tcomp sdk for tensorswap sdk and fix functions 2024-12-29 22:17:30 -03:00
ARYAN
02130be8e6 Added a Telegram bot starter example (#84)
# Pull Request Description
Added a Telegram bot starter example, with steps on how to run and host
it successfully.

## Related Issue
Fixes #83 

## Changes Made
This PR adds the following changes:
- Adds an example on how we can use agent kit in a telegram bot using
nextjs
- 
  
## Implementation Details
- Used next js and ngrok or vercel to host the bot and telegram bot api
to have it.

## Transaction executed by agent 
Yes it is able to do everything.

## Prompt Used
NA

## Additional Notes
NA

## Checklist
- [ x  ] I have tested these changes locally
2024-12-30 06:43:49 +05:30
ARYAN
f29d0b109e Add support for querying other wallet balance (#79)
# Pull Request Description

## Related Issue
Implements #60 

## Changes Made
This PR adds the following changes:
- Added `getBalanceOther` method in `SolanaAgentKit` class
- Implemented `get_balance_other` tool
  
## Implementation Details
- This tool enables the agent to query SOL and SPL token balances of
other wallets

## Prompt Used
```
Prompt: What is the SOL balance of HHELE9Q7LsARJACq7cMCkoPStjZUomn4JphdHUMyK3op?
-------------------
{"status":"success","balance":49.893951194,"wallet":"HHELE9Q7LsARJACq7cMCkoPStjZUomn4JphdHUMyK3op","token":"SOL"}
-------------------
The wallet balance of HHELE9Q7LsARJACq7cMCkoPStjZUomn4JphdHUMyK3op is approximately 49.89 SOL.
-------------------

Prompt: Now get the balance of sSo14endRuUbvQaJS3dq36Q829a3A6BEfoeeRGJywEh token for that same wallet

-------------------
{"status":"success","balance":60.338328396,"wallet":"HHELE9Q7LsARJACq7cMCkoPStjZUomn4JphdHUMyK3op","token":"sSo14endRuUbvQaJS3dq36Q829a3A6BEfoeeRGJywEh"}
-------------------
The balance of the token sSo14endRuUbvQaJS3dq36Q829a3A6BEfoeeRGJywEh in the wallet HHELE9Q7LsARJACq7cMCkoPStjZUomn4JphdHUMyK3op is approximately 60.34 tokens.
-------------------
```

## Checklist
- [x] I have tested these changes locally
- [x] I have updated the documentation
~~- [ ] I have added a transaction link~~
- [x] I have added the prompt used to test it
2024-12-30 06:35:56 +05:30
aryan
9f4b0324d7 chore: docs 2024-12-30 06:35:46 +05:30
aryan
20a4bcf4b5 Merge branch 'main' into feature/getBalanceOther 2024-12-30 06:33:33 +05:30
aryan
5a2a4c1a83 feat: SECURITY.md 2024-12-30 06:32:44 +05:30
ARYAN
cd7dc35e7d Create SECURITY.md 2024-12-30 05:25:39 +05:30
ARYAN
01a4efb0ce Create SECURITY.md 2024-12-30 05:24:29 +05:30
aryan
1dee947802 fix: pkg version 2024-12-30 05:13:55 +05:30
aryan
29a2ab9763 fix: node requirement 2024-12-30 05:13:33 +05:30
aryan
fab1441a00 chore: docs 2024-12-30 03:26:26 +05:30
ARYAN
ab8d705212 Fix: change lamports by getting mintInfo (#94)
# Pull Request Description

## Related Issue
Fixes #92 

## Changes Made
This PR adds the following changes:
- Fixed token decimal handling in trade function to support tokens with
different decimal places
- Added proper scaling of input amounts based on token's decimal places
- Added getMint import from @solana/spl-token
  
## Implementation Details
- Fetches mint info using `getMint` to determine token decimals
- Calculates correct scaled amount using `Math.pow(10, inputDecimals)`
- Supports tokens with any number of decimal places (e.g., USDC-6,
SOL-9)

## Transaction executed by agent 
Example transaction: [Insert your test transaction hash here]

## Prompt Used
Trade 0.0001 SOL for BONK

## Additional Notes
This fix ensures proper handling of token decimals, which is crucial
for:
- USDC (6 decimals)
- SOL (9 decimals)
- Other SPL tokens with varying decimal places

## Checklist
- [x] I have tested these changes locally
- [x] I have updated the documentation
- [x] I have added a transaction link
- [x] I have added the prompt used to test it
2024-12-30 03:03:20 +05:30
ARYAN
f20833976b Updated README.md with contributors and star graph (#99)
Added a PR to add the star graph and the contributors on the home
README.md page
2024-12-30 02:57:36 +05:30
Deepak
0138f7de89 Updated README.md with contributors and star graph 2024-12-30 02:29:51 +05:30
Lautaro
6b9a347f56 Fix: if token is sol 2024-12-29 16:03:40 -03:00
YCrydev
45c8cad7b5 update 2024-12-29 19:05:18 +01:00
aryan
984f0390b4 feat: replit 2024-12-29 22:38:10 +05:30
Lautaro
3552ffe41c Fix: change lamports by getting mintInfo 2024-12-29 06:01:19 -03:00
Lautaro
67dc873a04 Add: tensor trade support 2024-12-29 03:26:09 -03:00
Damjan
4559fb8551 Upgrade NPM dependencies 2024-12-28 10:26:27 +01:00
Damjan Dimitrov
cbf67768e6 Merge branch 'main' into feature/getBalanceOther 2024-12-28 10:19:06 +01:00
Arpit Singh Bhatia
4bcbf0502a tg-bot-starter repo 2024-12-28 13:53:48 +05:30
calintje
7976de50d7 Add Orca tools. 2024-12-28 05:30:27 +01:00
aryan
4f0eaffa55 chore: docs 2024-12-28 03:01:03 +05:30
Damjan Dimitrov
8862570e20 Merge branch 'main' into feature/getBalanceOther 2024-12-27 22:25:26 +01:00
ARYAN
fd15656304 Langgraph (#78)
# Pull Request Description

## Related Issue
Fixes #61

## Changes Made
This PR adds the following changes:
- Added a new example demonstrating LangGraph integration with Solana
Agent Kit
- Implemented a multi-agent system with specialized agents for different
tasks
- Added state management and routing logic using LangGraph's StateGraph
- Integrated Tavily search capabilities for enhanced general-purpose
queries
- Added support for token swaps using Jupiter DEX
- Implemented TypeScript-based project structure with full type safety
- Added comprehensive documentation and architecture diagram

## Implementation Details
- Created a directed workflow using StateGraph with the following
components:
  - Manager Agent: Handles query classification and routing
- General Agent: Processes basic queries with Tavily search integration
  - Transfer/Swap Agent: Handles token transfers and DEX operations
  - Read Agent: Manages blockchain data queries
- Implemented state management using LangGraph annotations for query
classification
- Added environment-based configuration for API keys and RPC endpoints
- Integrated with external dependencies:
  - @langchain/community v0.3.20
  - @langchain/core v0.3.26
  - @langchain/langgraph v0.2.36
  - solana-agent-kit v1.3.0
- Set up TypeScript configuration with ESM support

## Architecture

<img width="801" alt="Screenshot 2024-12-27 at 5 59 26 PM"
src="https://github.com/user-attachments/assets/a90597ac-3bfc-47e1-b1de-5a17a3de106b"
/>


## Transaction executed by agent 
Example transaction: 


## Additional Notes
- The implementation follows a modular architecture as shown in the
architecture diagram
- Supports both read and write operations on the Solana blockchain
- Includes comprehensive error handling and type safety
- Provides flexible configuration through environment variables
- Project structure follows best practices with clear separation of
concerns
- Includes example queries for testing different agent pathways

## Checklist
- [x] I have tested these changes locally
- [x] I have updated the documentation
- [x] I have added a transaction link
- [x] I have added the prompt used to test it
2024-12-28 02:25:28 +05:30
ARYAN
9d14e951ca Implemented a Persistance agent (#77)
# Pull Request Description
It adds a Postgres database to have a persistent agent that remembers
chats even when shut and opened again.
## Related Issue
Fixes #76 

## Changes Made
This PR adds the following changes:
- Added an example of how we can integrate a Postgres db so that the
agent remembers its previous chats.
  
## Implementation Details
- included a postgres db to store chat for future reference
- 

## Transaction executed by agent 
NA

## Prompt Used
<img width="936" alt="image"
src="https://github.com/user-attachments/assets/0aa1bed2-e895-41bf-ad37-a52f679db7cf"
/>

see it remebers my name even when i closed it and ran again .

## Additional Notes

https://langchain-ai.github.io/langgraphjs/reference/classes/checkpoint_postgres.PostgresSaver.html

I used this above link to implement the changes.

## Checklist
- [ x ] I have tested these changes locally
2024-12-28 02:02:08 +05:30
Arpit Singh Bhatia
592c4987df fix 2024-12-28 02:00:49 +05:30