diff --git a/.eslintrc b/.eslintrc index cfdc5bc..e619c84 100644 --- a/.eslintrc +++ b/.eslintrc @@ -7,6 +7,7 @@ "plugin:@typescript-eslint/recommended", "prettier" ], + "ignorePatterns": ["examples/**/*", "src/utils/keypair.ts", "test/**/*"], "rules": { "prettier/prettier": "error", "no-constant-condition": "off", @@ -28,13 +29,5 @@ "parserOptions": { "ecmaVersion": 2020, "sourceType": "module" - }, - "overrides": [ - { - "files": ["test/**/*", "src/utils/keypair.ts", "examples/**/*"], - "rules": { - "no-console": "off" - } - } - ] + } } \ No newline at end of file diff --git a/README.md b/README.md index 2683897..04f8f80 100644 --- a/README.md +++ b/README.md @@ -52,11 +52,13 @@ Anyone - whether an SF-based AI researcher or a crypto-native builder - can brin - Jito Bundles - Pyth Price feeds for fetching Asset Prices - Register/resolve Alldomains + - Perpetuals Trading with Adrena Protocol - **Solana Blinks** - - Lending by Lulo (Best APR for USDC) - - Send Arcade Games - - JupSOL staking + - Lending by Lulo (Best APR for USDC) + - Send Arcade Games + - JupSOL staking + - Solayer SOL (sSOL)staking - **Non-Financial Actions** - Gib Work for registering bounties @@ -69,6 +71,11 @@ Anyone - whether an SF-based AI researcher or a crypto-native builder - can brin - Memory management for persistent interactions - Streaming responses for real-time feedback +- **Vercel AI SDK Integration** + - Vercel AI SDK for AI agent integration + - Framework agnostic support + - Quick and easy toolkit setup + - **Autonomous Modes** - Interactive chat mode for guided operations - Autonomous mode for independent agent actions @@ -166,6 +173,15 @@ const signature = await agent.stake( ); ``` +### Stake SOL on Solayer + +```typescript +const signature = await agent.restake( + 1 // amount in SOL to stake +); + +``` + ### Send an SPL Token Airdrop via ZK Compression ```typescript @@ -196,11 +212,37 @@ import { PublicKey } from "@solana/web3.js"; ```typescript -const price = await agent.pythFetchPrice( - "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43" -); +const priceFeedID = await agent.getPythPriceFeedID("SOL"); -console.log("Price in BTC/USD:", price); +const price = await agent.getPythPrice(priceFeedID); + +console.log("Price of SOL/USD:", price); +``` + +### Open PERP Trade + +```typescript +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% +}); +``` + +### Close PERP Trade + +```typescript +import { PublicKey } from "@solana/web3.js"; + +const signature = await agent.closePerpTradeLong({ + price: 200, // $200 SOL price + tradeMint: new PublicKey("J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn"), // jitoSOL +}); ``` ### Close Empty Token Accounts @@ -238,7 +280,6 @@ The toolkit relies on several key Solana and Metaplex libraries: - @metaplex-foundation/umi - @lightprotocol/compressed-token - @lightprotocol/stateless.js -- @pythnetwork/price-service-client ## Contributing @@ -259,6 +300,12 @@ Refer to [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines on how to co 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/assets/navigation.js b/docs/assets/navigation.js index f44ac19..4268dc8 100644 --- a/docs/assets/navigation.js +++ b/docs/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "eJyNlFFPwjAQx79Ln4kTFFTeiIhGUQnyZnwo5caadddlvSrE+N2NQGRj3cHLHna//+/Sy7Xv34JgRaIv3qyRKAdLQHrSJFoil5SIvlBGOgcuqtbPEsqMaIlU40L0253rn9a/aaBIW9wbNBIUsVTgom2pGu50e7Xw3UpmuQHGsSM41a01BjbwEHJj1xkgBY0h8DTxa/73dUesO4pXYqyXDZ6/EhsuQJItwultjYuPgFQyKbSCKbjcogvPvY5x0ns9/7JFumkPM+nSKTSrm2CuwaPPNUExsyngUJIMig8hTjj2xg6Ush5pCCS1cew4mnGuybNG2i/Gy2jG9mikuRYTn+Wxx7H0qBJWHySPqUceN+PkVj/Asdo1JScuYRjl5A8SFwZKl4PWObho9/sgeX5z1e52SmmpDk75KQst5wZctCtVDRflsNrs8/bhnFlrSprY4zYe1aCqsHdZEsIKlCc4fGD3sgrAiGKNi2bLvsoolkCVlzh4uBpUE378Ahp6RJM=" \ No newline at end of file +window.navigationData = "eJyNlcFu2zAMQP9F52Bps7XdcsuSZU3XNUFr7DLswMp0LFiWDIneEgz79yFOUNuxTOfig/n4KEuU+fOvINyRmIoXq8HAbIuGvikSI1EApWIqpAbv0Y/b8Xcp5VqMRKZMLKbXk4//Rm+mmSRlTW1QhtAlINGPj6F28uTmtpP8ZQd5oZFxnAhO9RlIpmsXo9sAEbrwkjoUp5xbrbGqv8BC232OhoLWEHiZeF0cnn7AeqJ4pUnUtsdzCLHJDoGsC2cfY1z6EkmmG6ckPqMvrPHho+xinPSrev1jXVaVxwh89oz96j6YK/BQForQRTZDswCCoPgc4oSPpbYzKW1paIEESnt2O/pxrsh3ZahujKdlxNbopbkSp+vhIA/3ZSPOaTZlXiSleYTSyJRdZZAcUi9LU50Kd4MCHKvdU3phL4fRIXkFLxHj1WJFmPeaz7iLtMPCIVW1TfMUZRb01GFOcg8m1tj4ldC+QD8+vT7LvPp0d30zac6DebRaP73U2b/BKXjVh0FwDLUN75vJsrr9x8kVWasbPZGUproBftyB2sLbDx3hD3QS9Ww1oGxhjBR3KEvC87FZ61oAI0qUifstdZRRbJFa8zX4eR2oI/z1H/fI5D8=" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js index a216523..4e1411f 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "eJytnVtznDgWgP8Lfu1KEHf85jj2bmaciStxZmurK+WSG7XNmgYW6CTeVP77lrg0R+iAD00/zVSsc5H06Ug6oqVfRpH9KI3z9S/jOU4j45xZwcpI+U4Y58aXLOEpv3gUafVnXBkrY18kxrmxSXhZivKt+uc3T9UuMVbdX41zw/i96rS6zDpo3WRpWRX7TZUVFJVnanmgfmXkvBBppXvaG2am5UDLqdhUcZZSDffFl9j9wZNEkNrv7FB0ub17HkWFKMsZdoHIwnbexo/UNm6KzrRnmU7PaSH+uxdldc33G1Fd79OIVudWbFuLbVuxJX5EIk+yl7vsWdAAa8pXbfnlli+zJJnBdyO0gUJLfHgU1Tue8HQjSNYfRfVwKH4au5+qJ0GLKb3xrJVZ4sEuTqu/ru9IlmXZdHvECFcsVgVPyy2xsqDwslH2GJeVKN5nOx7TCOtEok5kmf0yS76LL1kyy4NaqMySk/jwKKrbIt7x4mWGD4+iyhuhk/hQFTyiDbGu5BJrSbyLq09FRGStLp61xZfY3cjBmVwkSW2bFtAbGZ4kWSezxIMfcfUUFfzHRZLQptC2PE+SpW0u0uiiLEVFq7YszrviC+m+u/1CZbrKT2FPTn7vecXfvVzMWK5I81Iy4hV/eDl61TLhzV28eaZPJsCZqhNc4stWVJun2pvbIiZOqLVM7UjeyixikO/TzdPtfpdf71P6kqYRy/e7fLtPT7GyKSv+TKt/V3KRNZFGl9kulziJ6CIuoiLLadZFGm0OkvwgucSbrNjwyyQrxW1WxuRlnZTaSKm8l1rsRSF4JS5vPn6ku1CLbJLd7mT2v8TpYyK+xJGIbuL/7uMorl5us4wWnnufylpNKdUknZq8UbPUz2s5BrveooUyKVYP3RyILfXjUy7SS5FWohBR586/4urp0Gxk17JcpJtWU+ehnOkSoOkU3oK+nU279BF06om4b5eOF0m73qRuKmspnrQLzhPMSp9+pCKa6cajqDIpdnI/Wieus+Lu5v0sV1o/tllRJdFyb/oGubt5T26Uvj2qZPF+v/Hic7vJOaaPeJIUB/FT9tVHHqe9O/M2K7Js78tp9m78JYr3uyaMX+x2fzu0wdSINWGb73bfnVP6cdnMTTPdOMGMpnqRH+VFvnxezUX6kGXPjRsfefFMzFF2go0nu05wUQaFp/FWlNVsXzrBE/qSv1RPzTxOXnpLkWYOP8HKu6nKP+KHH1nxfMfLZ9ret5Z6bKSqRmoRo9nm+ZbnoviyicsyI+7ApVQupcpeanlb3MV5Eqdz2qE6SCzKtIi0zIqbuCRn9xqJJC5PkeOrdV3WOQ3pQ5zSUuqNXJMLSQ5yMz3xnEEfNCXvsizpSdju0zpxXL7VykyeBlmud9B+qZ4VxHKlueUbUb5t/jKpSDl1+HR79dfFh/uL2w/3f179+xWNdRDj8T3P4/tnMb6Ibd0bMfnH19sPd1ef7z9fXV99/nxxc39xefnp6193rxn/zz6PK1HcF2IrioIn93yzyfbpODE0N66vru7fgQTOK9a3Qtw/TCRxNKNKv8keByd40FbzJ3rPDQ+qRnSdvZbn6XwaMZOLQu5k+KN41ZJSlGpMxbo7VfmUq3tBpVMGhehNVv+HrPKsLT7Wz0NfR4zui3iGzab0QpNF9sKT6uUdL+PyNovTakZDnrXCD1I474QXOrRpun2OG0BkvnEcqvf10d1OpNW0H305Olr9geAwI0sxcdaLvzpcseqMOFXGjymv9sUr0A+dgWJHOQGb/2OcVn3xv67vPosyz9IS9Wm0ML0j5FHhfNVnrRhe3fE6jDkhKi4T28c40ose7wzsAJiNngirSDF6o1c/4qoS6Lw2pvesl8Hrifk9Zl4k4rHgu3n2e6HFDvwQD2VcoUiP2u9lFpuP07iKeXLIU375dDPLlVb+kJ0sJ9K6M9wqkzjP+aN4l88i7qyTm1pmzXAjL+KsiKuXazGvgzq5rTi2k4bDcLtPb+qjnqkYiBakD8XJmD+umxD08RrMDMMTHkyG4HnG2xj6FV96TfnQSk4tw2a5IooCX+9PONHJHGceQnezT7KLZpf0XlQ8Tsop8sZLz5gJsoonf/Nkf4yFs1r6eyuNV3+iSqPRUSaKy+qKF6mIjnGr0yA6DadyrRA8qeKduMhfjvGrE+f5+F58vlOlqGT6A43Zr3kEZBe4AxH+o9l3Hz4ywLwaljnJJhpV+upuWnN35lYUtzq5E6WaLF92D+DY91Wjh/LLzEZiE+94MqONgcQy0xXHKcbNtqWXmUyyx+zr5w90q1JgarYhNzOPk5f771mynwPWQGqZC9tCiP+Je76vnuqFE90NRHKZK3ItcYwjmtwyN3JR7Hgq0uo+krsNjm8RcFdQ2WXuiJ8yzT22A8TdUGRmm4eRvD8emlqE6KVmrH0rXu3Ruo1oPTtI4DVDXB5d9zyL9AO6uhizXYvE48sJuvH6AO1D+vXL+8s5DtRicbovo80JnNiJshzJEo850IssNb7JolmW2/JHmFX2dMqh5+SmDi15CrInNL9G94j7U5BdCxF9eD/Xj1p0K0Q0QfsRzhzlxokcmKB9yoXXiJ/nxBj1Ux5Mkv+qeUh/e9jefH0gj9w/i1H+x8qeYgRM6n5tDIxWYnRJWT7jYX7aDSk3Qf9cNyazPK80yKuJHoIzdv/LRL5Rc8rfeRHzh0SUb9u/kE+1L9RfYYEaNX9ZftAH9EzvqVpXRlt/FycChRFa6IsdYyQS5aaIc0KTnKlFjzEmfvJdTqgSKHdUw22exA7dwivt1pU6xsQTT6MEP4qANvpiRCM6qFdNW4xbagvQsY3TfI9mTXV9Z13ZKfc7D0fMZfuKbu9QeIFB8TOX37pMI61YVSXmmbbM0GduH6j+OSCjeslF+bb918lOAt/1bOM0GsSp/oOe/o9UdeKn2OwrMapR+TtVqfzCFrYJ9u2RVgZT/m1lxGkkfhrnv4zvopC7QOPcsN7Yb0JjZWxjIb8GPl934XaT7drD9Sjb7Ov//dYW+1ts6sP883VT+q1prNbmynHe+L797dtq3QnXf6j/odPR/0styIzVmmGCTBNkiqBlrNYWJmhpgpYiaBurtY0J2pqgrQg6xmrtYIKOJugogq6xWrsrO3zjea4i6GqCriLoGau1h1n0NEFPEfSN1drHBH1N0FcEA2O1DjDBQBMMFMHQWK1DTDDUBEMVAMkDQ9lhOjxsQE+ND84PApBKEJNcMJQhpkPEVIqYZIOhHDEdJKaSxCQfDGWJ6TAxlSYmGWEuKqwDxVSimOSEoUwxHSqmUsUkKwzliulgMZUsJnlhKFtMh4updDHJDEP5YjpgTCXMksxYKGGWTpilEmZJZiyUMEsnzBrEqDpI4VEKCVMqYZZkxkIJs3TCLJUwSzJjoYRZOmGWSpglmbFQwiydMEslzJLMWChhlk6YpRJmSWYslDBLJ8xSCbMkMxZKmKUTZqmEWZIZCyXM0gmzVMJsyYyNEmbrhNkqYbZkxkYJs3XCbJUwWzJjo4TZOmH2YCasp0J8LkQmQ5UwWzJjo4TZOmG2SpgtmbFRwmydMFslzJbM2Chhtk6YrRJmS2ZslDBbJ8xWCbMlMzZKmK0TZquE2ZIZGyXM1gmzVcIcyYyDEubohDkqYY5kxkEJc3TCHJUwRzLjoIQ5OmGOSpgjmXFQwhydMGew3qoXXPiKC1lyqYQ5khkHJczRCXNUwhzJjIMS5uiEOSphjmTGQQlzdMIclTBHMuOghDk6YY5KmCOZcVDCHJ0wRyXMlcy4KGGuTpirEuZKZlyUMFcnzFUJc63R9bEOmKsC5kpkXJROVwfMVQFzJTIuSqerA+YOFvX1qh6l00XW9SpgrkTGRel0dcBcFTBXIuN6aIPpgLkqYK5ExkXpdHXAXBUwVyLjonS6OmCuCphXAxaubO/NYDOj4+WpeHkSGA9l09Px8lS8PEmMh7Lp6Xx5Kl+eJMZD+fJ0vjyVL08S46F8eTpfnsqXJ4nxUL48nS9vsHGsd44u0tbIzlGly5O8ePiuU6fLU+nyJC+ej6Hp6XR5Kl2e5MVD6fJ0ujyVLl8S46Gxz9f58lW+fEmMj/Ll63z5Kl++JMZH+fJ1vnyVL18S46N8+TpfvsqXL4nxUb58nS9f5cuXxPgoX77Ol6/y5UtmfDR++Tph/iA5UWcnUMJ8JD+hEuYHI2T7Ol++ypcfjsLp63z5Kl+BJMZH42ag8xWofAU1X3heRecrUPkKar5QsgOdr0DlK5DEBCjZgc5XoPIVSGIClOxA5ytQ+QokMQFKdqDzFah8BZKYACU70PkKVL4CSUyAkh3ofAWDBFgwOrkGSA5MJSwIR6a4QOcrUPkKJTEBOqJCna9Q5SuUxAToiAp1vkKVr1ASE6BkhzpfocpXWPOFkh3qfIUqX2HNF5411PkKVb5CSUyIkh3qfIUqX6EkJkTJDnW+QpWvUBITomSHOl+hylcoiQlRskOdr3CQZK2zrCjZIZJnHSZaJTQhEjqbv6jC4N9aaUlNiGcOTSTXag6SraYEJ8SThyaSbjUH+VZTshMG2MBs/jaUH6RcTYlPGOLySNLVHGRdzTrtao4kqpHEqznIvJreaPMjmVdzkHo169yriae6TST7ag7Sr2adfzXxdLeJZGDNQQrWDCc6AEnCmgP86tT9SAdgmX4t1V/n+k085Y5m+wcE1hl8tAOwdP8w398k/E08aY+l/Ic5/zqNj61cGJbzHyb9m6y/iaf9sbz/MPHfZP5NfABjuf9h8r/O52OTG8OS/8Psf5P+N/Hxjx0ADE8AmiMAEz9AwA4BBqcAzGoOmvBDBOQggA1OApjVHDbhEQA5DGCD0wBWJ/gZY+gQQA4E2OBEgNVJfjZ2ZIUwODgVYHWin40cWyEHA2xwMsDqZD8bObpCDgfY4HSA1Ql/NnJ8hRwQsMEJAauT/qONiJA4OCVgdeKfjZyBIQcFbHBSwOrkPxs5B0MOC9jgtIDVBwBs5CwMOTDo/q0+v/8uikpEH5pz/PW6/V7LWP0y7tvDfTnIa0vynF8O4/Nfv3/3x/nnv36DE335N2msUSO6b2CAtv7W+l+GBIqurVS9cqFXLk1P9/OcXo8LKuf6jVwQkLRpV+MC7wLgHFFb/eVlryIMgQrTaaTkLEZTpl0Y0GvuvwX5ZXi0huv1ReCWBKDSBiqdmSqzXOtdF7SfGxL1NZfeACVARyPkWlRVh0cKenWAW7Ka/pEFwAboV5oe/RqqXpsD+HVoY7O9sbO+WKhqLh8CjQbcc+f4d7geCvgGetEhjoLuChzgEezHGTXM1CHpgf7zaGFH/flTryoAQzOk0d7/aA2oAV0X0ppaf14AqOu10dpaeSqh1+P3enyiHvB9KYzQMAgy2ihuf9wMvIHVojVS/xUqdAaGU4sWRdvP65ApkflQG7Fq8GNFqAtOZBYNcPizKzBlgCgc0hjob9grDr9PAQrBTBHSaqndmA0CKNBm0YaN/GQSa364IrGINdV+RAjqaYJ60mZEedEoXOOotCnzv02jDblJtddoA+Bs2rCcugoVKAae2rSWhK+MgDYETThTTfteCBytcO1D1YbfsQqqCly0yT5qV/4ChWDk2mRssIt7gU6Atk0LBvpbGKAlYXAhu4i9AwDGMVwJ0ZZC+HX+QCWIXMQ9QfdaAlACli4WbapoF1XtCoaXz4XQgqDMEYF5jKb48AMCGBTgyq9puJUh95MUheglPGCaBD76tNja/kQAOggrSozQw8svwHoEVDegKdNuUQSrQDB5uDSQx2+EBGpBld1ZTh54VuoMvAxoHYu97gCYBuPXolUbPl0CFIGQSlz+wHdnACVw6UOsYneJAWgoMO2EtAGf7JOs7cGouRsEW7L4IMgHtOCE33cMtjGgUx0aI4cfcoL5ES4JTLsd/SZtHuqvfQMbGqDQm6dm0Bk+6NKAxkZzGxNwBqjwgkbIJzo1uFQBNBmIICFtLpTK+u1Ruq0wRjwwx3o0hA9PjMFwCacFkpa6OIw+AFbPbISCsEWDOLiGl+4C7WCedmljDL+GHAwFEC4dokr96RQQlQDDxHX88B0UoAy0JnFPRnnABKzNQAwlLuqxl0iAQoCQTUOI+H4IsAEosGkBcfL9D6AZwGATYWh/JghHkQMXHbQpDl4lDHgHMcilwYTdogLiD2i6kDYatU2vPCIFcZ/oFrwRAeqCIcec4VF3jQeoG5zGTRoXypWHYPoAaxSfFqbb5U6z9kGncRCifWJFwRIKSSl7IDr4tME7fIIAxEFQZYfIrKIMq7P8GgD0CU0t9pwH8BNodGiVRh7mAPoAgA4tYCFPbAB9YHA4NAiVW+3AghJoCohNN3hJE/QE3AjRIhv28C2AD8zzRHXak0cg8IKQadMWpPqbnaC2MAIT1elvUoBOBaHFoY1d7FZx0HqAOo9GSXdJAJxo4Ogi5gdGXqADaw5QV+JOvr8EEdALgAtohICLOkBLgbjkee0yPOgWlLS+PdxLASMTnC2IB5rKPb0gsgPafNpAbY6quHxR4zlWVg+gS2nRrX3QEHQgGJrE5Ht3ZwyYTGGWzWwX8vKbq7bhicy2NyoCLIDekFbB5ppCoAL0XEjzo7uMBvY/DBHEiNjfoA06H4xkn+gN9vQKWPQBBFxiE6kPyoDABZYIDm0DcbilDcAADydMWpyBN9uCvgN1C4iN3jxPDLoOekPju3/bGqhRvtqgqelucAfdDyrk01pmkKrwgAaPpkE+HqzuYuG+ZYaKeyQXDlNDNFXdve6gVUDb+kSH4LvIoJfgIScB4G8rI49zkcSpMM7X337//j+lb/9s"; \ No newline at end of file +window.searchData = "eJy1nW1zqzbTx7+L8zbTenkynHc+idPmap6uxKedTqbDEFtOuIKBAs5p7k6/+z0SYK+kBQvbfdXOiXa1SD897R+jv0dF9r0cfXn+e/Qep8vRF7D881Eardnoy+gpS6I0mr6ytPolrkbno02RjL6MFklUlqz8Uf7zD2/VOhmdt38dfRmN/jlvvbpgbb0usrSsis2iygoTl2dyeeT+fJRHBUsrPdJdxTC2HFxzyhZVnKWmFe+KH1Pv9yhJmFH7nW2LHl9fGC2XBSvLAfUikyPbeRW/mrZxXXRgfdbY2XFasD83rKyuos2CVVebdGn2zI3ZSpitGrNj4liyPMk+59k7MwOsLl815Y+v+SJLkgF810YLbHRMDK+s+holUbpgRrW/suplW/w09d5Xb8xsTtlVnjU2x0SwjtPq7mpuVDMvm64OGOFSjVURpeXK8GFR4eNG2WtcVqy4zNZRbEZYa7JsTY6rv8ySD/aUJYMiEEZllpwkhldWPRTxOio+B8Twyqq8NjpJDFURLc2GWFvymNoWfJAk0yS5L5asMJtYa5soSbLW5pgIvsfV27KIvk+TxGwpa8pHSXJkzVnO0gdW5HPejjdZarakcaucFblo/aS2OlkUT29ZYbaTkMIoG7OjSEiykh0QiLD7FyMx7hg5kBP0TMLS5bQsWWU2LHjxqC1+5Cw0f3gynXuq/BT18U3KZVRFXz+nA7aVvHpuuYyq6OXz4N1lTzTzePFuvuijYKrW8JhYVqxavIloHorYcOMjbEQgeWNzFIPRJl28PWzW+dUmNd961mb5Zp2vNukpdqBlFb2bPX9b8si9gHF9u7JHPR9LlxfZOucAs+U0LpZFlps9L0uXi61ltLU8ak0oFtGFmAWzMjbe8HOrehLcWR0dRcGiil3c3N6ahyBMFsl6fbL6n+L0NWFP8ZItb+I/N/Eyrj4fssxsw7CLqRRuSu4mad3ktZtj47zio77tLbPJk5uJySJHZsfGcZ+z9IKlFSvYsg3nt7h62zabcWh8g7FoPLUR8r1XgjydIlrUt4Np5zGiTj0R982hYpo0JxHTdIOwipLmKHKCdfD+e8qWA8N4ZVXGzU4eRxPEVVbMby4HhdLEscqKKlkeH82uQeY3l8aNsmuPKjk6E1RH8dgcfw/poyhJiq35KfvqNorTXTjDjrG87C6W05zqo89lvFnX0/h0vf7VMRtMtVk9bUfr9Ydzyjgu6rVpYBgnWNHkKPKDosiPX1dzlr5k2Xsdxm1UvBtmr1vDOpJ1a3hUbi1K4xUrq8GxtIYnjIVnfz6rN7HVv2JseW08zeWf1ZvY7a8YW8YnmOO2cQyO4Nizt2jOn+KX71nxPo/Kd7Ojt7B6ra2q2uqocZIt3h+inBVPi7gsM8O8FLfKuVW5szq+LeZxnsTpkHaothZH5QFZWmbFTVwa555riyQuT5GBFr4uRKaPxxAbJmFquzpDmGztTnMGf2R5VlRPmzXPtQ48ixfCttzaniaiS1ZFccKWdWQDQ1o2xkVrPDAmz1FIrUvOsyzZjZfVJhXiT/mjVqZX0dWc/8oKnii+7ncvleqtwN4pxtOL+fX93S7h9REVcfSSsPLH5i+9jiRp8rfpzc1sHk4vLx9nT09hbb/H8VkYVp85kyXSMOrXzFoHtW1XOJezh5v738P5/S+zu0HB1NpdKDg5TShfpzfTu4vZoCgaDe00Acwfp3dPV7PHQRG02tZJu+Pi/uZmJgwO6ZOdoHqaoG6v7+bh3dV8UCxcZgzTVXWyrrkcRoZIsZ+m8sfZf7/Nnubh1be7y2EjthH4Q6HtnyqYp/ubX2fh5f3t9HoYHs35P6yPTacJ56fZvJk8Lqfz6aBwXlnVTB88H37CcB6GdZKIIz9R91zN5hc/hw+P1wMnMrHohmJ/fJpAnubTX2bhb9fzn8P/fHsYFIvIVoc8kxb+b5OfPJyn+5vp7wNnWRRSmSXR56nm28fZT9dP89njYcOpzo6cdDzdzO4uw+nT02zYbMuVvVBIe6cJ4+JxNp3Pwp+uv/52//hLOJ8+/TIonnqvFTbnrZAfuE47/T3d3xwzBZZZctJue/h9/nN46NjnJ+Pw5BMAnwrvf7ubXTbt9BRe3T+G85vLwZOjSJE2zVWGq6wIq2R5uiAfHq9vp4+/H9KdPLrmzZaTr2rTm5tty81vBi78PLAoSbaNxjO6p+5WHOBhXYojPOW0cX07/WnYEGjmi3gdvZ4Q/5on1EwHIlaDhRrr32CtXYqO7Fke5i5vf/oufpz+fnn97TZsuvri4fZ22Axcp4rDpsd5svhfCWx6exv+6hwTWrRehx/OSQfG/ePFNHy6vvvpZhY+XV/OLsPffr5+vHm4v785ZLjwNFZYq4uhkBfD729xkXDB+ES7kem3O76kfbt9uPp2d0CWoH7LI2xe8zgyW2C53q5B5Te8Y64Cr6IFK3+s/2KekLl/mN1Nr8Ppw3X4y+z3PR6FwBDFYZTH4TvrTtM14XVU+Z9vD9d80/k4u5o9Pk5531/cf7ub76v8f5s85hvOgq1YUUS8kxfZJu3OzJmFcTWbhV/R61x7al8xFr70vNKlVSr1GycX/e4C11X/ybzn1J8XdPg62/fWVxtTRzU5zximVfTK9tYkFTWtTMa6Td3c5/J7GlKnKIXMm0z8x9jlWVO8q5/VWDsq3RTxgDrr0kdWWWSfUVJ9fo3KuHzI4rQa0JBnjfELN85b4yMDWtTdPiQMZDK8chqqS5EgXLO06o9jV84crV3WUX0/06SKs5353uFKPU5HUGX8mkbVptgDvRoMNjsoCNz8t3Fa7YrfXc0fWZlnaUnG1FnYvCN45nW467PGjH7c7mfoCoJVEU/rHRLIzvTwYHAH4HdTe6ZVoph5o1ff46pi5LrW5fdsZ0M/JxV3V/UsYa9FtB5W/87o6AC+s5cyrkikO+vf2RxdfZzGVRwl23cIn+5vBoXS2G/fHCx7XrkcEFaZxHkevbKv+SDizlq7vm3WgDDyIs6KuPq8YsM6qLVbsUM7SR2Gq016I44EfXMgWdB8KPbO+d2+DSZ9+gkGTsM9EfROwcMqb+bQb/TWqy+GxrJvGzYoFFYU9H6/J4jW5rDqMXQ3mySb1qek+lWIso+87tIDVoKsipJfo2RzSA1nwvqjsaYfv+eROmdHngwqq1lUpGx5SFitB9Z6OFVoBYuSKl6zaf55SFyteZR3n8WHB1Wyir8WRM7Z+yJCtkeEgxH+T33u3v7kiIpKLXOSQzTpdO9pWgt34FGUrrX3JGpaZfm5fkE/ydhb6bb8cdUu2SJeR8mANkYWx1VdRTTFdLVN6eOqTLLX7NvjtXmt3KBvtTFu5ihOPsOPLNkMAUuxOi6EVcHY/7Ew2lRvYuNkHgZheVwo4v2bAwLR7I4LI2fFOkpZWoVLftqI6CMCHQppe1w47C/++mfXCZAOQ7IZXD2eyeufYHGJt28TopcasPetompDPluH17OtBf1kRMid+553ll6Tu4uuuoVJz8vo5pUL3fw6/fZ0eTEkAGEWp5tyuThBEGtWlh1Z4q4AdibHVr7IloNqbsofUK10pvus3syopkueguwez/vo7gi/j/Cnzj1EXxzCdM92YlgwOfEbEMNgTH4HckAwB4VxogB6hl5fCPuG37AguoZgXwS9w3Bv9XgoNr+IqX+mxH8Xw1/57xiMXWVPMRx7fe8bkJ0P0bm/Ld/pNac/DG7XQ//QMHpTTnsaZG/WySAYzMFUZMVnf0XrPCHjkQqY93ic5hsyoaX7O2vLdgj8UoQd1WWbyry+beEjKmR/5fyHJ9Kvu/trlS2GVW2Ngwm4u1+Y/BylywTpB+Kl1x+bf+3tJL3vu8M/XihGfvrP5E0onQNmHSeMnD9wDbtih1SyZOWiiHODJjmTix5SGau7eO8joXIHNdzija3JFJDUbm2pQ6p4U1DsqGNXzLASDKo4KV28scU7Vc3ur0PSruIbOFmXCqb4PGu+f5P1CmAozL5q5/w9JdM6q7rwoRUWcflOQqZW1hY8tKJykdHrmVpRW3BAReoRAv2g+bpitIqpFxuwdpFbhC6XZ3v2xWq0XZnVqiril01FzwmdlUtmhwRBNu7eZh3WoC9xin/h2uvwbFt4z9P0NWYeFSUtXRAVbgsPqxA3nPjY4ENURGuy99CfzRvtz02UVh3JONXhGSpMPwWOsHOVpQ8kWmVNwYMr6jz/aTX1H/roqnC/fI2qxVtTjL88Qa7sWqEh4jHdZLTL/obTY+2TDP/bQ0dH7cJuLyjGYYi+eYxS+hzdEYMwKhqjIwMo82iBf8Zv0P5biyOrTjfrF1bcr5SPjO6PoDbMVnu+NGocSJwu4494uTkIiJ3xUVSgn9av4nSpnCp2v6jf/bF3gHl4l8wWm4p1epT+buqUf+sIH7OoH/9rZSjnf5zz5md/jb78PfpgBc/5j76MrB/sH4LR+WgVM/5dpi/P7eFoka2bVymX2WIj/vePptivbCFe3fzyXJf+cTw6fx6fO/4P7sT644/z59ZY/EH8Q+tj9y/CEEbnz0AZgmYIkqE1On+2KENLM7QkQ3t0/mxThrZmaEuGzuj82aEMHc3QkQzd0fmze+7YPzieIxm6mqErGXqj82ePqtHTDD3JcDI6f55QhhPNcCIZ+qPzZ58y9DVDXzIMRufPAWUYaIaBDADnAUh2QIcHFHoEPjQ/BEAyQcC5AJIh0CECmSLgbADJEegggUwScD6AZAl0mECmCTgj4JLGOlAgEwWcEyCZAh0qkKkCzgqQXIEOFshkAecFSLZAhwtkuoAzAyRfoAMGMmEWZ8YiCbN0wiyZMIszY5GEWTphljJHiUmKnqWIaUomzOLMWCRhlk6YJRNmcWYskjBLJ8ySCbM4MxZJmKUTZsmEWZwZiyTM0gmzZMIszoxFEmbphFkyYRZnxiIJs3TCLJkwizNjkYRZOmGWTJjNmbFJwmydMFsmzObM2CRhtk6YLRNmc2ZskjBbJ8xWVkKxFNJrIbEYyoTZnBmbJMzWCbNlwmzOjE0SZuuE2TJhNmfGJgmzdcJsmTCbM2OThNk6YbZMmM2ZsUnCbJ0wWybM5szYJGG2TpgtE+ZwZhySMEcnzJEJczgzDkmYoxPmyIQ5nBmHJMzRCXNkwhzOjEMS5uiEOcp+S2y46B0XseWSCXM4Mw5JmKMT5siEOZwZhyTM0QlzZMIczoxDEubohDkyYQ5nxiEJc3TCHJkwhzPjkIQ5OmGOTJjLmXFJwlydMFcmzOXMuCRhrk6YKxPmcmZckjBXJ8yVCXM5My5JmKsT5sqEuZwZlyTM1QlzlV292NaThLnExl4mzOXMuCRhrk6YKxPmcmZckjBXJ8yVCXM5My5JmKsT5sqEuZwZlyTM1QlzZcI8zoxHEubphHkyYR5nxiMJ83TCPJkwjzPjkYR5OmGeTJjHmfFIwjydME8mzOPMeCRhnk6YJxPmcWY8kjBPJ8xTzo7i8EifHonjo0yYx5nxSMI8nTBPJszjzHgkYZ5OmCcT5nFmPJIwTyfMkwmbcGYmJGETnbCJTNiEMzMhCZvohE1kwiacmQlJ2EQnbCITNuHMTEjCJjphE5mwCWdmQhI20QmbyIRNODMTkrCJTthEJmzCmZmQhE10wiZKhkKkKOgcBZGkkAmbcGYmJGETnbCJTNiEMzMhCZvohE1kwnzOjE8S5uuE+TJhPmfGJwnzdcJ8mTCfM+OThPk6Yb5MmM+Z8UnCfJ0wXybM58z4JGG+TpgvE+ZzZnySMF8nzJcJ8zkzPkmYrxPmy4T5nBmfJMzXCfOVPJhIhNGZMCIVJhPmc2Z8kjBfJ8yXCQs4MwFJWKATFsiEBdCVagx0wAIZsIAjE5B0BjpggQxYwJEJSDoDHbBABizgyAQknYEOWCADFnBkApLOQAcskAELODIB3WA6YIEMWMCRCUg6Ax2wQAYs4MgEJJ2BDligJFtFttU/d8Y/jINANibyrWrCVRBGJ9PGVMpVybmORdJ13JGyJdKuYyXvOhaJ1zGdth0Tqdexknsdi+TrmE7djon061jJv45FAnZMp2/HRAp2rORgxyIJO3aoLqj/qDpQ8rBjkYgd02ncMZGKHSu52LFIxo49it36j6oDJR87FgnZMZ3OHRMp2bGSkx2LpOyYTumOibTsWAGxSf3TJFLJfy37X6f/aRJJAUAhsZYAugQEgkRVBahlgA4RgRICVCWglgI6hARKDFDVgFoO6BATKEFAVQRqSaBDUKBEAVUVqGWBjrFACQOqMlBLAx0oU+KAqg7U8kCHrEEJBIpCACLpDx3SBiESgKISgFWTSI8FQigARSkAqyaRHguEWACKWgBCAABa5gBCMABFMQAhAgAtdQAhGoCiGoAQAoCWO4AQDkBRDkCIAUBLHkCIB6CoByAEAXo5B0I/AEVAAKEJ0OsqEBICKBoCCFkAaNkFCBkBFB0BhDQAtPQChJQAipYAQh4AWn4BQk4ARU8AuxZF6ZFASAqgaApg1xzSI4GQFUDRFcCuOaRHAiEtgKItgJALgJZjgJAXQNEXQEgGQEsyQEgMoGgMIGQDoGUZIGQGUHQGENIB0NIMEFIDKFoDCPkAbHpOJuQGUPQGEBIC0BINEJIDKJoDCBkBaJkGCNkBFN0BhJQAXKohRjMhPYCiPYBTS/Q+7YAgUdEfQEgKQEs2QEgQoGgQ4Lg9vUDIEKDoECCkBaB1HyCkCFC0CBDyAtDaDxByBCh6BAiJAbj+QzUiQaKiSYAT9HUjQaKiS4A77ulGQpoARZsAITcArUIBIU+Aok+Aa/V0IyFRgKJRgJAdgJaygJApQNEpwHV6tliEVAGKVgFCfgBaDwNCrgBFrwC3JpEezoRkAYpmAW5NIr2wELIFKLoFuDWJ9MJCSBegaBcg5Ajg+hgFEkGiol+AkCSA1siAkDBA0TBAyBId+wtCxQBFxgChTACtswGhZIAiZYBQJ4DW2oBQM0CRM0AoFEDrbUAoGqBIGuDVby/RQ4FQNUCRNcDzenqRUDZAkTZAqBVAC3dAqBugyBsgFAugxTsgFA5QJA4QqgXQAh4QKgcoMgdMahDpoUAoHaBIHSDUC6CFPCDUDlDkDhAKBtBiHhCKByiSBwgVA2hBDwjVAxTZA4SSAbSoB4TyAYr0AULNAFrYA0L9AEX+gEn9Lh2NMqGAgCKBgFA1gBb4gFBBQJFBQCgbQIt8QCghoEghINQNoIU+INQQUOQQEAoHePTiTCgioEgi4EPP/oJQRUCRRcCvSaRRJpQRUKQR8O2+RyBIVOQREIoH0LIjEAoJKBIJCNUDaOkRCJUEFJkEhPIBtPwIhFICilQCfv1mJz0WCLUEFLkEhAICtAwJhGICimQCQgUBWooEQjUBRTYBoYQALUcCoZyAIp2AkEOAliSBkE/afxNv1X+womLL6/rt+ufnUfsN+L9HYfPKPd83iJr42/d8Z/Dl73/+2b1k/+Xvf9B79vxvvLLaDWt/7I68OS7y5roDvJXYj4eCMo2p/UDazkuAggm82o4nV4zcod8DoufzLPR8E8fIlXpbHnpMGz2mbeisWryJX73k7S+xcHgBCs+3zDw2vxPEbhz8lJ6Rm/pqzyhJ2p/kIH8T7M7MW5KVLGdFLi6USzL+Y6OdQwv1gmX2lLLD8k3crIk8AvIIZh7FN0TQU9o+ekzHbnhzzfAlPsSNXI8RKFz0GeZxib4/jp1ilsdm+O2cZrk2agPUz4Fv6K++UGLnBI1ZtzYKTPsjTZk2xDAppm7KqtgsxHUJqLVQW5n56bmLa+d2gppsYjg0qEt7dh59NHZ9Q1LM7zVB9aCpxg8G1CPdBo36HbWwO6SJS3FzbVVfP4v8odHoGsIo39KMfKHh5xoOFOHrQ1x7G8V6dKj13AGtJ0MZoL4OzBbb3fUGeCbAdI/Nxon8BUfkzMLToG3WWrsvb2JHeC9hm02j3XexolUX+fXMWo28dhd5RLOMZ9h8wuMuTmlooZE1wJmITppc0Nxi6Ad9jwXvEfFKYbhRaT4mjbxI2wDLrD93323B4eDV0DOb45qfuBIb4ImHvAWmYaFvEOHtL2bfcNbBH7rEuwnc5rZZ/1G3GSIckMeJGaXCYf1b8+1HBnGMuCNss8ftvucczY6IFHfAozdflxHfOkBbAOTNcPffeT88ihFh45ptkfkPtykA8TxnuJTqH67FEyc+Bdhm46P36kQ0NSGGDM8XhtfjoTpQy/pmLWtyXSCqADW4b7YA9N/eiFyjEeGbTZT77/pE7tG52Debqnou60R+0QbAN9t8ddwjjaYbFOvEPFZ8JzRyhgKcGAco5SmUIylejAxPGNxjkjS9xAcI9uigCJ0h/nbjYudccoyGnGM85Jqkg7RbRJvFgW6y6o3JiznOGhl3Ln+23UPW/5EeFY0ex3j0iMFDt52Nntk2fmjhsPG2yooqWUpBokd3jB+9GYL6M4OUMTN291m9aQsdTuUZph2wq/bbtOhRUfM5xs1XL+5RFb18ErkMvKu3jJ8X+azixbsMo4UWDMt4wahyOS50lrIM18z6JNscG6PyvWD6HgkzDYYH2+1H/rAfvKjXR8bzEVcRTRzK3cr1LZSQMxto1Edu8HyKU4a+2VaQvP4JHxjwFhhMwxSfJMUNh/f3hjs19eIVvLnCM59lFpR2hyealBEegRl23feRIreo6YJBQW5HmvzUmGLDMdZ7Cy0KFTWo4fGr9tw41o69OAFhmZGYsHQZ8i8SVdTeAwFkmAzn/oQ7eYpBjWhIzvaWDtwXeOtim+0Ikk2SNZjUx66SPNABPr8a5sHXURqvWFnV0+A6Kt6ZhCI+Eztm3bH9QDg+a+KnrvdB5yMwXJV2lxviLQz2ODaNDN3ThRsOTzJgGFSsJuSxk/GkeUQwjEy5QQQ3HZ6ybLM1V7hLV9R48FCYhusP97bLdaWriqRvjLdCY3PP6UpuR7y6mTEsiuM5CTEbtGttPZfwRdfQqfKNOrxa4unUN8tJqHdgo2jRAwdm8wF39pJl752DFo0Nxzy+TsUO8O7FbHhI/nTBDjFtmEvk+kYtA2ZlrEKN022Gc6rwJ9pvkazXkjPUvYYZ8J2zWoERAsx2Z8Q1GKkCtNsyTPDwCup0XvP08kEJDT3DGYI75H3Er97mp9fW7/e4etsGLtWB5g3bbHS3daA2ITsP0WqYKm0k9PpLs3hrjOfgidnU234HH2868dpimMJsv5+Lo8EzoqE+iG9DR3MEeq7A2JF2ERReVfA0a9if2pEVcHYDnHaGNcxBdRxbAediwHD6ki4lwo+JgTBM7OCvs+JZH4dlmHiULoPFaxw+bxnmDZoNc717pvd/mDcw7FO0DSdeCuC/xESrutncz3MS4R41A60oE3Ov+xQNvE45ZjOrkkCJxTe/8SDG2y9D4WXrU/eGtw4Ts44nT+ye9FaOWQsW0ecy3qzD5o2BaL0OPxwqn4wlTLNJVHG9yNdryjEK2nDf1Diu/Ubr9YcjbXTQODLsb8mhuvTjF+Acs96R/eWKPzT9OGYDUrqdFZ8b8fRjmOJqk9Pd0gFWrwxxbJ0SyVBJUDR09ueGlVW42qSkYuUhFD1DFGuXq2izYJXwKzlE/gzdlVnywbqbEL+15xkOxMZnmSU9XYMe3XAr0/jtyKYjf4Zqb+OvzBKis/ESZopjWUXv0pSND7eGL4k0d3TgHDxeowzFqiJbvOdRzopyEZel8koNfmPCNZvyi+wzSqrPl6iMyzyL00pZRiXFxWwf0l5Ig58UN7rh2y/NVSPYC14mDfW4kqXLRbbOuSDAllFcLIssl3oSzU+2qc/22mc8z+EtpaHEUN8ogFdHTEQttfJ9qdmchG4Xwz2Im37cvNwI0OZ5XLMhsL2cCXcHntkNX0AqkzjPo1em5KNBmoINh2X9Cl70ytLqPZYOQghas1G1vVoA75txhxq+EaDNE/ilCMtskhU+Qn6eDf+3yakJFrWVoYyCfPJW+2QF5ReRYviSeXvDH15LMW92m8VyWvAMp6X2+kw8wLBjw7asL7nGTvC5ynC4t/cH4jUEx2L4bmbFj7PiAirMPZ5fDdOG/MUtnqLgb74ncVkp4Lr4XWazeaj2yH0pSU08bxvOFOJEtqhv+8KTBT7jeWZ76O2VwRgv7MdQCJev/8JBYRoMt2nS7a4YCdyThntmdEcYjgofkQx3ZsrtMHgaw3EZvpotvH1EyUY5p+P11/AXECKPKq9x+OnMfVA7WNRQpkgVUVquFJFbWrkHuaGCQkPG8C3R6nvMf1QjL9u4rQ3fdVHkoQC7GJu5+B4liZyTx0nlAS5C4iUMfOg9wBXV2GgLYqiPfGcvZawkFWXtxgwBvpgui4iHKPmSdnD7Pf1xPsrjnCVxykZfnv/455//BykydBI="; \ No newline at end of file diff --git a/docs/classes/SolanaAgentKit.html b/docs/classes/SolanaAgentKit.html index 75d01d1..f8872a0 100644 --- a/docs/classes/SolanaAgentKit.html +++ b/docs/classes/SolanaAgentKit.html @@ -1,17 +1,21 @@ SolanaAgentKit | solana-agent-kit

Class SolanaAgentKit

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

SolanaAgentKit

-

Constructors

Constructors

  • Parameters

    • private_key: string
    • rpc_url: string
    • openai_api_key: null | string

    Returns SolanaAgentKit

    Using openai_api_key directly in constructor is deprecated. Please use the new constructor with Config object instead:

    -
    const agent = new SolanaAgentKit(privateKey, rpcUrl, { 
    OPENAI_API_KEY: 'your-key'
    }); +
    const agent = new SolanaAgentKit(privateKey, rpcUrl, {
    OPENAI_API_KEY: 'your-key'
    });
    -
  • Parameters

    • private_key: string
    • rpc_url: string
    • config: Config

    Returns SolanaAgentKit

Properties

config: Config

Configuration object

-
connection: Connection

Solana RPC connection

-
wallet: Keypair

Wallet keypair for signing transactions

-
wallet_address: PublicKey

Public key of the wallet

-

Methods

  • Parameters

    • marketId: PublicKey

    Returns Promise<string>

  • Parameters

    • title: string
    • content: string
    • requirements: string
    • tags: string[]
    • tokenMintAddress: string
    • tokenAmount: number
    • Optionalpayer: string

    Returns Promise<GibworkCreateTaskReponse>

  • Parameters

    • amount: number
    • OptionalsplmintAddress: PublicKey

    Returns Promise<{ signature: string; url: 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>

  • Returns Promise<string[]>

  • Returns Promise<string[]>

  • Parameters

    • Optionaltoken_address: PublicKey

    Returns Promise<number>

  • Parameters

    • walletAddress: PublicKey
    • OptionaltokenAddress: PublicKey

    Returns Promise<number>

  • Parameters

    • owner: PublicKey

    Returns Promise<null | string>

  • Parameters

    • owner: PublicKey

    Returns Promise<string[]>

  • Parameters

    • tld: string

    Returns Promise<string[]>

  • Parameters

    • account: PublicKey

    Returns Promise<string>

  • Parameters

    • amount: number

    Returns Promise<string>

  • Parameters

    • marketId: PublicKey
    • quantity: number
    • side: string
    • price: number

    Returns Promise<string>

  • Parameters

    • baseMint: PublicKey
    • quoteMint: PublicKey

    Returns Promise<string[]>

  • Parameters

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

    Returns Promise<MintCollectionNFTResponse>

  • Parameters

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

    Returns Promise<string[]>

  • Parameters

    • positionMintAddress: PublicKey

    Returns Promise<string>

  • Parameters

    • mintDeploy: PublicKey
    • mintPair: PublicKey
    • initialPrice: Decimal
    • feeTier: 1 | 2 | 4 | 5 | 16 | 30 | 65 | 100 | 200

    Returns Promise<string>

  • Parameters

    • depositTokenAmount: number
    • depositTokenMint: PublicKey
    • otherTokenMint: PublicKey
    • initialPrice: Decimal
    • maxPrice: Decimal
    • feeTier: 1 | 2 | 4 | 5 | 16 | 30 | 65 | 100 | 200

    Returns Promise<string>

  • Parameters

    • whirlpoolAddress: PublicKey
    • priceOffsetBps: number
    • inputTokenMint: PublicKey
    • inputAmount: Decimal

    Returns Promise<string>

  • Parameters

    • whirlpoolAddress: PublicKey
    • distanceFromCurrentPriceBps: number
    • widthBps: number
    • inputTokenMint: PublicKey
    • inputAmount: Decimal

    Returns Promise<string>

  • Parameters

    • priceFeedID: string

    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>

  • Parameters

    • domain: string

    Returns Promise<undefined | PublicKey>

  • Parameters

    • domain: string

    Returns Promise<PublicKey>

  • Parameters

    • amount: number
    • choice: "rock" | "paper" | "scissors"

    Returns Promise<string>

  • Parameters

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

    Returns Promise<string[]>

  • Parameters

    • amount: number

    Returns Promise<string>

  • Parameters

    • nftMint: PublicKey

    Returns Promise<string>

  • Parameters

    • nftMint: PublicKey
    • price: 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>

  • Parameters

    • marketId: PublicKey

    Returns Promise<string>

+
  • Parameters

    Returns SolanaAgentKit

  • Properties

    config: Config

    Configuration object

    +
    connection: Connection

    Solana RPC connection

    +
    wallet: Keypair

    Wallet keypair for signing transactions

    +
    wallet_address: PublicKey

    Public key of the wallet

    +

    Methods

    • Parameters

      • marketId: PublicKey

      Returns Promise<string>

    • Parameters

      • args: Omit<{ agent: SolanaAgentKit; price: number; tradeMint: PublicKey }, "agent">

      Returns Promise<string>

    • Parameters

      • args: Omit<{ agent: SolanaAgentKit; price: number; tradeMint: PublicKey }, "agent">

      Returns Promise<string>

    • Parameters

      • title: string
      • content: string
      • requirements: string
      • tags: string[]
      • tokenMintAddress: string
      • tokenAmount: number
      • Optionalpayer: string

      Returns Promise<GibworkCreateTaskReponse>

    • Parameters

      • amount: number
      • OptionalsplmintAddress: PublicKey

      Returns Promise<{ signature: string; url: 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>

    • Returns Promise<string[]>

    • Returns Promise<string[]>

    • Parameters

      • Optionaltoken_address: PublicKey

      Returns Promise<number>

    • Parameters

      • walletAddress: PublicKey
      • OptionaltokenAddress: PublicKey

      Returns Promise<number>

    • Parameters

      • owner: PublicKey

      Returns Promise<null | string>

    • Parameters

      • owner: PublicKey

      Returns Promise<string[]>

    • Parameters

      • tld: string

      Returns Promise<string[]>

    • Parameters

      • account: PublicKey

      Returns Promise<string>

    • Parameters

      • priceFeedID: string

      Returns Promise<string>

    • Parameters

      • tokenSymbol: string

      Returns Promise<string>

    • Parameters

      • amount: number

      Returns Promise<string>

    • Parameters

      • baseMint: PublicKey
      • quoteMint: PublicKey

      Returns Promise<string[]>

    • Parameters

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

      Returns Promise<MintCollectionNFTResponse>

    • Parameters

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

      Returns Promise<string[]>

    • Parameters

      • args: Omit<
            {
                agent: SolanaAgentKit;
                collateralAmount: number;
                collateralMint?: PublicKey;
                leverage?: number;
                price: number;
                slippage?: number;
                tradeMint?: PublicKey;
            },
            "agent",
        >

      Returns Promise<string>

    • Parameters

      • args: Omit<
            {
                agent: SolanaAgentKit;
                collateralAmount: number;
                collateralMint?: PublicKey;
                leverage?: number;
                price: number;
                slippage?: number;
                tradeMint?: PublicKey;
            },
            "agent",
        >

      Returns Promise<string>

    • Parameters

      • positionMintAddress: PublicKey

      Returns Promise<string>

    • Parameters

      • mintDeploy: PublicKey
      • mintPair: PublicKey
      • initialPrice: Decimal
      • feeTier: 1 | 2 | 4 | 5 | 16 | 30 | 65 | 100 | 200

      Returns Promise<string>

    • Parameters

      • depositTokenAmount: number
      • depositTokenMint: PublicKey
      • otherTokenMint: PublicKey
      • initialPrice: Decimal
      • maxPrice: Decimal
      • feeTier: 1 | 2 | 4 | 5 | 16 | 30 | 65 | 100 | 200

      Returns Promise<string>

    • Parameters

      • whirlpoolAddress: PublicKey
      • priceOffsetBps: number
      • inputTokenMint: PublicKey
      • inputAmount: Decimal

      Returns Promise<string>

    • Parameters

      • whirlpoolAddress: PublicKey
      • distanceFromCurrentPriceBps: number
      • widthBps: number
      • inputTokenMint: PublicKey
      • inputAmount: Decimal

      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>

    • Parameters

      • domain: string

      Returns Promise<undefined | PublicKey>

    • Parameters

      • domain: string

      Returns Promise<PublicKey>

    • Parameters

      • amount: number

      Returns Promise<string>

    • Parameters

      • amount: number
      • choice: "rock" | "paper" | "scissors"

      Returns Promise<string>

    • Parameters

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

      Returns Promise<string[]>

    • Parameters

      • amount: number

      Returns Promise<string>

    • Parameters

      • nftMint: PublicKey

      Returns Promise<string>

    • Parameters

      • nftMint: PublicKey
      • price: 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>

    • Parameters

      • marketId: PublicKey

      Returns Promise<string>

    diff --git a/docs/functions/createSolanaTools.html b/docs/functions/createSolanaTools.html index 58a1447..40c059b 100644 --- a/docs/functions/createSolanaTools.html +++ b/docs/functions/createSolanaTools.html @@ -1 +1 @@ -createSolanaTools | solana-agent-kit

    Function createSolanaTools

    • Parameters

      Returns (
          | SolanaBalanceTool
          | SolanaBalanceOtherTool
          | SolanaTransferTool
          | SolanaDeployTokenTool
          | SolanaDeployCollectionTool
          | SolanaMintNFTTool
          | SolanaTradeTool
          | SolanaLimitOrderTool
          | SolanaCancelAllOrdersTool
          | SolanaWithdrawAllTool
          | SolanaRequestFundsTool
          | SolanaRegisterDomainTool
          | SolanaResolveDomainTool
          | SolanaGetDomainTool
          | SolanaGetWalletAddressTool
          | SolanaPumpfunTokenLaunchTool
          | SolanaCreateImageTool
          | SolanaLendAssetTool
          | SolanaTPSCalculatorTool
          | SolanaStakeTool
          | SolanaFetchPriceTool
          | SolanaTokenDataTool
          | SolanaTokenDataByTickerTool
          | SolanaCompressedAirdropTool
          | SolanaClosePosition
          | SolanaOrcaCreateCLMM
          | SolanaOrcaCreateSingleSideLiquidityPool
          | SolanaOrcaFetchPositions
          | SolanaOrcaOpenCenteredPosition
          | SolanaOrcaOpenSingleSidedPosition
          | SolanaRaydiumCreateAmmV4
          | SolanaRaydiumCreateClmm
          | SolanaRaydiumCreateCpmm
          | SolanaOpenbookCreateMarket
          | SolanaManifestCreateMarket
          | SolanaPythFetchPrice
          | SolanaResolveAllDomainsTool
          | SolanaGetOwnedDomains
          | SolanaGetOwnedTldDomains
          | SolanaGetAllTlds
          | SolanaGetMainDomain
          | SolanaCreateGibworkTask
          | SolanaRockPaperScissorsTool
          | SolanaTipLinkTool
          | SolanaListNFTForSaleTool
          | SolanaCancelNFTListingTool
      )[]

    +createSolanaTools | solana-agent-kit

    Function createSolanaTools

    • Parameters

      Returns (
          | SolanaBalanceTool
          | SolanaBalanceOtherTool
          | SolanaTransferTool
          | SolanaDeployTokenTool
          | SolanaDeployCollectionTool
          | SolanaMintNFTTool
          | SolanaPerpCloseTradeTool
          | SolanaPerpOpenTradeTool
          | SolanaTradeTool
          | SolanaCancelAllOrdersTool
          | SolanaWithdrawAllTool
          | SolanaRequestFundsTool
          | SolanaRegisterDomainTool
          | SolanaResolveDomainTool
          | SolanaGetDomainTool
          | SolanaGetWalletAddressTool
          | SolanaPumpfunTokenLaunchTool
          | SolanaCreateImageTool
          | SolanaLendAssetTool
          | SolanaTPSCalculatorTool
          | SolanaStakeTool
          | SolanaRestakeTool
          | SolanaFetchPriceTool
          | SolanaTokenDataTool
          | SolanaTokenDataByTickerTool
          | SolanaCompressedAirdropTool
          | SolanaClosePosition
          | SolanaOrcaCreateCLMM
          | SolanaOrcaCreateSingleSideLiquidityPool
          | SolanaOrcaFetchPositions
          | SolanaOrcaOpenCenteredPosition
          | SolanaOrcaOpenSingleSidedPosition
          | SolanaRaydiumCreateAmmV4
          | SolanaRaydiumCreateClmm
          | SolanaRaydiumCreateCpmm
          | SolanaOpenbookCreateMarket
          | SolanaManifestCreateMarket
          | SolanaPythFetchPrice
          | SolanaResolveAllDomainsTool
          | SolanaGetOwnedDomains
          | SolanaGetOwnedTldDomains
          | SolanaGetAllTlds
          | SolanaGetMainDomain
          | SolanaCreateGibworkTask
          | SolanaRockPaperScissorsTool
          | SolanaTipLinkTool
          | SolanaListNFTForSaleTool
          | SolanaCancelNFTListingTool
          | SolanaFetchTokenReportSummaryTool
          | SolanaFetchTokenDetailedReportTool
      )[]

    diff --git a/docs/functions/createVercelAITools.html b/docs/functions/createVercelAITools.html new file mode 100644 index 0000000..4900cf6 --- /dev/null +++ b/docs/functions/createVercelAITools.html @@ -0,0 +1 @@ +createVercelAITools | solana-agent-kit

    Function createVercelAITools

    diff --git a/docs/functions/executeAction.html b/docs/functions/executeAction.html index 9770295..f138d97 100644 --- a/docs/functions/executeAction.html +++ b/docs/functions/executeAction.html @@ -1,2 +1,2 @@ -executeAction | solana-agent-kit

    Function executeAction

    +executeAction | solana-agent-kit

    Function executeAction

    • Execute an action with the given input

      +

      Parameters

      Returns Promise<Record<string, any>>

    diff --git a/docs/functions/findAction.html b/docs/functions/findAction.html index 956c00b..7532dff 100644 --- a/docs/functions/findAction.html +++ b/docs/functions/findAction.html @@ -1,2 +1,2 @@ -findAction | solana-agent-kit

    Function findAction

    +findAction | solana-agent-kit

    Function findAction

    • Find an action by its name or one of its similes

      +

      Parameters

      • query: string

      Returns Action | undefined

    diff --git a/docs/functions/getActionExamples.html b/docs/functions/getActionExamples.html index 66c7fcc..1d3478f 100644 --- a/docs/functions/getActionExamples.html +++ b/docs/functions/getActionExamples.html @@ -1,2 +1,2 @@ -getActionExamples | solana-agent-kit

    Function getActionExamples

    +getActionExamples | solana-agent-kit

    Function getActionExamples

    • Get examples for an action

      +

      Parameters

      • action: Action

      Returns string

    diff --git a/docs/index.html b/docs/index.html index 97d0e78..4496ee0 100644 --- a/docs/index.html +++ b/docs/index.html @@ -53,6 +53,7 @@
  • Jito Bundles
  • Pyth Price feeds for fetching Asset Prices
  • Register/resolve Alldomains
  • +
  • Perpetuals Trading with Adrena Protocol
  • @@ -61,6 +62,7 @@
  • Lending by Lulo (Best APR for USDC)
  • Send Arcade Games
  • JupSOL staking
  • +
  • Solayer SOL (sSOL)staking
  • @@ -81,6 +83,14 @@
  • +

    Vercel AI SDK Integration

    + +
  • +
  • Autonomous Modes

    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.

    @@ -159,5 +177,7 @@ Refer to CONTRIBUTING.md for detailed guidel

    Star History Chart

    Apache-2 License

    +

    If you wanna give back any tokens or donations to the OSS community -- The Public Solana Agent Kit Treasury Address:

    +

    Solana Network : EKHTbXpsm6YDgJzMkFxNU1LNXeWcUW7Ezf8mjUNQQ4Pa

    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 index 3674de1..2102f86 100644 --- a/docs/interfaces/Action.html +++ b/docs/interfaces/Action.html @@ -1,16 +1,16 @@ Action | solana-agent-kit

    Interface Action

    Main Action interface inspired by ELIZA This interface makes it easier to implement actions across different frameworks

    -
    interface Action {
        description: string;
        examples: ActionExample[][];
        handler: Handler;
        name: string;
        schema: ZodType;
        similes: string[];
    }

    Properties

    interface Action {
        description: string;
        examples: ActionExample[][];
        handler: Handler;
        name: string;
        schema: ZodType;
        similes: string[];
    }

    Properties

    description: string

    Detailed description of what the action does

    -
    examples: ActionExample[][]

    Array of example inputs and outputs for the action +

    examples: ActionExample[][]

    Array of example inputs and outputs for the action Each inner array represents a group of related examples

    -
    handler: Handler

    Function that executes the action

    -
    name: string

    Unique name of the action

    -
    schema: ZodType

    Zod schema for input validation

    -
    similes: string[]

    Alternative names/phrases that can trigger this action

    -
    +
    handler: Handler

    Function that executes the action

    +
    name: string

    Unique name of the action

    +
    schema: ZodType

    Zod schema for input validation

    +
    similes: string[]

    Alternative names/phrases that can trigger this action

    +
    diff --git a/docs/interfaces/ActionExample.html b/docs/interfaces/ActionExample.html index cce4440..5c96b15 100644 --- a/docs/interfaces/ActionExample.html +++ b/docs/interfaces/ActionExample.html @@ -1,5 +1,5 @@ ActionExample | solana-agent-kit

    Interface ActionExample

    Example of an action with input and output

    -
    interface ActionExample {
        explanation: string;
        input: Record<string, any>;
        output: Record<string, any>;
    }

    Properties

    interface ActionExample {
        explanation: string;
        input: Record<string, any>;
        output: Record<string, any>;
    }

    Properties

    explanation: string
    input: Record<string, any>
    output: Record<string, any>
    +

    Properties

    explanation: string
    input: Record<string, any>
    output: Record<string, any>
    diff --git a/docs/interfaces/BatchOrderPattern.html b/docs/interfaces/BatchOrderPattern.html new file mode 100644 index 0000000..31508ed --- /dev/null +++ b/docs/interfaces/BatchOrderPattern.html @@ -0,0 +1,7 @@ +BatchOrderPattern | solana-agent-kit

    Interface BatchOrderPattern

    interface BatchOrderPattern {
        individualQuantity?: number;
        numberOfOrders?: number;
        priceRange?: { max?: number; min?: number };
        side: string;
        spacing?: { type: "percentage" | "fixed"; value: number };
        totalQuantity?: number;
    }

    Properties

    individualQuantity?: number
    numberOfOrders?: number
    priceRange?: { max?: number; min?: number }
    side: string
    spacing?: { type: "percentage" | "fixed"; value: number }
    totalQuantity?: number
    diff --git a/docs/interfaces/CollectionDeployment.html b/docs/interfaces/CollectionDeployment.html index dde0571..c8bfe83 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;
    }

    Properties

    collectionAddress +CollectionDeployment | solana-agent-kit

    Interface CollectionDeployment

    interface CollectionDeployment {
        collectionAddress: PublicKey;
        signature: Uint8Array;
    }

    Properties

    collectionAddress: PublicKey
    signature: Uint8Array
    +

    Properties

    collectionAddress: PublicKey
    signature: Uint8Array
    diff --git a/docs/interfaces/CollectionOptions.html b/docs/interfaces/CollectionOptions.html index 175ff9e..6c3fd74 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/Config.html b/docs/interfaces/Config.html index 193bb10..5a3ca46 100644 --- a/docs/interfaces/Config.html +++ b/docs/interfaces/Config.html @@ -1,4 +1,4 @@ -Config | solana-agent-kit

    Interface Config

    interface Config {
        JUPITER_FEE_BPS?: number;
        JUPITER_REFERRAL_ACCOUNT?: string;
        OPENAI_API_KEY?: string;
    }

    Properties

    JUPITER_FEE_BPS? +Config | solana-agent-kit

    Interface Config

    interface Config {
        JUPITER_FEE_BPS?: number;
        JUPITER_REFERRAL_ACCOUNT?: string;
        OPENAI_API_KEY?: string;
    }

    Properties

    JUPITER_FEE_BPS?: number
    JUPITER_REFERRAL_ACCOUNT?: string
    OPENAI_API_KEY?: string
    +

    Properties

    JUPITER_FEE_BPS?: number
    JUPITER_REFERRAL_ACCOUNT?: string
    OPENAI_API_KEY?: string
    diff --git a/docs/interfaces/Creator.html b/docs/interfaces/Creator.html index a3fb74b..2f4ea54 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 6553e66..923975d 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/GibworkCreateTaskReponse.html b/docs/interfaces/GibworkCreateTaskReponse.html index 062d006..87ecb48 100644 --- a/docs/interfaces/GibworkCreateTaskReponse.html +++ b/docs/interfaces/GibworkCreateTaskReponse.html @@ -1,4 +1,4 @@ -GibworkCreateTaskReponse | solana-agent-kit

    Interface GibworkCreateTaskReponse

    interface GibworkCreateTaskReponse {
        signature?: string;
        status: "success" | "error";
        taskId?: string;
    }

    Properties

    signature? +GibworkCreateTaskReponse | solana-agent-kit

    Interface GibworkCreateTaskReponse

    interface GibworkCreateTaskReponse {
        signature?: string;
        status: "success" | "error";
        taskId?: string;
    }

    Properties

    signature?: string
    status: "success" | "error"
    taskId?: string
    +

    Properties

    signature?: string
    status: "success" | "error"
    taskId?: string
    diff --git a/docs/interfaces/JupiterTokenData.html b/docs/interfaces/JupiterTokenData.html index bdf6d93..36352ec 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 2f6c104..098cdff 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 59e93db..d6ac59d 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/OrderParams.html b/docs/interfaces/OrderParams.html new file mode 100644 index 0000000..c86dede --- /dev/null +++ b/docs/interfaces/OrderParams.html @@ -0,0 +1,4 @@ +OrderParams | solana-agent-kit

    Interface OrderParams

    interface OrderParams {
        price: number;
        quantity: number;
        side: string;
    }

    Properties

    Properties

    price: number
    quantity: number
    side: string
    diff --git a/docs/interfaces/PumpFunTokenOptions.html b/docs/interfaces/PumpFunTokenOptions.html index 739e7bd..a2d5e9e 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 26b3f0c..94ff87e 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/interfaces/PythFetchPriceResponse.html b/docs/interfaces/PythFetchPriceResponse.html index 825c164..36750a0 100644 --- a/docs/interfaces/PythFetchPriceResponse.html +++ b/docs/interfaces/PythFetchPriceResponse.html @@ -1,6 +1,7 @@ -PythFetchPriceResponse | solana-agent-kit

    Interface PythFetchPriceResponse

    interface PythFetchPriceResponse {
        code?: string;
        message?: string;
        price?: string;
        priceFeedID: string;
        status: "success" | "error";
    }

    Properties

    code? +PythFetchPriceResponse | solana-agent-kit

    Interface PythFetchPriceResponse

    interface PythFetchPriceResponse {
        code?: string;
        message?: string;
        price?: string;
        priceFeedID?: string;
        status: "success" | "error";
        tokenSymbol: string;
    }

    Properties

    code?: string
    message?: string
    price?: string
    priceFeedID: string
    status: "success" | "error"
    +tokenSymbol +

    Properties

    code?: string
    message?: string
    price?: string
    priceFeedID?: string
    status: "success" | "error"
    tokenSymbol: string
    diff --git a/docs/interfaces/PythPriceFeedIDItem.html b/docs/interfaces/PythPriceFeedIDItem.html new file mode 100644 index 0000000..6930839 --- /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;
    }

    Properties

    Properties

    attributes: { asset_type: string; base: string }
    id: string
    diff --git a/docs/interfaces/PythPriceItem.html b/docs/interfaces/PythPriceItem.html new file mode 100644 index 0000000..477b285 --- /dev/null +++ b/docs/interfaces/PythPriceItem.html @@ -0,0 +1,3 @@ +PythPriceItem | solana-agent-kit

    Interface PythPriceItem

    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;
                };
            }[],
        ];
    }

    Properties

    Properties

    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 };
        }[],
    ]
    diff --git a/docs/interfaces/TokenCheck.html b/docs/interfaces/TokenCheck.html new file mode 100644 index 0000000..2cc6151 --- /dev/null +++ b/docs/interfaces/TokenCheck.html @@ -0,0 +1,5 @@ +TokenCheck | solana-agent-kit

    Interface TokenCheck

    interface TokenCheck {
        risks: {
            description: string;
            level: string;
            name: string;
            score: number;
        }[];
        score: number;
        tokenProgram: string;
        tokenType: string;
    }

    Properties

    risks: { description: string; level: string; name: string; score: number }[]
    score: number
    tokenProgram: string
    tokenType: string
    diff --git a/docs/modules.html b/docs/modules.html index 37d8574..b8e5d93 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -1 +1 @@ -solana-agent-kit
    +solana-agent-kit
    diff --git a/docs/types/Handler.html b/docs/types/Handler.html index 9844f48..79d7158 100644 --- a/docs/types/Handler.html +++ b/docs/types/Handler.html @@ -1,2 +1,2 @@ Handler | solana-agent-kit

    Type Alias Handler

    Handler: (
        agent: SolanaAgentKit,
        input: Record<string, any>,
    ) => Promise<Record<string, any>>

    Handler function type for executing the action

    -

    Type declaration

      • (
            agent: SolanaAgentKit,
            input: Record<string, any>,
        ): Promise<Record<string, any>>
      • Parameters

        Returns Promise<Record<string, any>>

    +

    Type declaration

      • (
            agent: SolanaAgentKit,
            input: Record<string, any>,
        ): Promise<Record<string, any>>
      • Parameters

        Returns Promise<Record<string, any>>

    diff --git a/docs/variables/actions.html b/docs/variables/actions.html index 712f2a5..7721160 100644 --- a/docs/variables/actions.html +++ b/docs/variables/actions.html @@ -1 +1 @@ -actions | solana-agent-kit

    Variable actionsConst

    actions: Action[] = ...
    +ACTIONS | solana-agent-kit

    Variable ACTIONSConst

    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/app/api/chat/route.ts b/examples/agent-kit-nextjs-langchain/app/api/chat/route.ts index 06e6911..badd6b3 100644 --- a/examples/agent-kit-nextjs-langchain/app/api/chat/route.ts +++ b/examples/agent-kit-nextjs-langchain/app/api/chat/route.ts @@ -5,24 +5,24 @@ import { createReactAgent } from "@langchain/langgraph/prebuilt"; import { SolanaAgentKit, createSolanaTools } from "solana-agent-kit"; const llm = new ChatOpenAI({ - temperature: 0.7, - model: "gpt-4o-mini", + 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!, + 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: ` + 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 @@ -34,38 +34,38 @@ const agent = createReactAgent({ }); export async function POST(req: NextRequest) { - try { - const body = await req.json(); - const messages = body.messages ?? []; + try { + const body = await req.json(); + const messages = body.messages ?? []; - const eventStream = agent.streamEvents( - { - messages, - }, - { - version: "v2", - configurable: { - thread_id: "Solana Agent Kit!", - }, - }, - ); + 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(); - }, - }); + 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 }); - } + 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/data/DefaultRetrievalText.ts b/examples/agent-kit-nextjs-langchain/data/DefaultRetrievalText.ts index 898acba..6973d98 100644 --- a/examples/agent-kit-nextjs-langchain/data/DefaultRetrievalText.ts +++ b/examples/agent-kit-nextjs-langchain/data/DefaultRetrievalText.ts @@ -537,4 +537,4 @@ const executor = await initializeAgentExecutorWithOptions(tools, llm, { }, }); \`\`\` -`; \ No newline at end of file +`; diff --git a/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts b/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts index dc265b1..135fdd9 100644 --- a/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts +++ b/examples/agent-kit-nextjs-langchain/utils/markdownToHTML.ts @@ -2,29 +2,29 @@ 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; + 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; - }, + 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); + const rawHtml = marked.parse(markdown); + return DOMPurify.sanitize(rawHtml as string); } diff --git a/examples/persistent-agent/README.md b/examples/persistent-agent/README.md index 1ba4d37..133c179 100644 --- a/examples/persistent-agent/README.md +++ b/examples/persistent-agent/README.md @@ -13,7 +13,7 @@ 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" ## Without persistence ``` diff --git a/package.json b/package.json index 1ee3da7..7b2a016 100644 --- a/package.json +++ b/package.json @@ -1,72 +1,75 @@ { - "name": "solana-agent-kit", - "version": "1.3.4", - "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", - "@cks-systems/manifest-sdk": "^0.1.73", - "@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", - "@pythnetwork/price-service-client": "^1.9.0", - "@raydium-io/raydium-sdk-v2": "0.1.95-alpha", - "@solana/spl-token": "^0.4.9", - "@tensor-oss/tensorswap-sdk": "^4.5.0", - "@solana/web3.js": "^1.98.0", - "@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.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", - "prettier": "^3.4.2", - "ts-node": "^10.9.2", - "typescript": "^5.7.2" - } + "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\"" + }, + "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", + "@pythnetwork/price-service-client": "^1.9.0", + "@raydium-io/raydium-sdk-v2": "0.1.95-alpha", + "@solana/spl-token": "^0.4.9", + "ai": "^4.0.22", + "@tensor-oss/tensorswap-sdk": "^4.5.0", + "@solana/web3.js": "^1.98.0", + "@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.7", + "form-data": "^4.0.1", + "zod": "^3.24.1", + "langchain": "^0.3.8", + "openai": "^4.77.0", + "typedoc": "^0.27.6" + }, + "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", + "prettier": "^3.4.2", + "ts-node": "^10.9.2", + "typescript": "^5.7.2" + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac4bb30..f01ffd7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,36 +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.73 - version: 0.1.73(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10) + 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.36 - version: 0.2.36(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + version: 0.2.38(@langchain/core@0.3.27(openai@4.77.3(zod@3.24.1))) '@langchain/openai': specifier: ^0.3.16 - version: 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + 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) @@ -49,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) + 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) '@pythnetwork/price-service-client': specifier: ^1.9.0 - version: 1.9.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 1.9.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@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.98.0 - version: 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + 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.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10) + version: 4.5.0(bufferutil@4.0.9)(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 @@ -100,10 +106,10 @@ importers: version: 4.0.1 langchain: specifier: ^0.3.8 - 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.9)(openai@4.77.0(zod@3.24.1)) + 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.77.0 - version: 4.77.0(zod@3.24.1) + version: 4.77.3(zod@3.24.1) typedoc: specifier: ^0.27.6 version: 0.27.6(typescript@5.7.2) @@ -119,13 +125,13 @@ importers: version: 5.0.1 '@types/node': specifier: ^22.10.2 - version: 22.10.2 + version: 22.10.5 '@typescript-eslint/eslint-plugin': specifier: ^8.18.2 - version: 8.18.2(@typescript-eslint/parser@8.18.2(eslint@8.57.1)(typescript@5.7.2))(eslint@8.57.1)(typescript@5.7.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: ^8.18.2 - version: 8.18.2(eslint@8.57.1)(typescript@5.7.2) + version: 8.19.0(eslint@8.57.1)(typescript@5.7.2) eslint: specifier: ^8.56.0 version: 8.57.1 @@ -140,13 +146,53 @@ importers: 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'} @@ -164,8 +210,8 @@ packages: '@cfworker/json-schema@4.0.3': resolution: {integrity: sha512-ZykIcDTVv5UNmKWSTLAs3VukO6NDJkkSKxrgUTDPBkAlORVT3H9n5DbRjRl8xIotklscHdbLIa0b9+y3mQq73g==} - '@cks-systems/manifest-sdk@0.1.73': - resolution: {integrity: sha512-IcRM7k3YZ/jK5nJwE3xGp2Xg7Um4/XCeqrLs5yB3+IjS7W089Qs/prJXdRGKbFwCLkMt9ds6pElHufQr8an0Iw==} + '@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==} @@ -251,8 +297,8 @@ packages: '@ethersproject/sha2@5.7.0': resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==} - '@gerrit0/mini-shiki@1.24.4': - resolution: {integrity: sha512-YEHW1QeAg6UmxEmswiQbOVEg1CW22b1XUD/lNTliOsu0LD0wqoyleFMnmbTp697QE0pcadQiR5cVtbbAPncvpw==} + '@gerrit0/mini-shiki@1.26.1': + resolution: {integrity: sha512-gHFUvv9f1fU2Piou/5Y7Sx5moYxcERbC7CXc6rkDLQTUBg5Dgg9L4u29/nHqfoQ3Y9R0h0BcOhd14uOEZIBP7Q==} '@humanfs/core@0.19.1': resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} @@ -297,8 +343,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': @@ -313,11 +359,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.36': - resolution: {integrity: sha512-zxk7ZCVxP0/Ut9785EiXCS7BE7sXd8cu943mcZUF2aNFUaQRTBbbiKpNdR3nb1+xO/B+HVktrJT2VFdkAywnng==} + '@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' @@ -485,8 +531,8 @@ packages: '@noble/curves@1.4.2': resolution: {integrity: sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==} - '@noble/curves@1.7.0': - resolution: {integrity: sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==} + '@noble/curves@1.8.0': + resolution: {integrity: sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==} engines: {node: ^14.21.3 || >=16} '@noble/hashes@1.4.0': @@ -497,12 +543,8 @@ packages: 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': @@ -537,8 +579,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 @@ -585,20 +627,26 @@ packages: '@scure/bip39@1.3.0': resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} - '@shikijs/core@1.24.4': - resolution: {integrity: sha512-jjLsld+xEEGYlxAXDyGwWsKJ1sw5Pc1pnp4ai2ORpjx2UX08YYTC0NNqQYO1PaghYaR+PvgMOGuvzw2he9sk0Q==} + '@shikijs/core@1.26.1': + resolution: {integrity: sha512-yeo7sG+WZQblKPclUOKRPwkv1PyoHYkJ4gP9DzhFJbTdueKR7wYTI1vfF/bFi1NTgc545yG/DzvVhZgueVOXMA==} - '@shikijs/engine-javascript@1.24.4': - resolution: {integrity: sha512-TClaQOLvo9WEMJv6GoUsykQ6QdynuKszuORFWCke8qvi6PeLm7FcD9+7y45UenysxEWYpDL5KJaVXTngTE+2BA==} + '@shikijs/engine-javascript@1.26.1': + resolution: {integrity: sha512-CRhA0b8CaSLxS0E9A4Bzcb3LKBNpykfo9F85ozlNyArxjo2NkijtiwrJZ6eHa+NT5I9Kox2IXVdjUsP4dilsmw==} - '@shikijs/engine-oniguruma@1.24.4': - resolution: {integrity: sha512-Do2ry6flp2HWdvpj2XOwwa0ljZBRy15HKZITzPcNIBOGSeprnA8gOooA/bLsSPuy8aJBa+Q/r34dMmC3KNL/zw==} + '@shikijs/engine-oniguruma@1.26.1': + resolution: {integrity: sha512-F5XuxN1HljLuvfXv7d+mlTkV7XukC1cawdtOo+7pKgPD83CAB1Sf8uHqP3PK0u7njFH0ZhoXE1r+0JzEgAQ+kg==} - '@shikijs/types@1.24.4': - resolution: {integrity: sha512-0r0XU7Eaow0PuDxuWC1bVqmWCgm3XqizIaT7SM42K03vc69LGooT0U8ccSR44xP/hGlNx4FKhtYpV+BU6aaKAA==} + '@shikijs/langs@1.26.1': + resolution: {integrity: sha512-oz/TQiIqZejEIZbGtn68hbJijAOTtYH4TMMSWkWYozwqdpKR3EXgILneQy26WItmJjp3xVspHdiUxUCws4gtuw==} - '@shikijs/vscode-textmate@9.3.1': - resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==} + '@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==} @@ -801,6 +849,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==} @@ -810,39 +861,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==} @@ -858,51 +936,51 @@ packages: '@types/ws@8.5.13': resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==} - '@typescript-eslint/eslint-plugin@8.18.2': - resolution: {integrity: sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==} + '@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': ^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@8.18.2': - resolution: {integrity: sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==} + '@typescript-eslint/parser@8.19.0': + resolution: {integrity: sha512-6M8taKyOETY1TKHp0x8ndycipTVgmp4xtg5QpEZzXxDhNvvHOJi5rLRkLr8SK3jTgD5l4fTlvBiRdfsuWydxBw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.18.2': - resolution: {integrity: sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==} + '@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@8.18.2': - resolution: {integrity: sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==} + '@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.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.18.2': - resolution: {integrity: sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==} + '@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@8.18.2': - resolution: {integrity: sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==} + '@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: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.18.2': - resolution: {integrity: sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==} + '@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.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.18.2': - resolution: {integrity: sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==} + '@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': @@ -916,6 +994,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: @@ -930,10 +1012,22 @@ 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==} @@ -966,6 +1060,9 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + assert@2.1.0: resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} @@ -1030,6 +1127,10 @@ packages: 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==} @@ -1071,10 +1172,14 @@ packages: 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'} @@ -1148,6 +1253,21 @@ 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==} @@ -1168,6 +1288,14 @@ packages: 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'} @@ -1210,13 +1338,24 @@ 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'} @@ -1243,6 +1382,9 @@ packages: 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==} @@ -1252,6 +1394,14 @@ packages: 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'} @@ -1277,6 +1427,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'} @@ -1357,6 +1510,10 @@ 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==} @@ -1377,9 +1534,23 @@ 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'} + 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'} @@ -1424,6 +1595,10 @@ 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 @@ -1470,14 +1645,26 @@ 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-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'} glob-parent@5.1.2: @@ -1556,9 +1743,17 @@ 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'} + humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + 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==} @@ -1581,6 +1776,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'} + ipaddr.js@2.2.0: resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} engines: {node: '>= 10'} @@ -1601,8 +1800,8 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -1625,6 +1824,10 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + 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'} @@ -1681,6 +1884,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==} @@ -1692,6 +1898,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==} @@ -1713,12 +1924,13 @@ packages: keyv@4.5.4: resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} - langchain@0.3.8: - resolution: {integrity: sha512-EiAHFgBdThuXFmIx9j81wjdPItpRsw0Ck4r5dyhB74gyhehRGna/UK2CTqeKVnIUM/f4g4JbxUgAU4voXljDMw==} + 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': '*' @@ -1736,6 +1948,8 @@ packages: optional: true '@langchain/aws': optional: true + '@langchain/cerebras': + optional: true '@langchain/cohere': optional: true '@langchain/google-genai': @@ -1836,6 +2050,13 @@ 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==} + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -1844,6 +2065,10 @@ packages: 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==} @@ -1874,6 +2099,11 @@ 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 + minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} @@ -1895,6 +2125,9 @@ packages: 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==} @@ -1910,6 +2143,10 @@ 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==} @@ -1937,6 +2174,10 @@ packages: 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'} @@ -1949,14 +2190,18 @@ 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.1: - resolution: {integrity: sha512-dekySTEvCxCj0IgKcA2uUCO/e4ArsqpucDPcX26w9ajx+DvMWLc5eZeJaRQkd7oC/+rwif5gnT900tA34uN9Zw==} + oniguruma-to-es@0.10.0: + resolution: {integrity: sha512-zapyOUOCJxt+xhiNRPPMtfJkHGsZ98HHB9qJEkdT8BGytO/+kpe4m1Ngf0MzbzTmhacn11w9yGeDP6tzDhnCdg==} - openai@4.77.0: - resolution: {integrity: sha512-WWacavtns/7pCUkOWvQIjyOfcdr9X+9n9Vvb0zFeKVDAqwCMDHB+iSr24SVaBAhplvSG6JrRXFpcNM9gWhOGIw==} + openai@4.77.3: + resolution: {integrity: sha512-wLDy4+KWHz31HRFMW2+9KQuVuT2QWhs0z94w1Gm1h2Ut9vIHr9/rHZggbykZEfyiaJRVgw8ZS9K6AylDWzvPYw==} hasBin: true peerDependencies: zod: ^3.23.8 @@ -2008,6 +2253,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'} @@ -2028,6 +2277,9 @@ packages: 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'} @@ -2075,6 +2327,10 @@ packages: 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==} @@ -2086,12 +2342,28 @@ 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'} @@ -2147,6 +2419,16 @@ 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'} @@ -2156,10 +2438,21 @@ packages: 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'} @@ -2168,8 +2461,24 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shiki@1.24.4: - resolution: {integrity: sha512-aVGSFAOAr1v26Hh/+GBIsRVDWJ583XYV7CuNURKRWh9gpGv4OdbisZGq96B9arMYTZhTQkmRF5BrShOSTvNqhw==} + shiki@1.26.1: + resolution: {integrity: sha512-Gqg6DSTk3wYqaZ5OaYtzjcdxcBvX5kCy24yvRJEgjT5U+WHlmqCThLuBUx0juyxQBi+6ug53IGeuQS07DWwpcw==} + + 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==} @@ -2192,6 +2501,10 @@ packages: 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-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -2237,6 +2550,11 @@ 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} @@ -2250,6 +2568,10 @@ packages: 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==} @@ -2266,6 +2588,10 @@ 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==} @@ -2323,6 +2649,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==} @@ -2384,9 +2714,22 @@ 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'} @@ -2400,6 +2743,10 @@ packages: 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 @@ -2415,6 +2762,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==} @@ -2490,8 +2841,8 @@ packages: xsalsa20@1.2.0: resolution: {integrity: sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==} - yaml@2.6.1: - resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} engines: {node: '>= 14'} hasBin: true @@ -2519,24 +2870,61 @@ packages: 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 @@ -2551,23 +2939,25 @@ snapshots: '@cfworker/json-schema@4.0.3': {} - '@cks-systems/manifest-sdk@0.1.73(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(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: '@metaplex-foundation/beet': 0.7.2 '@metaplex-foundation/rustbin': 0.3.5 - '@metaplex-foundation/solita': 0.12.2(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.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) + '@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.8)(utf-8-validate@5.0.10) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) zstddec: 0.0.2 transitivePeerDependencies: - bufferutil @@ -2578,10 +2968,10 @@ snapshots: - typescript - utf-8-validate - '@coral-xyz/anchor@0.26.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)': dependencies: - '@coral-xyz/borsh': 0.26.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.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)) + '@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 @@ -2600,11 +2990,11 @@ snapshots: - encoding - utf-8-validate - '@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)': 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) + '@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 @@ -2621,15 +3011,15 @@ snapshots: - encoding - utf-8-validate - '@coral-xyz/borsh@0.26.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.8)(utf-8-validate@5.0.10))': + '@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.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 @@ -2719,11 +3109,11 @@ snapshots: '@ethersproject/logger': 5.7.0 hash.js: 1.1.7 - '@gerrit0/mini-shiki@1.24.4': + '@gerrit0/mini-shiki@1.26.1': dependencies: - '@shikijs/engine-oniguruma': 1.24.4 - '@shikijs/types': 1.24.4 - '@shikijs/vscode-textmate': 9.3.1 + '@shikijs/engine-oniguruma': 1.26.1 + '@shikijs/types': 1.26.1 + '@shikijs/vscode-textmate': 10.0.1 '@humanfs/core@0.19.1': {} @@ -2766,14 +3156,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.14(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 @@ -2783,57 +3173,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.36(@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: @@ -2843,11 +3233,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 @@ -2856,10 +3246,10 @@ snapshots: - encoding - utf-8-validate - '@metaplex-foundation/beet-solana@0.3.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: @@ -2868,10 +3258,10 @@ snapshots: - supports-color - utf-8-validate - '@metaplex-foundation/beet-solana@0.4.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@metaplex-foundation/beet-solana@0.4.0(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) + '@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: @@ -2880,10 +3270,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.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.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: @@ -2927,13 +3317,13 @@ snapshots: '@metaplex-foundation/cusper@0.0.2': {} - '@metaplex-foundation/mpl-auction-house@2.5.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(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)': dependencies: '@metaplex-foundation/beet': 0.6.1 - '@metaplex-foundation/beet-solana': 0.3.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) '@metaplex-foundation/cusper': 0.0.2 - '@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@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.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 @@ -2943,15 +3333,15 @@ snapshots: - typescript - utf-8-validate - '@metaplex-foundation/mpl-bubblegum@0.7.0(bufferutil@4.0.8)(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)': dependencies: '@metaplex-foundation/beet': 0.7.1 - '@metaplex-foundation/beet-solana': 0.4.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@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.8)(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.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@solana/spl-token': 0.1.8(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/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 @@ -2961,19 +3351,19 @@ snapshots: - typescript - utf-8-validate - '@metaplex-foundation/mpl-core@1.1.1(@metaplex-foundation/umi@0.9.2)(@noble/hashes@1.6.1)': + '@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.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)': + '@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.2 - '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@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.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.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: @@ -3002,12 +3392,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@metaplex-foundation/solita@0.12.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@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.8)(utf-8-validate@5.0.10) + '@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.8)(utf-8-validate@5.0.10) + '@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 @@ -3021,18 +3411,18 @@ snapshots: - 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.8)(utf-8-validate@5.0.10))': + '@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 @@ -3040,12 +3430,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: @@ -3068,11 +3458,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: @@ -3096,16 +3486,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': @@ -3122,17 +3512,15 @@ snapshots: dependencies: '@noble/hashes': 1.4.0 - '@noble/curves@1.7.0': + '@noble/curves@1.8.0': dependencies: - '@noble/hashes': 1.6.0 + '@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: @@ -3146,11 +3534,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 @@ -3162,19 +3550,19 @@ snapshots: '@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.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/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 @@ -3183,15 +3571,15 @@ snapshots: '@pkgr/core@0.1.1': {} - '@pythnetwork/price-service-client@1.9.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@pythnetwork/price-service-client@1.9.0(bufferutil@4.0.9)(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)) + isomorphic-ws: 4.0.1(ws@8.18.0(bufferutil@4.0.9)(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) + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - debug @@ -3201,11 +3589,11 @@ snapshots: 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 @@ -3227,11 +3615,11 @@ snapshots: dependencies: tslib: 2.8.1 - '@saberhq/solana-contrib@1.15.0(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bn.js@5.2.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.8)(utf-8-validate@5.0.10) + '@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 @@ -3255,37 +3643,45 @@ snapshots: '@noble/hashes': 1.4.0 '@scure/base': 1.1.9 - '@shikijs/core@1.24.4': + '@shikijs/core@1.26.1': dependencies: - '@shikijs/engine-javascript': 1.24.4 - '@shikijs/engine-oniguruma': 1.24.4 - '@shikijs/types': 1.24.4 - '@shikijs/vscode-textmate': 9.3.1 + '@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.4': + '@shikijs/engine-javascript@1.26.1': dependencies: - '@shikijs/types': 1.24.4 - '@shikijs/vscode-textmate': 9.3.1 - oniguruma-to-es: 0.8.1 + '@shikijs/types': 1.26.1 + '@shikijs/vscode-textmate': 10.0.1 + oniguruma-to-es: 0.10.0 - '@shikijs/engine-oniguruma@1.24.4': + '@shikijs/engine-oniguruma@1.26.1': dependencies: - '@shikijs/types': 1.24.4 - '@shikijs/vscode-textmate': 9.3.1 + '@shikijs/types': 1.26.1 + '@shikijs/vscode-textmate': 10.0.1 - '@shikijs/types@1.24.4': + '@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: @@ -3501,11 +3897,11 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder - '@solana/spl-account-compression@0.1.10(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(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)': dependencies: '@metaplex-foundation/beet': 0.7.2 - '@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: 0.7.0 js-sha3: 0.8.0 @@ -3516,59 +3912,59 @@ snapshots: - supports-color - utf-8-validate - '@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-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.1.8(bufferutil@4.0.8)(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.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: 6.0.3 buffer-layout: 1.2.2 @@ -3578,12 +3974,12 @@ snapshots: - encoding - utf-8-validate - '@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.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 @@ -3592,12 +3988,12 @@ snapshots: - typescript - utf-8-validate - '@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@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-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 @@ -3606,13 +4002,13 @@ 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.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.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-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 @@ -3621,13 +4017,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.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.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.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 @@ -3636,13 +4032,13 @@ 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.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.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.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 @@ -3655,20 +4051,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 @@ -3677,20 +4073,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 @@ -3703,14 +4099,14 @@ snapshots: dependencies: tslib: 2.8.1 - '@tensor-hq/tensor-common@8.3.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(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.26.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@metaplex-foundation/mpl-auction-house': 2.5.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10) - '@metaplex-foundation/mpl-bubblegum': 0.7.0(bufferutil@4.0.8)(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.8)(utf-8-validate@5.0.10))(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@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.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 @@ -3728,14 +4124,14 @@ snapshots: - typescript - utf-8-validate - '@tensor-oss/tensorswap-sdk@4.5.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)': + '@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.8)(utf-8-validate@5.0.10) + '@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.8)(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.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) - '@tensor-hq/tensor-common': 8.3.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10) + '@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 @@ -3753,11 +4149,11 @@ snapshots: - typescript - utf-8-validate - '@tiplink/api@0.3.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(sodium-native@3.4.1)(utf-8-validate@5.0.10)': + '@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.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.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 @@ -3783,7 +4179,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: @@ -3791,34 +4192,54 @@ 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 @@ -3826,10 +4247,25 @@ snapshots: 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': {} @@ -3838,20 +4274,20 @@ 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@8.18.2(@typescript-eslint/parser@8.18.2(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': 8.18.2(eslint@8.57.1)(typescript@5.7.2) - '@typescript-eslint/scope-manager': 8.18.2 - '@typescript-eslint/type-utils': 8.18.2(eslint@8.57.1)(typescript@5.7.2) - '@typescript-eslint/utils': 8.18.2(eslint@8.57.1)(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.18.2 + '@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 @@ -3861,27 +4297,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.18.2(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': 8.18.2 - '@typescript-eslint/types': 8.18.2 - '@typescript-eslint/typescript-estree': 8.18.2(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.18.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) + '@typescript-eslint/visitor-keys': 8.19.0 debug: 4.4.0 eslint: 8.57.1 typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.18.2': + '@typescript-eslint/scope-manager@8.19.0': dependencies: - '@typescript-eslint/types': 8.18.2 - '@typescript-eslint/visitor-keys': 8.18.2 + '@typescript-eslint/types': 8.19.0 + '@typescript-eslint/visitor-keys': 8.19.0 - '@typescript-eslint/type-utils@8.18.2(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': 8.18.2(typescript@5.7.2) - '@typescript-eslint/utils': 8.18.2(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) @@ -3889,12 +4325,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.18.2': {} + '@typescript-eslint/types@8.19.0': {} - '@typescript-eslint/typescript-estree@8.18.2(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@8.19.0(typescript@5.7.2)': dependencies: - '@typescript-eslint/types': 8.18.2 - '@typescript-eslint/visitor-keys': 8.18.2 + '@typescript-eslint/types': 8.19.0 + '@typescript-eslint/visitor-keys': 8.19.0 debug: 4.4.0 fast-glob: 3.3.2 is-glob: 4.0.3 @@ -3905,20 +4341,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.18.2(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': 8.18.2 - '@typescript-eslint/types': 8.18.2 - '@typescript-eslint/typescript-estree': 8.18.2(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-eslint/visitor-keys@8.18.2': + '@typescript-eslint/visitor-keys@8.19.0': dependencies: - '@typescript-eslint/types': 8.18.2 + '@typescript-eslint/types': 8.19.0 eslint-visitor-keys: 4.2.0 '@ungap/structured-clone@1.2.1': {} @@ -3932,6 +4368,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 @@ -3942,10 +4383,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 @@ -3971,6 +4425,8 @@ snapshots: argparse@2.0.1: {} + array-flatten@1.1.1: {} + assert@2.1.0: dependencies: call-bind: 1.0.8 @@ -4040,6 +4496,23 @@ snapshots: 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 @@ -4089,11 +4562,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 @@ -4103,13 +4578,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: {} @@ -4158,6 +4633,16 @@ 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.2.0: @@ -4178,6 +4663,10 @@ snapshots: dayjs@1.11.13: {} + debug@2.6.9: + dependencies: + ms: 2.0.0 + debug@4.4.0: dependencies: ms: 2.1.3 @@ -4208,12 +4697,18 @@ 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-match-patch@1.0.5: {} + diff@4.0.2: {} doctrine@3.0.0: @@ -4237,12 +4732,18 @@ snapshots: eastasianwidth@0.2.0: {} + ee-first@1.1.1: {} + emoji-regex-xs@1.0.0: {} emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + entities@4.5.0: {} err-code@2.0.3: {} @@ -4261,6 +4762,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): @@ -4396,9 +4899,11 @@ snapshots: esutils@2.0.3: {} + etag@1.8.1: {} + ethereum-bloom-filters@1.2.0: dependencies: - '@noble/hashes': 1.6.1 + '@noble/hashes': 1.7.0 ethereum-cryptography@2.2.1: dependencies: @@ -4418,8 +4923,56 @@ snapshots: eventemitter3@5.0.1: {} + eventsource-parser@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: {} @@ -4460,6 +5013,18 @@ snapshots: 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 @@ -4515,23 +5080,32 @@ 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-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 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -4587,10 +5161,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 @@ -4639,10 +5213,22 @@ 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 + humanize-ms@1.2.1: dependencies: ms: 2.1.3 + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + ieee754@1.2.1: {} ignore@5.3.2: {} @@ -4661,6 +5247,8 @@ snapshots: inherits@2.0.4: {} + ipaddr.js@1.9.1: {} + ipaddr.js@2.2.0: {} is-arguments@1.2.0: @@ -4674,9 +5262,12 @@ snapshots: is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.0.10: + 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: @@ -4693,6 +5284,13 @@ snapshots: is-path-inside@3.0.3: {} + 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-typed-array@1.1.15: @@ -4703,13 +5301,13 @@ 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)): + isomorphic-ws@4.0.1(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: - 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) jackspeak@3.4.3: dependencies: @@ -4721,7 +5319,7 @@ snapshots: dependencies: '@isaacs/cliui': 8.0.2 - 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): dependencies: '@types/connect': 3.4.38 '@types/node': 12.20.55 @@ -4731,10 +5329,10 @@ 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 @@ -4759,12 +5357,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 @@ -4791,29 +5397,29 @@ snapshots: 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.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.14(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.14(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 @@ -4822,7 +5428,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: @@ -4896,6 +5502,10 @@ snapshots: mdurl@2.0.0: {} + media-typer@0.3.0: {} + + merge-descriptors@1.0.3: {} + merge2@1.4.1: {} merkletreejs@0.3.11: @@ -4906,6 +5516,8 @@ snapshots: treeify: 1.1.0 web3-utils: 1.10.4 + methods@1.1.2: {} + micro-ftch@0.3.1: {} micromark-util-character@2.1.1: @@ -4936,6 +5548,8 @@ snapshots: dependencies: mime-db: 1.52.0 + mime@1.6.0: {} + minimalistic-assert@1.0.1: {} minimatch@10.0.1: @@ -4954,6 +5568,8 @@ snapshots: minipass@7.1.2: {} + ms@2.0.0: {} + ms@2.1.3: {} mustache@4.2.0: {} @@ -4962,6 +5578,8 @@ snapshots: natural-compare@1.4.0: {} + negotiator@0.6.3: {} + no-case@3.0.4: dependencies: lower-case: 2.0.2 @@ -4982,6 +5600,8 @@ snapshots: 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 @@ -4998,22 +5618,26 @@ 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.1: + oniguruma-to-es@0.10.0: dependencies: emoji-regex-xs: 1.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 @@ -5067,6 +5691,8 @@ snapshots: dependencies: callsites: 3.1.0 + parseurl@1.3.3: {} + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} @@ -5083,6 +5709,8 @@ snapshots: lru-cache: 11.0.2 minipass: 7.1.2 + path-to-regexp@0.1.12: {} + pathval@2.0.0: {} percentile@1.6.0: {} @@ -5117,18 +5745,38 @@ snapshots: 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 @@ -5177,9 +5825,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: @@ -5188,34 +5836,103 @@ 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.4: + shiki@1.26.1: 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 + '@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 + 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: {} snake-case@3.0.4: @@ -5246,6 +5963,8 @@ snapshots: - jiti - supports-color + statuses@2.0.1: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -5291,6 +6010,12 @@ 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 @@ -5304,6 +6029,8 @@ snapshots: text-table@0.2.0: {} + throttleit@2.1.0: {} + through@2.3.8: {} tiny-inflate@1.0.3: {} @@ -5316,6 +6043,8 @@ snapshots: toformat@2.0.0: {} + toidentifier@1.0.1: {} + toml@3.0.0: {} tr46@0.0.3: {} @@ -5330,14 +6059,14 @@ snapshots: 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 @@ -5366,6 +6095,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 @@ -5375,18 +6109,18 @@ snapshots: lunr: 2.3.9 markdown-it: 14.1.0 minimatch: 9.0.5 - shiki: 1.24.4 + 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.24.4 + '@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.6.1 + yaml: 2.7.0 typescript-collections@1.3.3: {} @@ -5430,10 +6164,18 @@ 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 @@ -5447,10 +6189,12 @@ snapshots: 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: {} @@ -5459,6 +6203,8 @@ snapshots: v8-compile-cache-lib@3.0.1: {} + vary@1.1.2: {} + vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 @@ -5520,19 +6266,19 @@ snapshots: 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: {} diff --git a/src/actions/createOrcaSingleSidedWhirlpool.ts b/src/actions/createOrcaSingleSidedWhirlpool.ts index affc445..f53c881 100644 --- a/src/actions/createOrcaSingleSidedWhirlpool.ts +++ b/src/actions/createOrcaSingleSidedWhirlpool.ts @@ -2,7 +2,6 @@ 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 { orcaCreateSingleSidedLiquidityPool } from "../tools"; @@ -87,7 +86,7 @@ const createOrcaSingleSidedWhirlpoolAction: Action = { const otherTokenMint = new PublicKey(input.otherTokenMint); const initialPrice = new Decimal(input.initialPrice); const maxPrice = new Decimal(input.maxPrice); - const feeTier = input.feeTier + const feeTier = input.feeTier; // Create the whirlpool const signature = await orcaCreateSingleSidedLiquidityPool( 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 index b66c89e..60e7df4 100644 --- a/src/actions/index.ts +++ b/src/actions/index.ts @@ -10,6 +10,7 @@ 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"; @@ -26,36 +27,40 @@ import raydiumCreateCpmmAction from "./raydiumCreateCpmm"; import raydiumCreateAmmV4Action from "./raydiumCreateAmmV4"; import createOrcaSingleSidedWhirlpoolAction from "./createOrcaSingleSidedWhirlpool"; import launchPumpfunTokenAction from "./launchPumpfunToken"; +import getWalletAddressAction from "./getWalletAddress"; export const ACTIONS = { - "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, - "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, + 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/pythFetchPrice.ts b/src/actions/pythFetchPrice.ts index 8dc11f6..b25dbba 100644 --- a/src/actions/pythFetchPrice.ts +++ b/src/actions/pythFetchPrice.ts @@ -1,7 +1,7 @@ import { Action } from "../types/action"; import { SolanaAgentKit } from "../agent"; import { z } from "zod"; -import { pythFetchPrice } from "../tools"; +import { fetchPythPrice, fetchPythPriceFeedID } from "../tools"; const pythFetchPriceAction: Action = { name: "PYTH_FETCH_PRICE", @@ -18,7 +18,7 @@ const pythFetchPriceAction: Action = { [ { input: { - priceFeedId: "Gnt27xtC473ZT2Mw5u8wZ68Z3gULkSTb5DuxJy7eJotD", // SOL/USD price feed + tokenSymbol: "SOL", // SOL/USD price feed }, output: { status: "success", @@ -30,15 +30,17 @@ const pythFetchPriceAction: Action = { ], ], schema: z.object({ - priceFeedId: z + tokenSymbol: z .string() .min(1) - .describe("The Pyth price feed ID to fetch the price from"), + .describe("The token symbol to fetch the price for"), }), handler: async (_agent: SolanaAgentKit, input: Record) => { try { - const priceFeedId = input.tokenId as string; - const priceStr = await pythFetchPrice(priceFeedId); + const priceFeedId = await fetchPythPriceFeedID(input.tokenSymbol); + + const priceStr = await fetchPythPrice(priceFeedId); + return { status: "success", price: priceStr, 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/agent/index.ts b/src/agent/index.ts index 8dea198..9925fb8 100644 --- a/src/agent/index.ts +++ b/src/agent/index.ts @@ -1,8 +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 } from "../types"; +import { Config, TokenCheck } from "../types"; import { deploy_collection, deploy_token, @@ -23,12 +24,18 @@ import { request_faucet_funds, trade, limitOrder, + batchOrder, cancelAllOrders, withdrawAll, + closePerpTradeShort, + closePerpTradeLong, + openPerpTradeShort, + openPerpTradeLong, transfer, getTokenDataByAddress, getTokenDataByTicker, stakeWithJup, + stakeWithSolayer, sendCompressedAirdrop, orcaCreateSingleSidedLiquidityPool, orcaCreateCLMM, @@ -36,7 +43,6 @@ import { orcaOpenSingleSidedPosition, FEE_TIERS, fetchPrice, - pythFetchPrice, getAllDomainsTLDs, getAllRegisteredAllDomains, getOwnedDomainsForTLD, @@ -51,8 +57,11 @@ import { listNFTForSale, cancelListing, closeEmptyTokenAccounts, + fetchTokenReportSummary, + fetchTokenDetailedReport, + fetchPythPrice, + fetchPythPriceFeedID, } from "../tools"; - import { CollectionDeployment, CollectionOptions, @@ -61,8 +70,8 @@ import { MintCollectionNFTResponse, PumpfunLaunchResponse, PumpFunTokenOptions, + OrderParams, } from "../types"; -import { BN } from "@coral-xyz/anchor"; /** * Main class for interacting with Solana blockchain @@ -191,6 +200,13 @@ export class SolanaAgentKit { 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); } @@ -199,6 +215,42 @@ export class SolanaAgentKit { 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); } @@ -244,6 +296,10 @@ export class SolanaAgentKit { return stakeWithJup(this, amount); } + async restake(amount: number): Promise { + return stakeWithSolayer(this, amount); + } + async sendCompressedAirdrop( mintAddress: string, amount: number, @@ -432,8 +488,12 @@ export class SolanaAgentKit { return manifestCreateMarket(this, baseMint, quoteMint); } - async pythFetchPrice(priceFeedID: string): Promise { - return pythFetchPrice(priceFeedID); + async getPythPriceFeedID(tokenSymbol: string): Promise { + return fetchPythPriceFeedID(tokenSymbol); + } + + async getPythPrice(priceFeedID: string): Promise { + return fetchPythPrice(priceFeedID); } async createGibworkTask( @@ -480,5 +540,12 @@ export class SolanaAgentKit { size: number; }> { return closeEmptyTokenAccounts(this); + + async fetchTokenReportSummary(mint: string): Promise { + return fetchTokenReportSummary(mint); + } + + async fetchTokenDetailedReport(mint: string): Promise { + return fetchTokenDetailedReport(mint); } } diff --git a/src/constants/index.ts b/src/constants/index.ts index 14eb65b..69965bf 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -18,11 +18,13 @@ 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; /** 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 8a79662..5199735 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,7 +1,8 @@ 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"; diff --git a/src/langchain/index.ts b/src/langchain/index.ts index 4d08e0a..2e39f5b 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"; @@ -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 ). @@ -310,6 +418,8 @@ 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) @@ -350,6 +460,98 @@ export class SolanaLimitOrderTool extends Tool { } } +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. @@ -768,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 */ @@ -908,7 +1143,7 @@ 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 (JSON string): - positionMintAddress: string, the address of the position mint that represents the liquidity position.`; @@ -995,9 +1230,9 @@ export class SolanaOrcaCreateCLMM extends Tool { 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. + 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. + 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). @@ -1403,7 +1638,7 @@ export class SolanaPythFetchPrice extends Tool { 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(); @@ -1411,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", }; @@ -1825,29 +2064,62 @@ export class SolanaCancelNFTListingTool extends Tool { } } -export class CloseEmptyTokenAccounts extends Tool { - name = "close_empty_token_accounts"; - description = `Close all empty spl-token accounts and reclaim the rent`; +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(): Promise { + protected async _call(input: string): Promise { try { - const { signature, size } = - await this.solanaKit.closeEmptyTokenAccounts(); + const mint = input.trim(); + const report = await this.solanaKit.fetchTokenReportSummary(mint); return JSON.stringify({ status: "success", - message: `${size} accounts closed successfully. ${size === 48 ? "48 accounts can be closed in a single transaction try again to close more accounts" : ""}`, - signature, + message: "Token report summary fetched successfully", + report, }); } catch (error: any) { return JSON.stringify({ status: "error", message: error.message, - code: error.code || "UNKNOWN_ERROR", + 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", }); } } @@ -1870,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), @@ -1881,6 +2154,7 @@ export function createSolanaTools(solanaKit: SolanaAgentKit) { new SolanaOpenbookCreateMarket(solanaKit), new SolanaManifestCreateMarket(solanaKit), new SolanaLimitOrderTool(solanaKit), + new SolanaBatchOrderTool(solanaKit), new SolanaCancelAllOrdersTool(solanaKit), new SolanaWithdrawAllTool(solanaKit), new SolanaClosePosition(solanaKit), @@ -1901,6 +2175,10 @@ export function createSolanaTools(solanaKit: SolanaAgentKit) { new SolanaTipLinkTool(solanaKit), new SolanaListNFTForSaleTool(solanaKit), new SolanaCancelNFTListingTool(solanaKit), - new CloseEmptyTokenAccounts(solanaKit), + new SolanaCloseEmptyTokenAccounts(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/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 8273430..f3b132e 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -1,55 +1,52 @@ -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 "./limit_order"; -export * from "./cancel_all_orders"; -export * from "./withdraw_all"; -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 "./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 "./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 "./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 "./manifest_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 "./close_empty_token_accounts"; + +export * from "./trade"; +export * from "./transfer"; +export * from "./withdraw_all"; diff --git a/src/tools/limit_order.ts b/src/tools/limit_order.ts index ad05bf6..bdbb63d 100644 --- a/src/tools/limit_order.ts +++ b/src/tools/limit_order.ts @@ -8,8 +8,8 @@ import { SolanaAgentKit } from "../index"; import { ManifestClient, WrapperPlaceOrderParamsExternal, + OrderType, } from "@cks-systems/manifest-sdk"; -import { OrderType } from "@cks-systems/manifest-sdk/client/ts/src/wrapper/types/OrderType"; /** * Place limit orders using Manifest 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 index be41c42..4025ac3 100644 --- a/src/tools/tensor_trade.ts +++ b/src/tools/tensor_trade.ts @@ -33,6 +33,7 @@ export async function listNFTForSale( 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.`, ); diff --git a/src/types/index.ts b/src/types/index.ts index 6d31949..ad88ec8 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -88,7 +88,8 @@ export interface FetchPriceResponse { export interface PythFetchPriceResponse { status: "success" | "error"; - priceFeedID: string; + tokenSymbol: string; + priceFeedID?: string; price?: string; message?: string; code?: string; @@ -153,3 +154,73 @@ export interface 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/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 2a3312b..00f9976 100644 --- a/test/index.ts +++ b/test/index.ts @@ -1,4 +1,4 @@ -import { SolanaAgentKit , ACTIONS} from "../src"; +import { SolanaAgentKit, ACTIONS } from "../src"; import { createSolanaTools } from "../src/langchain"; import { HumanMessage } from "@langchain/core/messages"; import { MemorySaver } from "@langchain/langgraph"; 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"] +}