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/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..c862186 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,29 @@ +name: ci +on: + push: + branches: [main] + pull_request: + branches: [main] +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v3 + with: + version: 9.4.0 + + - uses: actions/setup-node@v4 + with: + node-version: "23" + cache: "pnpm" + + - name: Install dependencies + run: pnpm install -r --no-frozen-lockfile + + - name: Run lint and fix + run: pnpm run lint:fix + + - name: Build packages + run: pnpm run build diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..d42474c --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +tsc && lint-staged \ No newline at end of file diff --git a/.lintstagedrc b/.lintstagedrc new file mode 100644 index 0000000..d2aefcf --- /dev/null +++ b/.lintstagedrc @@ -0,0 +1,6 @@ +{ + "**/*.+(js|jsx|css|less|scss|ts|tsx|md)": [ + "prettier --write", + "eslint --fix" + ] +} \ No newline at end of file diff --git a/README.md b/README.md index f4d5562..893ab25 100644 --- a/README.md +++ b/README.md @@ -54,11 +54,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 + - Solayer SOL (sSOL)staking - **Non-Financial Actions** - Gib Work for registering bounties @@ -71,6 +73,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 @@ -168,6 +175,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 @@ -198,11 +214,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 +}); ``` ## Examples @@ -233,7 +275,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 @@ -255,7 +296,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..94a19ed 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 = "eJyNllGTkzAQgP9LnjvWq96pfaut1ep57dwxvjg+7IWlZAgJkyzajuN/d0o7B5Sw8MID++23sMkSfv4VhAcSc/FkNRhY7NHQN0ViIgqgVMyF1OA9+mk7/iqlXIuJyJSJxfxm9v7f5MW0kKSsqQ3KELoEJPrpOdROnt3edZI/HSAvNDKOC8GpPgLJdOtidDsgQhd+pA7FKZdWa6zqr7DQ9pijoaA1BI4Tb4vT1Q9YLxSvNIna93hOITbZIZB14exzjEtfI8l055TER/SFNT68lF2MlWrw6VJbj5GDGHfgIA/3KUgOqkdZRwo/q+c/1mVVqzACnz1ifxv6YK7A17JQhC6yGZoVEATF1xAnvC+1XUhpS0MrJFDas0vXj3NFvitD9SZ+WEdsjV6aK3EZ5d5VbMQ5za7Mi6Q091AambJPGSSH1OvSVKvCTXuAY7VHSkfOXRgdklfwGjHerDaEea/5ihulHRYOqao2LVOUWdBThznJFzCxxsZnj44F+unl9lXm6w/vbm5nzbNrGW22D0919m9wCp716dA6h9qGN81kWU3/+ZSNrNWNPZGUppoAP+1AbeHd247wBzqJerEZULYwRooHlCXh9RFf61oAI0qUifstdZRR7JFa/wLB1+tAHeGv/7OFIBQ=" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js index a216523..919304b 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 = "eJy1nVtz4zbShv+LfOtK1DzoMHcaW0688dheW5NUypVi0RJkc02RXJKaib+p/PevAJJSA2jSTUl7ldQY3WgCD079guKPQZ5+Lwafnn4M3qJkNfgEzuR8kIQbMfg0eEzjMAlnLyIpf4vKwflgm8eDT4NlHBaFKH7W//zTa7mJB+fNXwefBoN/zhuvPjg7r8s0Kcp8uyzTnOPyTC+P3J8PsjAXSWlHuq8Yho6Ha07EsozShFvxvvgx9X4P41iw2u9sV/T4+oJwtcpFUfSoF5kc2c7r6IXbxlXRnvU5Q2/PaS7+uxVFeRVul6K82iYr3jPXZmtltq7NjoljJbI4fV+kb4IHWFW+rMsfX/NFGsc9+K6MltjomBheRPk5jMNkKVi1v4jyeVf8NPXela+CN6fsK09rm2Mi2ERJeXu1YNUsyybrA0a4VmOZh0mxZj4sKnzcKHuJilLkl+kmjHiENSarxuS4+os0/iYe07hXBMqoSOOTxPAiyvs82oT5e48YXkSZVUYniaHMwxVviDUlj6ktjjZReZevmKyp4mld/Jh6n8Ny+cqvVxU/Rb1LOSnEszhWdfMWksomjOO0sTkmgu9R+brKw++zOOYt3XX5MI6PrDnNRHIv8mwhublJE94SLq0ykWeKtriyOlkUj69pzts5aWEUtdlRJMRpIQ4IRNn9DyNhd4weyAl6JhbJalYUouQNC1k8bIofOesu7h+5c22ZnaI+uSm7DMvw8/usxzZaVi8tV2EZPr8fvJvuiGYRLd/4mxwUTNkYHhPLWpTLVxXNfR4xN3rKRgWS1TZHMRhuk+Xr/XaTXW0T/la7Msu2m2y9TU6x4y7K8I33/E3JI/c+7Pr2ZY96PpGsLtJNJgEWq1mUr/I04z2vSFbLnWW4szxqTciX4YWaBdMiYh9wpFU1Ce6tjo4iF2EpLm6+fOGHoEyW8WZzsvofo+QlFo/RSqxuov9uo1VUvt+nKW/DsI+pUG4K6SZu3GSVm2PjvJKjvukt3uQpzdRkkSGzY+O4y0RyIZJS5GLVhPNHVL7umo0dmtxgLGtPTYRy7xUjT6eIFvVtb9pljKhTT8R9fYiaxfXJi5teUVZhXB+9TrAO3n1PxKpnGC+iTKXZyeOog7hK88XNZa9Q6jjWaV7Gq+Oj2TfI4uaS3Sj79ijjozNfVRQP9XH/kD4K4zjfmZ+yr76EUbIPp9+xXZbdx3KaLEb4voq2m2oan202v3u8wVSZVdN2uNl8804Zx0W1NvUM4wQrmh5FdlAU2fHraiaS5zR9q8L4EuZvzGx9Y1hFsmkMj8olhkm0FkXZO5bG8ISxyGzXe/mqtvpXQqyu2dNc9l6+qt3+WohVdII5bhdH7wiOPXur5vwlev6e5m+LsHjjHb2V1UtlVVZWR42TdPl2H2Yif1xGRZEy81LSKpNWxd7q+LZYRFkcJX3aodxZHJX3FEmR5jdRwc61VxZxVJwi4658XahMn4whYiZhKrsqQxjv7E5zBn8QWZqXj9uNzC33PIvnyrbY2Z4moktRhlEsVlVkPUNa1cZ5Y3xUTHFYvMrt9IKdLlcmcko/Rd5cOVNH1p4BqAPrgRGMPGOsViUXaRrvZ4z1NlFyX/GzVaZTw7ec/y5ymSq/7navleqswN3fEZhdLK7vbvcpv29hHoXPsSh+rv/S6UgTo/+Y3dzMF8Hs8vJh/vgYVPYfOD4LgvI9E7ooHoTdKmnjoLJtC+dyfn9z92ewuPttftsrmEqtDdRIOU0on2c3s9uLea8oatX0NAEsHma3j1fzh14RNGrmSbvj4u7mZq4MDumTvYR+mqC+XN8ugturRa9YpLAcJOvyZF1z2Y8MNWWdpvKH+b+/zh8XwdXX28t+I7a+0hGo2xynCubx7ub3eXB592V23Q+POgMSVAfH04Tzy3xRTx6Xs8WsVzgvoqynD6kInDCc+36dpOLITtQ9V/PFxa/B/cN1z4lMbTsCdUI4TSCPi9lv8+CP68Wvwb++3veKReXrA5lLDP6zzU4ezuPdzezPnrMsCqlI4/D9VPPtw/yX68fF/OGw4VTlh046nm7mt5fB7PFx3m+2ldpmoMTN04Rx8TCfLebBL9ef/7h7+C1YzB5/6xVPtdcK6hNnII+cp53+Hu9ujpkCizQ+abfd/7n4NTh07MvcQHDyCUBOhXd/3M4v63Z6DK7uHoLFzWXvyVElievmKoJ1mgdlvDpdkPcP119mD38e0p0yuvou08lXtdnNza7lFjc9F34ZWBjHu0aTOe1TdysO8LAuxRGectq4/jL7pd8QqOeLaBO+nBD/iifUTAciVoGFGut/wVqzFB3ZszLMvXJx+i5+mP15ef31S1B39cX9ly/9ZuAqWR7UPS7T5f+TwGZfvgS/e8eEFm42wTfvpAPj7uFiFjxe3/5yMw8ery/nl8Efv14/3Nzf3d0cMlxkIi+o9NVACazB99coj6VkfqLdyOzrrVzSvn65v/p6e0CWoLrnEtQXXU6ZLbi6mT3+Gtzdz2+D/odDldkKZG4tOOE5sQrp4ubucX5wTCrddmRQjj/ag6e/+xDJ+wLrcCmKn6u/8BNXsqln18Hs/jr4bf7nBx6VFBVGQZhFwZtoT+jW4bVU+a+v99dyc/4wv5o/PMzkGLm4+3q7+Kjy/2yzSG7Mc7EWeR7KwbBMt0l7DpcXxtV8HnxGF/8+qH0tRPDccfnPqlTrNznC0RtJuK7qT/yeM1+8afF19tH9wCamlmoymVlNyvBFfFiTVpRbmY51k+K6y/QbPVqnGIX4Tab+w3Z5Vhdv62cz1pZKt3nUo86q9JFV5ul7GJfvn8MiKu7TKCl7NORZbfwsjbPG+MiAllW39wkDmfSvnIbqUiVSNyIpu+PYl+Ojtc/Omjd5OVWc7c0/HK7U47QEVUQvSVhu8w+gN4PBZgcFgZv/S5SU++K3V4sHUWRpUpAxtRbmd4TMUPd3fVab0Y/b/gxtQYgylOnPQwLZmx4eDO4AfIu5Y1olivEbvfwelaUg17U2v2d7G/o5qbjbqhexeMnDTb/690ZHB/BdPBdRSSLdWv/e5ujqoyQqozDe3TZ9vLvpFUptv7tjWnRczu0RVhFHWRa+iM9ZL+LOGruubVaPMLI8SvOofL8S/TqosVuLQzvJHIbrbXKjjk5dcyBZkD8UO+f8dt+MSZ9+gp7TcEcEnVNwv8rrOfQrvfXqiqG27NqG9QpF5Dm93+8IorE5rHoM3c02TmfVKam6NFN0kddeusdKkJZh/HsYbw+p4UxZf6ut6cfveKTW2VEmzYpyHuaJWB0SVuNBNB5OFVouwriMNmKWvR8SV2MeZu1n8f5BFaKUF8jIOfujiJDtEeFghP9Vnbt3L6dRUZllTnKIJp1+eJq2wu15FKVr7TyJcqss3jfP6OWdDyvdlT+u2pVYRpsw7tHGyOK4qsuQppiuti59XJVx+pJ+fbjm1yoNulYbdjOHUfwefEvjbR+wDKvjQljnQvyfCMJt+ao2TvwwCMvjQlH3lA4IxLI7LoxM5JswEUkZrORpI6SPCHQopO1x4Yi/5UXhthMgHYZm07t6PJNXL+tJKbxrE2KX6rH3LcNySz5bi9eznQX9ZETIrfueN5Fck7uLtrqVScdrC/zK1f2C6+Tr4+VFnwCUWZRsi9XyBEFsRFG0ZInbAtibHFv5Ml31qrkuf0C12pnuvXzlUU2XPAXZHZ4/orsl/C7CH1v3EF1xKNMPthP9gsmIt4WYwXDeGDogmIPCOFEAHUOvK4SPhl+/INqGYFcEncPww+rxUKzfnapeaJNvUMmXQ1oGY1vZUwzHTt8fDcjWh2jd3xZv9JrTHYa066C/bxidKacPGuTDrBMjGMzBTGXF53+Hmywm49EK8Hs8SrItmdCy/Z01ZVsEfi3ClurSbcmvb1f4iArF35l8QUf7HYDuWnWLflU7w+kY/P2bOL+GySpG+oG6HPxz/a+dnWT3fXv4xwvFyE/3mbwOpXXAbKJYkPMHrmFf7JBKVqJY5lHGaJIzveghlYmqiz98JFTuoIZbvooNmQLS2q0pdUgVrwaKLXXsizErwaCqk9LFq1i+UdXs/9on7ap+LSltU8EMn2f1LyWlnQIYCrOr2oW8p8Sts6wKH1phHhVvJGRmZU3BQysqlim9npkVNQV7VGQeIdCr79eloFVMu1iPtYvcIrS5PPtgX2xG25ZZLcs8et6W9JzQWrlmdkgQZON+2Kz9GvQ5SvC70J0Oz3aFP3iarsbMwrygpQuiwl3hfhXihlM/S3kf5uGG7D30Z36j/XcbJmVLMs50eIYK00+BI2xdZekDiVVZXfDgilrPf1ZN3Yc+uircL593v1d6H8rLE+TKbhXqIx7TTUa77G44O9YuyfDfHXS01K7sPgSFHYbqm4cwoc/RLTEoo7w2OjKAIguX+AcfGO2/sziy6mS7eRb53dr4OdqPI6gM0/UHv0nLDiRKVtG3aLU9CIi98VFUaDlreX1b/bZC+2xolum5a2O7POv+RUkr1J5jnK6zc4hzq5S3G8NS5GH8taBT5GTde7Nt0ZEmZwYRi28ib0tQk/Uji95VWxDtf6XjA5LMgqfCifTLYcqK/BCw6No/pqujcvRTIesoWRmn//0vhOz/2NmUI3yaFcttKVo9an/nOpW/XofTIdSPmVhlKOd/nctpUvw9+PRj8E3kUpsbfBo4P7k/TQfng3Uk5C/tfXpqkhjLdFNfeV6ly63637/qYr+Lpbpi/empKv3zcHD+NDz3pj85Y/evv86fGmP1B/UPjY/9vyhDGJw/AWUIliFohs7g/MmhDB3L0NEM3cH5k0sZupahqxl6g/MnjzL0LENPM/QH50/+uef9BCNPM/QtQ18zHA3On0ZUjSPLcKQZjgfnT2PKcGwZjjXDyeD8aUIZTizDiWY4HZw/TSnDqWU41QGQPADJDtjwgEGPwofmhwBIJwgkF0AyBDZEoFMEkg0gOQIbJNBJAskHkCyBDRPoNIFkBHzS2AYKdKJAcgIkU2BDBTpVIFkBkiuwwQKdLJC8AMkW2HCBThdIZoDkC2zAQCfMkcw4JGGOTZijE+ZIZhySMMcmzDHmKDVJ0bMUMU3phDmSGYckzLEJc3TCHMmMQxLm2IQ5OmGOZMYhCXNswhydMEcy45CEOTZhjk6YI5lxSMIcmzBHJ8yRzDgkYY5NmKMT5khmHJIwxybM0QlzJTMuSZhrE+bqhLmSGZckzLUJc3XCXMmMSxLm2oS5xkqolkJ6LSQWQ50wVzLjkoS5NmGuTpgrmXFJwlybMFcnzJXMuCRhrk2YqxPmSmZckjDXJszVCXMlMy5JmGsT5uqEuZIZlyTMtQlzdcI8yYxHEubZhHk6YZ5kxiMJ82zCPJ0wTzLjkYR5NmGeTpgnmfFIwjybMM/Yb6kNF73jIrZcOmGeZMYjCfNswjydME8y45GEeTZhnk6YJ5nxSMI8mzBPJ8yTzHgkYZ5NmKcT5klmPJIwzybM0wnzJTM+SZhvE+brhPmSGZ8kzLcJ83XCfMmMTxLm24T5OmG+ZMYnCfNtwnydMF8y45OE+TZhvrGrV9t6kjCf2NjrhPmSGZ8kzLcJ83XCfMmMTxLm24T5OmG+ZMYnCfNtwnydMF8y45OE+TZhvk7YSDIzIgkb2YSNdMJGkpkRSdjIJmykEzaSzIxIwkY2YSOdsJFkZkQSNrIJG+mEjSQzI5KwkU3YSCdsJJkZkYSNbMJGxtlRHR7p0yNxfNQJG0lmRiRhI5uwkU7YSDIzIgkb2YSNdMJGkpkRSdjIJmykEzaWzIxJwsY2YWOdsLFkZkwSNrYJG+uEjSUzY5KwsU3YWCdsLJkZk4SNbcLGOmFjycyYJGxsEzbWCRtLZsYkYWObsLFO2FgyMyYJG9uEjY0MhUpR0DkKIkmhEzaWzIxJwsY2YWOdsLFkZkwSNrYJG+uETSQzE5KwiU3YRCdsIpmZkIRNbMImOmETycyEJGxiEzbRCZtIZiYkYRObsIlO2EQyMyEJm9iETXTCJpKZCUnYxCZsohM2kcxMSMImNmETnbCJZGZCEjaxCZsYeTCVCKMzYUQqTCdsIpmZkIRNbMImOmFTycyUJGxqEzbVCZtKZqYkYVObsKlO2FQyMyUJm9qETXXCppKZKUnY1CZsqhM2lcxMScKmNmFTnbCpZGZKEja1CZvqhE0lM1OSsKlN2FQnbDpuS+xObcCmOmBTicyUpHNqAzY1kq0q20rSOSXyrWbCVRFGJ9OGVMrVyLkOVdJ12JKyJdKuQyPvOlSJ1yFQLVf90XRg5F6HKvk6pFO3QyL9OjTyr0OVgB3S6dshkYIdGjnYoUrCDr1zb/jTxDAnkrBDIws7VGnYIZ3EHRKJ2KGRiR2qVOyQTuQOiWTs0MjGDlU6dkgnc4dEQnZoZGSHKiU7pBO6QyIpOzQwrBP/NIdU6t/K/VfJ/yHRB2Ty36CwSv+3iQcEhaYCUEkAUkAgMKZEAFMFqGSAFhGBEgJMJaCSAlqEBEoMMNWASg5oERMoQcBUBCpJoEVQoEQBUxWoZIEWUYESBkxloJIGWoQFShww1AFQCX9oERcIgQAMhQBU0h9ogQEIkQAMlQCcSoiiSSSEAjCUAnDc1pFASAVgaAXgeB0gE3IBGHoBKAkAaKEDCMkADM0AlAwAtNgBhGwAhm4ASgoAWvAAQjoAQzsAJQcALXoAIR+AoR+AkgSAFj6AkBDA0BBAyQJAix9AyAhg6AjgVhzSI4GQEsDQEsCtOKRHAiEngKEngOt2LOyEpACGpgCu17qsEqICGKoCKKEAaCEGCGEBDGUBlFgAtBgDhLgAhroASjAAWpABQmAAQ2EAJRoALcoAITKAoTKAEg6AFmaAEBrAUBpAiQdAizNAiA1gqA2gBASgBRogBAcwFAdQIgLQIg0QogMYqgN4lThPjwRCeABDeQAlJgAt1gAhPoChPoASFMCjZmRCfgBDfwAlKQAt2QAhQYChQYCSFYCWbYCQIcDQIUBJCyClG2IoE1IEGFoEKHkBpHxDOSA4NPQIUBID0BIOEJIEGJoEKJmB7gNClABDlQAlNACtAgEhTIChTIASG4BWgoAQJ8BQJ8CvrolMyCYkBAowFArw/Y5OJEQKMFQK8EcdnUgIFWAoFeBXHNIDiRArwFArwJ+0dyJBoaFXgJIggJa1gJAswNAsYDRs3VoRogUYqgUoIQJoZQwI4QIM5QKUGAG0OgaEeAGGegFKkABaIQNCwABDwQAlSgCtkgEhYoChYsCourBEJkqAEDLAUDJAiRNAq2VAiBlgqBkwGrduKwg5Aww9A5REAbTgBoSkAYamAaOKQno9ImQNMHQNUFIF0MIbENIGGNoGKLkCaPENCHkDDH0Dxk5HJxISBxgaByjZAmgFDwiZAwydA5R0AbSKB4TUAYbWAUq+AFrJA0LuAEPvgHF1eY4eCYTkAYbmAUrGAFrRA0L2AEP3ACVlAK3qASF9gKF9gJIzgFb2gJA/wNA/QEkaQKt7QEggYGggMKlIpFEmZBAwdBBQ0gbQKh8QUggYWggoeQNopQ8IOQQMPQSUxAG02geEJAKGJgJK5gBa8QNCFgFDFwEldcDYO3cnPzmTkeGAINHQRmAy7thaEPIIGPoIKMkDaOkQCIkEDI0ElOzR+ggEiYZOAkr6AFp/BEIqAUMrASV/AK1BAiGXgKGXwLQikR4LhGQChmYC04rElnutBImGbgJKCgFajwRCOgFDOwElhwCtSQIhn4Chn4CSRGBC544ICQUMDQWm4w4OCB0FDCEFptXFYnowEVoKGGIKKH0EaIETCD0FDEHFUQIJ0CKnQygqjqGoOJWiQjeiQygqjqGoOJWiQjeiQygqjqGoOJWiQkutDqGoOIai4lSKCi23OoSi4hiKilMpKrTk6hCaSvNv6qWWbyIvxeq6ernl6WnQfCrlxyCo33iB/WtVPwZyg/jpxz//7N9x+fTjH/Sai/ybrKxyI5rfhMHeAHuDHt4K7Gf/ls+PwcjjeWl+RxRFM8TRDJ3KUibXWA7Ri/PI52iCfE6GLFfm53fRg47Rg46Zzsrlq3o9VItLC6uno6x59xn5G/vYIdNj/WY+djPEbhyWm+qz62EcNy/BIn9T5G7K8yZfeMtEnqmvBcWpfL1379BBpDk80nSHxav66jny6CKPPNSqX+1CT+mhqGQCqALX541O4y1PzIiLW4/Xp8SHNPAIw/0BvNGw97hC3w/BTjHLQ2Yv75ymmTWdSEUbeWR2c/1JqL0bNCL8ymjKG7LLNEmENfYdxAnXTVHm26X64BF6OvRsPD8dXx3du50gv5NejvXPEyKPqF+ZM0qPL7jt65mi3p4yR6Cqp24R2SBavyN/fh9/8hu8SVimaayvbqjnR8yuV/7KKIujRI8NQ+n38PVNflsqDiM7OvS0ox5Pa0A5xBP/sAc/qTHjD8fYEQ8b/VeYkTMXT6wub2rZ/3o2doRHncubmNu/O49aH02oI258yq3+0UDkEW3wmPu7yuM+Tm0QozHcw1n9WvzeD+pV3iSq/aYa3nLi1YLZZPUHIZAXvGpLFZ3lZffeOQ4Hr4hj3opYv/5O7M4nqJkc5sKl/Y4gjgyzz9xV4x+rxvTjNvd4kwT15WaEA6J0zGt+5bD6vZjdDwXjGHFHeLzHVS4Vqiv1LQWxykVm7O9wB/s83PZu698rQpsA5M3p660KrthuNsa2G48JnzdM5Y86UACOMIDMnm79RCdao5HfKbO/275Giryi1XDKWw2VVxWrcqrNnGiOZ55lDW9Z/cskuEF93KC8+UF5lQ9uh4hW2VEPZ63R4WWN24LWtwbwKMTHSI8XYedXwdFKhBCa8BBifvkZAYXad8qP/qMvYaOHQON/whv/3R8mR67R2jHhrbEff8YeuUfLyYQ3vXZ8hx75RcRMeARKv9X2R35qilpdUKxjfqxlRrUrzoyM2QFqOTNj0E3wlMD3GMd1L8kBgj16aDPDXJ0rf/txsXeuOUbtyFxSX0RZp7+0cYWGVU83aflqpL60kwbXm3y2/UNW/9EeFfWyx+4TNXha2g5NrR5vNWkc1t7WaV7GWkbHQydJj3eSfBFlPQTtZwY8WbOfOXsvX619jY8i8/mRNa6azwkgh6j5fHbzVXu5sAyf34n0lYN31+wZEvkso+WbDqODxzJv5yVdZnpceNPFXNmq1EWdJwiLt1zYW2IPb4l93gPvfpcZY4I5GdW5MHmzgeNQ71bAGXCpqrNcEL9LiOdTPCFMedMU+cVO5FPLrzMzz/XP1uOGc3DDMdvL+FYePrRi7YZ5erA+u44mZYwHc2va/g155Be13bRXlLuhpj82jtPltWKsvu4YZNW3HluTJVO0wDHJqTzXjq00h4tYdHlNGotkFchfpyup3RHyx1SfpD/lTp9j8DmEN9fvf74RDzacVWD2bhxtotKWsLSZgOeo+dYbPnHgTI7Lm4LjbZzW4FYH/4JMKWCxCJgLxiZMorUoympm3oT5m9DTCahDfV6H7j4zg6d2/NTepJ6SmRnh/Sey8YyHPQJvLGhfe8UNh+c9Jm3V12txQNgJuPUjMkU78zt0GBg8izJ3ZspdsqZGKFY8mfk/6W2fbU3WJUkf4LM58KY96TlZG+2I3bC8qOLajhsPhGGzAXC9+n+YSrb5W8d4KtB0Xt4RRiZIwigIsyh4E1oXT9HMwpQ9pbPnNH1rG7Z4K+XxZj3psl2HRr3i8HpF82fL0Fhe5MEiVbZK3E6LyMQaKycub8wpf6r9lvFmozlDi4/Lmw72ziodUMmAu+2aVAK1CtCYZqozsoIqpVw/vUakixByeXhLh7KPlkLt4FaN3+9R+boLXKsD7ZOYC1dTB2oTsvMQrUzVq74YYmUIx3gWZuZ9mu8p4Z0wXl2YMmPzHQYcDZ7MJkw3UvlMSnMFHeIHY2a6qU+K4pUF72iY53PrJC1vo6JTWzPHMjN6Ladp+foNcsp8Wvx5S+wLt5zXI676d/5xf+Kwprx5MMsjtaivhbFbw8dA5pxab+OrPT29B8TEMSdWfDigrqcAXk6ZiReZKgm6NTV83Yc7Nt7L1w90NU9LEvE2OEZeJ1Jfj8FJALwFG/Omvp1P2xvePDCvrpCJhDGepJi56Dx8X0XbTVDfXAk3m+CbR5000aCZ8jAyXC+zzYZyjABljqDaceU33Gy+edpWB3WOx1tLNYfm4o+nHuZsofvLDH9ofvR47OQijMtoI8JM73CcEATmcb3JmbcrGngzy8xwNU6JHK12vGU6++9WFGWw3iakkIaXdGYSr3a5DrdLUSq/miqJREmmuyKNv4mOJkRPPeY+deWzSOMOsQk9OvN2au23JcmP1hym2ln7K9KY6GztHijXXRm+aVO2ix6SmS6rv/aGJ1UcCvOGRp4u37IwE3mxjIrCuNiFr6P4zGdL38O4fH8Oi6jI0igpjZtieBUZ8maW5tOG+EnxvmHMm0Hrj9ZhL3iZHDODEclqmW4yqVOIVRjlqzzNtJ5Ew4B5jb0QZRklL3pLYZVC/twFy1FkXFLGoipUArzclza3lau7secDZ8hDDn25Fm+NcGdU6QqZ9GmyP8w7D7sPf+ITCJ7rR7x1o4ijLAtfhJE4B+1ausOMSV0ODV9EUr5F2uEIPTLTVfPZKtw7uIuZGwx75kB7CS4m0kcgz7jBf7YZNZXjm3/McbH3KVvtXeSUX/TAzC1k8/VoPOFi3rwms+U34DEvUzWfZsfLNnbMzHmUoTFu8UwOzDRE821qjD6OhXmHrZQHXPVxU8w9nnGZOXt5oVCmLeQ7HnFUlAa4eFgyJcrKo/RlpDrxu03MlycsAQfwFgGmo2ZS440G5W5ZfZgWLw74EMnczyhX5ike+2HuzfUv1eKg8IMyb8koZwTt+MwATP0ffc4WR4X3u8zrNsaHDPGsiONiXuhS3r6F8dZIBOAFnin1W/f3tAHE7L+Wu484FcbctZR5mBRrQ4XTpJpebqjL52hSZq6x5fdIvo2mzzO4rZntZGpQQ+xjyPPxPYxjPe+PN2A9XATE7RN8l+oAV1Rro0cc8YbKd/FcREbaUhNimS8TysV5lYcyRE2FQCsNZ1/01/kgizIRR4kYfHr6659//h+urOYd"; \ No newline at end of file diff --git a/docs/classes/SolanaAgentKit.html b/docs/classes/SolanaAgentKit.html index 75d01d1..aef9659 100644 --- a/docs/classes/SolanaAgentKit.html +++ b/docs/classes/SolanaAgentKit.html @@ -1,17 +1,24 @@ 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>

    • Opens a new trading position on Flash.Trade

      +

      Parameters

      • params: FlashTradeParams

        Flash trade parameters including market, side, collateral, leverage, and pool name

        +

      Returns Promise<string>

      Transaction signature

      +
    • 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

      • 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

      • 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..e96b027 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
          | SolanaLimitOrderTool
          | SolanaBatchOrderTool
          | SolanaCancelAllOrdersTool
          | SolanaWithdrawAllTool
          | SolanaRequestFundsTool
          | SolanaRegisterDomainTool
          | SolanaResolveDomainTool
          | SolanaGetDomainTool
          | SolanaGetWalletAddressTool
          | SolanaFlashOpenTrade
          | SolanaFlashCloseTrade
          | 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..a07bdef --- /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..8b452c0 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..0091412 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..6fb7f3f 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..6c816ee 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..3cbe573 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..6f75427 --- /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..26b3c77 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..573d974 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..e55da04 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..cefbd9a 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..0e5eb81 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/FlashCloseTradeParams.html b/docs/interfaces/FlashCloseTradeParams.html new file mode 100644 index 0000000..8df7242 --- /dev/null +++ b/docs/interfaces/FlashCloseTradeParams.html @@ -0,0 +1,3 @@ +FlashCloseTradeParams | solana-agent-kit

    Interface FlashCloseTradeParams

    interface FlashCloseTradeParams {
        side: "long" | "short";
        token: string;
    }

    Properties

    Properties

    side: "long" | "short"
    token: string
    diff --git a/docs/interfaces/FlashTradeParams.html b/docs/interfaces/FlashTradeParams.html new file mode 100644 index 0000000..c23d316 --- /dev/null +++ b/docs/interfaces/FlashTradeParams.html @@ -0,0 +1,5 @@ +FlashTradeParams | solana-agent-kit

    Interface FlashTradeParams

    interface FlashTradeParams {
        collateralUsd: number;
        leverage: number;
        side: "long" | "short";
        token: string;
    }

    Properties

    collateralUsd: number
    leverage: number
    side: "long" | "short"
    token: string
    diff --git a/docs/interfaces/GibworkCreateTaskReponse.html b/docs/interfaces/GibworkCreateTaskReponse.html index 062d006..f2fe654 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..eb2c24f 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..17f0aa9 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..2039bcf 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..fe3c811 --- /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..d1886e3 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..52421d3 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..b2b1875 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..fe13f4f --- /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..8c47136 --- /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..947cece --- /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..0a03fbb 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..feede00 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..2a0fff2 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;
        FLASH_CLOSE_TRADE_ACTION: Action;
        FLASH_OPEN_TRADE_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
    • FLASH_CLOSE_TRADE_ACTION: Action
    • FLASH_OPEN_TRADE_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/market-making-agent/.env.example b/examples/market-making-agent/.env.example new file mode 100644 index 0000000..fd7d991 --- /dev/null +++ b/examples/market-making-agent/.env.example @@ -0,0 +1,3 @@ +OPENAI_API_KEY= +RPC_URL= +SOLANA_PRIVATE_KEY= \ No newline at end of file diff --git a/examples/market-making-agent/README.md b/examples/market-making-agent/README.md new file mode 100644 index 0000000..7894594 --- /dev/null +++ b/examples/market-making-agent/README.md @@ -0,0 +1,50 @@ +# AI Guided Market Making Agent + +This agent showcases an ai guided market maker on Manifest, Solana's CLOB DEX. The agent guides the user to setup basic two-sided quotes on Manifest markets. +[Reference](https://github.com/CKS-Systems/manifest) + +## Key Features + +- **Automated Quoting**: The agent automatically refreshes quotes on an interval. +- **Reducing Complexity**: Designed to abstract away parameters for setting up market making. +- **Random Model**: The market making introduces randomness to prevent front running or other negative botting behavoirs. + + +## Example +=== Market Maker Configuration === + +Enter the market ID: 2Uj8277fkaVBtTU6Wp2GPRbQC86SkSdgQ2mp1Q5N2LHc +Enter the base token symbol (e.g., SEND): SEND +Enter the quote token symbol (e.g., USDC): USDC + +=== Quote Parameters (applies to both buy and sell sides) === +Enter number of quotes to place on each side: 4 +Enter minimum quote depth (% distance from mid price): 0.1 +Enter maximum quote depth (% distance from mid price): 2 + +=== Token Allowances === +Enter total SEND allowance: 2 +Enter total USDC allowance: 3 + +Enter update interval in seconds: 20 + +=== Configuration Summary === +{ + "marketId": "2Uj8277fkaVBtTU6Wp2GPRbQC86SkSdgQ2mp1Q5N2LHc", + "baseToken": "SEND", + "quoteToken": "USDC", + "quoteParams": { + "number": 4, + "minDepth": 0.1, + "maxDepth": 2 + }, + "allowance": { + "base": 2, + "quote": 3 + }, + "intervalSeconds": 20 +} + +Is this configuration correct? (yes/no): yes + +Starting market maker mode for SEND/USDC... diff --git a/examples/market-making-agent/index.ts b/examples/market-making-agent/index.ts new file mode 100644 index 0000000..06c3df3 --- /dev/null +++ b/examples/market-making-agent/index.ts @@ -0,0 +1,389 @@ +import { HumanMessage } from "@langchain/core/messages"; +import { MemorySaver } from "@langchain/langgraph"; +import { createReactAgent } from "@langchain/langgraph/prebuilt"; +import { ChatOpenAI } from "@langchain/openai"; +import * as dotenv from "dotenv"; +import * as fs from "fs"; +import * as readline from "readline"; +import { createSolanaTools, SolanaAgentKit } from "../../src"; + +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(); + +const WALLET_DATA_FILE = "wallet_data.txt"; + +async function initializeAgent() { + try { + const llm = new ChatOpenAI({ + modelName: "gpt-4o-mini", + temperature: 0.3, + }); + + let walletDataStr: string | null = null; + + if (fs.existsSync(WALLET_DATA_FILE)) { + try { + walletDataStr = fs.readFileSync(WALLET_DATA_FILE, "utf8"); + } catch (error) { + console.error("Error reading wallet data:", error); + } + } + + const solanaAgent = new SolanaAgentKit( + process.env.SOLANA_PRIVATE_KEY!, + process.env.RPC_URL!, + { + OPENAI_API_KEY: process.env.OPENAI_API_KEY!, + }, + ); + + const tools = createSolanaTools(solanaAgent); + + const memory = new MemorySaver(); + const config = { configurable: { thread_id: "Solana Agent Kit!" } }; + + const agent = createReactAgent({ + llm, + tools, + checkpointSaver: memory, + messageModifier: ` + You are a helpful agent that can interact onchain using the Solana Agent Kit. You are + empowered to interact onchain using your tools. If you ever need funds, you can request them from the + faucet. If not, you can provide your wallet details and request funds from the user. If there is a 5XX + (internal) HTTP error code, ask the user to try again later. If someone asks you to do something you + can't do with your currently available tools, you must say so, and encourage them to implement it + themselves using the Solana Agent Kit, recommend they go to https://www.solanaagentkit.xyz for more information. Be + concise and helpful with your responses. Refrain from restating your tools' descriptions unless it is explicitly requested. + `, + }); + + if (walletDataStr) { + fs.writeFileSync(WALLET_DATA_FILE, walletDataStr); + } + + return { agent, config }; + } catch (error) { + console.error("Failed to initialize agent:", error); + throw error; + } +} + +async function runAutonomousMode(agent: any, config: any, interval = 10) { + console.log("Starting autonomous mode..."); + + 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 stream = await agent.stream( + { messages: [new HumanMessage(thought)] }, + config, + ); + + for await (const chunk of stream) { + if ("agent" in chunk) { + console.log(chunk.agent.messages[0].content); + } else if ("tools" in chunk) { + console.log(chunk.tools.messages[0].content); + } + 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(agent: any, config: any) { + console.log("Starting chat mode... Type 'exit' to end."); + + 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 stream = await agent.stream( + { messages: [new HumanMessage(userInput)] }, + config, + ); + + for await (const chunk of stream) { + if ("agent" in chunk) { + console.log(chunk.agent.messages[0].content); + } else if ("tools" in chunk) { + console.log(chunk.tools.messages[0].content); + } + console.log("-------------------"); + } + } + } catch (error) { + if (error instanceof Error) { + console.error("Error:", error.message); + } + process.exit(1); + } finally { + rl.close(); + } +} + +interface MarketMakerConfig { + marketId: string; + baseToken: string; + quoteToken: string; + quoteParams: { + number: number; // Number of quotes on each side + minDepth: number; // Minimum distance from mid (%) + maxDepth: number; // Maximum distance from mid (%) + }; + allowance: { + base: number; + quote: number; + }; + intervalSeconds: number; +} + +function createReadlineInterface() { + return readline.createInterface({ + input: process.stdin, + output: process.stdout, + }); +} + +async function askQuestion( + rl: readline.Interface, + question: string, +): Promise { + return new Promise((resolve) => { + rl.question(question, (answer) => { + resolve(answer); + }); + }); +} + +async function configureMarketMaker(): Promise { + const rl = createReadlineInterface(); + + try { + console.log("\n=== Market Maker Configuration ===\n"); + + // Basic market information + const marketId = await askQuestion(rl, "Enter the market ID: "); + const baseToken = await askQuestion( + rl, + "Enter the base token symbol (e.g., SEND): ", + ); + const quoteToken = await askQuestion( + rl, + "Enter the quote token symbol (e.g., USDC): ", + ); + + // Quote parameters + console.log( + "\n=== Quote Parameters (applies to both buy and sell sides) ===", + ); + const quoteNumber = parseInt( + await askQuestion(rl, "Enter number of quotes to place on each side: "), + ); + const minDepth = parseFloat( + await askQuestion( + rl, + "Enter minimum quote depth (% distance from mid price): ", + ), + ); + const maxDepth = parseFloat( + await askQuestion( + rl, + "Enter maximum quote depth (% distance from mid price): ", + ), + ); + + // Token allowances + console.log("\n=== Token Allowances ==="); + const baseAllowance = parseFloat( + await askQuestion(rl, `Enter total ${baseToken} allowance: `), + ); + const quoteAllowance = parseFloat( + await askQuestion(rl, `Enter total ${quoteToken} allowance: `), + ); + + // Update interval + const interval = parseInt( + await askQuestion(rl, "\nEnter update interval in seconds: "), + ); + + const config: MarketMakerConfig = { + marketId, + baseToken, + quoteToken, + quoteParams: { + number: quoteNumber, + minDepth: minDepth, + maxDepth: maxDepth, + }, + allowance: { + base: baseAllowance, + quote: quoteAllowance, + }, + intervalSeconds: interval, + }; + + // Display summary + console.log("\n=== Configuration Summary ==="); + console.log(JSON.stringify(config, null, 2)); + + const confirm = await askQuestion( + rl, + "\nIs this configuration correct? (yes/no): ", + ); + if (confirm.toLowerCase() !== "yes") { + throw new Error("Configuration cancelled by user"); + } + + return config; + } finally { + rl.close(); + } +} + +async function runMarketMakerMode(agent: any, config: any) { + try { + const marketMakerConfig = await configureMarketMaker(); + console.log( + `\nStarting market maker mode for ${marketMakerConfig.baseToken}/${marketMakerConfig.quoteToken}...`, + ); + + while (true) { + try { + const thought = `You are an on-chain Solana market maker for the ${marketMakerConfig.baseToken}/${marketMakerConfig.quoteToken} Manifest market, ${marketMakerConfig.marketId}. + Find the ${marketMakerConfig.baseToken}/${marketMakerConfig.quoteToken} live price by checking Jupiter. + Use solana_batch_order to provide ${marketMakerConfig.quoteParams.number} buys at different prices between -${marketMakerConfig.quoteParams.minDepth}% to -${marketMakerConfig.quoteParams.maxDepth}% and ${marketMakerConfig.quoteParams.number} sells at different prices between +${marketMakerConfig.quoteParams.minDepth}% to +${marketMakerConfig.quoteParams.maxDepth}% with increasing quantities further from the live price. + You have an allowance of ${marketMakerConfig.allowance.base} ${marketMakerConfig.baseToken} and ${marketMakerConfig.allowance.quote} ${marketMakerConfig.quoteToken}. + Important! Only send 1 transaction, buy and sells can be combined into a single solana_batch_order.`; + + const stream = await agent.stream( + { messages: [new HumanMessage(thought)] }, + config, + ); + + for await (const chunk of stream) { + if ("agent" in chunk) { + console.log(chunk.agent.messages[0].content); + } else if ("tools" in chunk) { + console.log(chunk.tools.messages[0].content); + } + console.log("-------------------"); + } + + await new Promise((resolve) => + setTimeout(resolve, marketMakerConfig.intervalSeconds * 1000), + ); + } catch (error) { + if (error instanceof Error) { + console.error("Error:", error); + } + process.exit(1); + } + } + } catch (error) { + console.error("Configuration error:", error); + process.exit(1); + } +} + +async function chooseMode(): Promise<"chat" | "auto" | "mm"> { + 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"); + console.log("3. mm - AI guided market making"); + + 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"; + } else if (choice === "3" || choice === "mm") { + return "mm"; + } + console.log("Invalid choice. Please try again."); + } +} + +async function main() { + try { + console.log("Starting Agent..."); + const { agent, config } = await initializeAgent(); + const mode = await chooseMode(); + + if (mode === "chat") { + await runChatMode(agent, config); + } else if (mode === "auto") { + await runAutonomousMode(agent, config); + } else { + await runMarketMakerMode(agent, config); + } + } 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/examples/market-making-agent/package.json b/examples/market-making-agent/package.json new file mode 100644 index 0000000..326802e --- /dev/null +++ b/examples/market-making-agent/package.json @@ -0,0 +1,16 @@ +{ + "name": "market-making-agent", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "main": "ts-node index.ts" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@langchain/langgraph-checkpoint-postgres": "^0.0.2", + "solana-agent-kit": "^1.3.6" + } +} diff --git a/examples/market-making-agent/pnpm-lock.yaml b/examples/market-making-agent/pnpm-lock.yaml new file mode 100644 index 0000000..7c02f82 --- /dev/null +++ b/examples/market-making-agent/pnpm-lock.yaml @@ -0,0 +1,6000 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@langchain/langgraph-checkpoint-postgres': + specifier: ^0.0.2 + version: 0.0.2(@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)))) + solana-agent-kit: + specifier: ^1.3.6 + version: 1.3.7(@noble/hashes@1.6.1)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.6.3)(utf-8-validate@5.0.10) + +packages: + + '@ai-sdk/openai@1.0.13': + resolution: {integrity: sha512-kuSLNM6nFy+lgEd6d0X9Bp4hXjPbEwtUbnIrI4jqa9uZZupHc9vh8rOF6XO8s6ZhrWYjnuYZmhvK0S4k+sHrsg==} + 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'} + + '@bonfida/sns-records@0.0.1': + resolution: {integrity: sha512-i28w9+BMFufhhpmLQCNx1CKKXTsEn+5RT18VFpPqdGO3sqaYlnUWC1m3wDpOvlzGk498dljgRpRo5wmcsnuEMg==} + peerDependencies: + '@solana/web3.js': ^1.87.3 + + '@bonfida/spl-name-service@3.0.7': + resolution: {integrity: sha512-okOLXhy+fQoyQ/sZgMleO5RrIZfTkWEoHMxWgUqg6RP/MTBlrKxlhKC6ymKn4UUe0C5s3Nb8A+3Ams7vX0nMDg==} + peerDependencies: + '@solana/web3.js': ^1.87.3 + + '@cfworker/json-schema@4.0.3': + resolution: {integrity: sha512-ZykIcDTVv5UNmKWSTLAs3VukO6NDJkkSKxrgUTDPBkAlORVT3H9n5DbRjRl8xIotklscHdbLIa0b9+y3mQq73g==} + + '@cks-systems/manifest-sdk@0.1.59': + resolution: {integrity: sha512-ZYTwwDxrC2u74kF30iWZPZPYXB9MtOydLd4/SQdlMXrb6bj1OooMtZxukSCu/Tlkp+KR26bEr6gYuErFHdUFjg==} + + '@coral-xyz/anchor@0.26.0': + resolution: {integrity: sha512-PxRl+wu5YyptWiR9F2MBHOLLibm87Z4IMUBPreX+DYBtPM+xggvcPi0KAN7+kIL4IrIhXI8ma5V0MCXxSN1pHg==} + engines: {node: '>=11'} + + '@coral-xyz/anchor@0.27.0': + resolution: {integrity: sha512-+P/vPdORawvg3A9Wj02iquxb4T0C5m4P6aZBVYysKl4Amk+r6aMPZkUhilBkD6E4Nuxnoajv3CFykUfkGE0n5g==} + engines: {node: '>=11'} + + '@coral-xyz/anchor@0.29.0': + resolution: {integrity: sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA==} + engines: {node: '>=11'} + + '@coral-xyz/borsh@0.26.0': + resolution: {integrity: sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==} + engines: {node: '>=10'} + peerDependencies: + '@solana/web3.js': ^1.68.0 + + '@coral-xyz/borsh@0.27.0': + resolution: {integrity: sha512-tJKzhLukghTWPLy+n8K8iJKgBq1yLT/AxaNd10yJrX8mI56ao5+OFAKAqW/h0i79KCvb4BK0VGO5ECmmolFz9A==} + engines: {node: '>=10'} + peerDependencies: + '@solana/web3.js': ^1.68.0 + + '@coral-xyz/borsh@0.28.0': + resolution: {integrity: sha512-/u1VTzw7XooK7rqeD7JLUSwOyRSesPUk0U37BV9zK0axJc1q0nRbKFGFLYCQ16OtdOJTTwGfGp11Lx9B45bRCQ==} + engines: {node: '>=10'} + peerDependencies: + '@solana/web3.js': ^1.68.0 + + '@coral-xyz/borsh@0.29.0': + resolution: {integrity: sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==} + engines: {node: '>=10'} + peerDependencies: + '@solana/web3.js': ^1.68.0 + + '@cspotcode/source-map-support@0.8.1': + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} + + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/config-array@0.19.1': + resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/core@0.9.1': + resolution: {integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.17.0': + resolution: {integrity: sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.5': + resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.4': + resolution: {integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ethereumjs/rlp@4.0.1': + resolution: {integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==} + engines: {node: '>=14'} + hasBin: true + + '@ethereumjs/util@8.1.0': + resolution: {integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==} + engines: {node: '>=14'} + + '@ethersproject/bytes@5.7.0': + resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} + + '@ethersproject/logger@5.7.0': + resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} + + '@ethersproject/sha2@5.7.0': + resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==} + + '@gerrit0/mini-shiki@1.26.1': + resolution: {integrity: sha512-gHFUvv9f1fU2Piou/5Y7Sx5moYxcERbC7CXc6rkDLQTUBg5Dgg9L4u29/nHqfoQ3Y9R0h0BcOhd14uOEZIBP7Q==} + + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} + + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} + + '@humanwhocodes/retry@0.4.1': + resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + engines: {node: '>=18.18'} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.9': + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + + '@langchain/core@0.3.26': + resolution: {integrity: sha512-6RUQHEp8wv+JwtYIIEBYBzbLlcAQZFc7EDOgAM0ukExjh9HiXoJzoWpgMRRCrr/koIbtwXPJUqBprZK1I1CXHQ==} + engines: {node: '>=18'} + + '@langchain/groq@0.1.2': + resolution: {integrity: sha512-bgQ9yGoNHOwG6LG2ngGvSNxF/1U1c1u3vKmFWmzecFIcBoQQOJY0jb0MrL3g1uTife0Sr3zxkWKXQg2aK/U4Sg==} + engines: {node: '>=18'} + peerDependencies: + '@langchain/core': '>=0.2.21 <0.4.0' + + '@langchain/langgraph-checkpoint-postgres@0.0.2': + resolution: {integrity: sha512-st4qH1DZkYU6WGymG+TP2DEgxy8HH2EMq5Re51Z1sj11Ac4Q0VGJNlHjvGXR/QJjfmWpgBztvLYaMnUlNAybkg==} + engines: {node: '>=18'} + peerDependencies: + '@langchain/core': '>=0.2.31 <0.4.0' + '@langchain/langgraph-checkpoint': ~0.0.6 + + '@langchain/langgraph-checkpoint@0.0.13': + resolution: {integrity: sha512-amdmBcNT8a9xP2VwcEWxqArng4gtRDcnVyVI4DsQIo1Aaz8e8+hH17zSwrUF3pt1pIYztngIfYnBOim31mtKMg==} + engines: {node: '>=18'} + peerDependencies: + '@langchain/core': '>=0.2.31 <0.4.0' + + '@langchain/langgraph-sdk@0.0.32': + resolution: {integrity: sha512-KQyM9kLO7T6AxwNrceajH7JOybP3pYpvUPnhiI2rrVndI1WyZUJ1eVC1e722BVRAPi6o+WcoTT4uMSZVinPOtA==} + + '@langchain/langgraph@0.2.36': + resolution: {integrity: sha512-zxk7ZCVxP0/Ut9785EiXCS7BE7sXd8cu943mcZUF2aNFUaQRTBbbiKpNdR3nb1+xO/B+HVktrJT2VFdkAywnng==} + engines: {node: '>=18'} + peerDependencies: + '@langchain/core': '>=0.2.36 <0.3.0 || >=0.3.9 < 0.4.0' + + '@langchain/openai@0.3.16': + resolution: {integrity: sha512-Om9HRlTeI0Ou6D4pfxbWHop4WGfkCdV/7v1W/+Jr7NSf0BNoA9jk5GqGms8ZtOYSGgPvizDu3i0TrM3B4cN4NA==} + engines: {node: '>=18'} + peerDependencies: + '@langchain/core': '>=0.2.26 <0.4.0' + + '@langchain/textsplitters@0.1.0': + resolution: {integrity: sha512-djI4uw9rlkAb5iMhtLED+xJebDdAG935AdP4eRTB02R7OB/act55Bj9wsskhZsvuyQRpO4O1wQOp85s6T6GWmw==} + engines: {node: '>=18'} + peerDependencies: + '@langchain/core': '>=0.2.21 <0.4.0' + + '@lightprotocol/compressed-token@0.17.1': + resolution: {integrity: sha512-493KCmZGw1BcHVRJaeRm8EEs+L7gX8dwY7JG13w2pfgOMtZXZ7Wxt261jFJxQJzRLTrUSlrbRJOmfW1+S1Y8SQ==} + peerDependencies: + '@lightprotocol/stateless.js': 0.17.1 + + '@lightprotocol/stateless.js@0.17.1': + resolution: {integrity: sha512-EjId1n33A6dBwpce33Wsa/fs/CDKtMtRrkxbApH0alXrnEXmbW6QhIViXOrKYXjZ4uJQM1xsBtsKe0vqJ4nbtQ==} + + '@metaplex-foundation/beet-solana@0.3.1': + resolution: {integrity: sha512-tgyEl6dvtLln8XX81JyBvWjIiEcjTkUwZbrM5dIobTmoqMuGewSyk9CClno8qsMsFdB5T3jC91Rjeqmu/6xk2g==} + + '@metaplex-foundation/beet-solana@0.4.0': + resolution: {integrity: sha512-B1L94N3ZGMo53b0uOSoznbuM5GBNJ8LwSeznxBxJ+OThvfHQ4B5oMUqb+0zdLRfkKGS7Q6tpHK9P+QK0j3w2cQ==} + + '@metaplex-foundation/beet-solana@0.4.1': + resolution: {integrity: sha512-/6o32FNUtwK8tjhotrvU/vorP7umBuRFvBZrC6XCk51aKidBHe5LPVPA5AjGPbV3oftMfRuXPNd9yAGeEqeCDQ==} + + '@metaplex-foundation/beet@0.4.0': + resolution: {integrity: sha512-2OAKJnLatCc3mBXNL0QmWVQKAWK2C7XDfepgL0p/9+8oSx4bmRAFHFqptl1A/C0U5O3dxGwKfmKluW161OVGcA==} + + '@metaplex-foundation/beet@0.6.1': + resolution: {integrity: sha512-OYgnijLFzw0cdUlRKH5POp0unQECPOW9muJ2X3QIVyak5G6I6l/rKo72sICgPLIFKdmsi2jmnkuLY7wp14iXdw==} + + '@metaplex-foundation/beet@0.7.1': + resolution: {integrity: sha512-hNCEnS2WyCiYyko82rwuISsBY3KYpe828ubsd2ckeqZr7tl0WVLivGkoyA/qdiaaHEBGdGl71OpfWa2rqL3DiA==} + + '@metaplex-foundation/beet@0.7.2': + resolution: {integrity: sha512-K+g3WhyFxKPc0xIvcIjNyV1eaTVJTiuaHZpig7Xx0MuYRMoJLLvhLTnUXhFdR5Tu2l2QSyKwfyXDgZlzhULqFg==} + + '@metaplex-foundation/cusper@0.0.2': + resolution: {integrity: sha512-S9RulC2fFCFOQraz61bij+5YCHhSO9llJegK8c8Y6731fSi6snUSQJdCUqYS8AIgR0TKbQvdvgSyIIdbDFZbBA==} + + '@metaplex-foundation/mpl-auction-house@2.5.1': + resolution: {integrity: sha512-O+IAdYVaoOvgACB8pm+1lF5BNEjl0COkqny2Ho8KQZwka6aC/vHbZ239yRwAMtJhf5992BPFdT4oifjyE0O+Mw==} + + '@metaplex-foundation/mpl-bubblegum@0.7.0': + resolution: {integrity: sha512-HCo6q+nh8M3KRv9/aUaZcJo5/vPJEeZwPGRDWkqN7lUXoMIvhd83fZi7MB1rIg1gwpVHfHqim0A02LCYKisWFg==} + + '@metaplex-foundation/mpl-core@1.1.1': + resolution: {integrity: sha512-h1kLw+cGaV8SiykoHDb1/G01+VYqtJXAt0uGuO5+2Towsdtc6ET4M62iqUnh4EacTVMIW1yYHsKsG/LYWBCKaA==} + peerDependencies: + '@metaplex-foundation/umi': '>=0.8.2 < 1' + '@noble/hashes': ^1.3.1 + + '@metaplex-foundation/mpl-token-metadata@2.13.0': + resolution: {integrity: sha512-Fl/8I0L9rv4bKTV/RAl5YIbJe9SnQPInKvLz+xR1fEc4/VQkuCn3RPgypfUMEKWmCznzaw4sApDxy6CFS4qmJw==} + + '@metaplex-foundation/mpl-token-metadata@3.3.0': + resolution: {integrity: sha512-t5vO8Wr3ZZZPGrVrGNcosX5FMkwQSgBiVMQMRNDG2De7voYFJmIibD5jdG05EoQ4Y5kZVEiwhYaO+wJB3aO5AA==} + peerDependencies: + '@metaplex-foundation/umi': '>= 0.8.2 < 1' + + '@metaplex-foundation/mpl-toolbox@0.9.4': + resolution: {integrity: sha512-fd6JxfoLbj/MM8FG2x91KYVy1U6AjBQw4qjt7+Da3trzQaWnSaYHDcYRG/53xqfvZ9qofY1T2t53GXPlD87lnQ==} + peerDependencies: + '@metaplex-foundation/umi': '>= 0.8.2 < 1' + + '@metaplex-foundation/rustbin@0.3.5': + resolution: {integrity: sha512-m0wkRBEQB/8krwMwKBvFugufZtYwMXiGHud2cTDAv+aGXK4M90y0Hx67/wpu+AqqoQfdV8VM9YezUOHKD+Z5kA==} + + '@metaplex-foundation/solita@0.12.2': + resolution: {integrity: sha512-oczMfE43NNHWweSqhXPTkQBUbap/aAiwjDQw8zLKNnd/J8sXr/0+rKcN5yJIEgcHeKRkp90eTqkmt2WepQc8yw==} + hasBin: true + + '@metaplex-foundation/umi-bundle-defaults@0.9.2': + resolution: {integrity: sha512-kV3tfvgvRjVP1p9OFOtH+ibOtN9omVJSwKr0We4/9r45e5LTj+32su0V/rixZUkG1EZzzOYBsxhtIE0kIw/Hrw==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + '@solana/web3.js': ^1.72.0 + + '@metaplex-foundation/umi-downloader-http@0.9.2': + resolution: {integrity: sha512-tzPT9hBwenzTzAQg07rmsrqZfgguAXELbcJrsYMoASp5VqWFXYIP00g94KET6XLjWUXH4P1J2zoa6hGennPXHA==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + + '@metaplex-foundation/umi-eddsa-web3js@0.9.2': + resolution: {integrity: sha512-hhPCxXbYIp4BC4z9gK78sXpWLkNSrfv4ndhF5ruAkdIp7GcRVYKj0QnOUO6lGYGiIkNlw20yoTwOe1CT//OfTQ==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + '@solana/web3.js': ^1.72.0 + + '@metaplex-foundation/umi-http-fetch@0.9.2': + resolution: {integrity: sha512-YCZuBu24T9ZzEDe4+w12LEZm/fO9pkyViZufGgASC5NX93814Lvf6Ssjn/hZzjfA7CvZbvLFbmujc6CV3Q/m9Q==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + + '@metaplex-foundation/umi-options@0.8.9': + resolution: {integrity: sha512-jSQ61sZMPSAk/TXn8v8fPqtz3x8d0/blVZXLLbpVbo2/T5XobiI6/MfmlUosAjAUaQl6bHRF8aIIqZEFkJiy4A==} + + '@metaplex-foundation/umi-program-repository@0.9.2': + resolution: {integrity: sha512-g3+FPqXEmYsBa8eETtUE2gb2Oe3mqac0z3/Ur1TvAg5TtIy3mzRzOy/nza+sgzejnfcxcVg835rmpBaxpBnjDA==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + + '@metaplex-foundation/umi-public-keys@0.8.9': + resolution: {integrity: sha512-CxMzN7dgVGOq9OcNCJe2casKUpJ3RmTVoOvDFyeoTQuK+vkZ1YSSahbqC1iGuHEtKTLSjtWjKvUU6O7zWFTw3Q==} + + '@metaplex-foundation/umi-rpc-chunk-get-accounts@0.9.2': + resolution: {integrity: sha512-YRwVf6xH0jPBAUgMhEPi+UbjioAeqTXmjsN2TnmQCPAmHbrHrMRj0rlWYwFLWAgkmoxazYrXP9lqOFRrfOGAEA==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + + '@metaplex-foundation/umi-rpc-web3js@0.9.2': + resolution: {integrity: sha512-MqcsBz8B4wGl6jxsf2Jo/rAEpYReU9VCSR15QSjhvADHMmdFxCIZCCAgE+gDE2Vuanfl437VhOcP3g5Uw8C16Q==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + '@solana/web3.js': ^1.72.0 + + '@metaplex-foundation/umi-serializer-data-view@0.9.2': + resolution: {integrity: sha512-5vGptadJxUxvUcyrwFZxXlEc6Q7AYySBesizCtrBFUY8w8PnF2vzmS45CP1MLySEATNH6T9mD4Rs0tLb87iQyA==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + + '@metaplex-foundation/umi-serializers-core@0.8.9': + resolution: {integrity: sha512-WT82tkiYJ0Qmscp7uTj1Hz6aWQPETwaKLAENAUN5DeWghkuBKtuxyBKVvEOuoXerJSdhiAk0e8DWA4cxcTTQ/w==} + + '@metaplex-foundation/umi-serializers-encodings@0.8.9': + resolution: {integrity: sha512-N3VWLDTJ0bzzMKcJDL08U3FaqRmwlN79FyE4BHj6bbAaJ9LEHjDQ9RJijZyWqTm0jE7I750fU7Ow5EZL38Xi6Q==} + + '@metaplex-foundation/umi-serializers-numbers@0.8.9': + resolution: {integrity: sha512-NtBf1fnVNQJHFQjLFzRu2i9GGnigb9hOm/Gfrk628d0q0tRJB7BOM3bs5C61VAs7kJs4yd+pDNVAERJkknQ7Lg==} + + '@metaplex-foundation/umi-serializers@0.9.0': + resolution: {integrity: sha512-hAOW9Djl4w4ioKeR4erDZl5IG4iJdP0xA19ZomdaCbMhYAAmG/FEs5khh0uT2mq53/MnzWcXSUPoO8WBN4Q+Vg==} + + '@metaplex-foundation/umi-transaction-factory-web3js@0.9.2': + resolution: {integrity: sha512-fR1Kf21uylMFd1Smkltmj4jTNxhqSWf416owsJ+T+cvJi2VCOcOwq/3UFzOrpz78fA0RhsajKYKj0HYsRnQI1g==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + '@solana/web3.js': ^1.72.0 + + '@metaplex-foundation/umi-web3js-adapters@0.9.2': + resolution: {integrity: sha512-RQqUTtHYY9fmEMnq7s3Hiv/81flGaoI0ZVVoafnFVaQLnxU6QBKxtboRZHk43XtD9CiFh5f9izrMJX7iK7KlOA==} + peerDependencies: + '@metaplex-foundation/umi': ^0.9.2 + '@solana/web3.js': ^1.72.0 + + '@metaplex-foundation/umi@0.9.2': + resolution: {integrity: sha512-9i4Acm4pruQfJcpRrc2EauPBwkfDN0I9QTvJyZocIlKgoZwD6A6wH0PViH1AjOVG5CQCd1YI3tJd5XjYE1ElBw==} + + '@msgpack/msgpack@2.8.0': + resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} + engines: {node: '>= 10'} + + '@msgpack/msgpack@3.0.0-beta2': + resolution: {integrity: sha512-y+l1PNV0XDyY8sM3YtuMLK5vE3/hkfId+Do8pLo/OPxfxuFAUwcGz3oiiUuV46/aBpwTzZ+mRWVMtlSKbradhw==} + engines: {node: '>= 14'} + + '@noble/curves@1.4.2': + resolution: {integrity: sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==} + + '@noble/curves@1.7.0': + resolution: {integrity: sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.4.0': + resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==} + engines: {node: '>= 16'} + + '@noble/hashes@1.5.0': + resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.6.0': + resolution: {integrity: sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.6.1': + resolution: {integrity: sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==} + engines: {node: ^14.21.3 || >=16} + + '@onsol/tldparser@0.6.7': + resolution: {integrity: sha512-QwkRDLyC514pxeplCCXZ2kTiRcJSeUrpp+9o2XqLbePy/qzZGGG8I0UbXUKuWVD/bUL1zAm21+D+Eu30OKwcQg==} + engines: {node: '>=14'} + peerDependencies: + '@solana/web3.js': ^1.95.3 + bn.js: ^5.2.1 + borsh: ^0.7.0 + buffer: 6.0.1 + + '@opentelemetry/api@1.9.0': + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@orca-so/common-sdk@0.6.4': + resolution: {integrity: sha512-iOiC6exTA9t2CEOaUPoWlNP3soN/1yZFjoz1mSf7NvOqo/PJZeIdWpB7BRXwU0mGGatjxU4SFgMGQ8NrSx+ONw==} + peerDependencies: + '@solana/spl-token': ^0.4.1 + '@solana/web3.js': ^1.90.0 + decimal.js: ^10.4.3 + + '@orca-so/whirlpools-sdk@0.13.12': + resolution: {integrity: sha512-+LOqGTe0DYUsYwemltOU4WQIviqoICQlIcAmmEX/WnBh6wntpcLDcXkPV6dBHW7NA2/J8WEVAZ50biLJb4subg==} + peerDependencies: + '@coral-xyz/anchor': ~0.29.0 + '@orca-so/common-sdk': 0.6.4 + '@solana/spl-token': ^0.4.8 + '@solana/web3.js': ^1.90.0 + decimal.js: ^10.4.3 + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@pythnetwork/client@2.22.0': + resolution: {integrity: sha512-Cyv23YqewKUL1pcm99jfmdetUa2aaUXjyRF9jvSeFcY895FddRu7uSWftYiaevsnx7vn4WbJgQR6ExxH+aONow==} + peerDependencies: + '@solana/web3.js': ^1.30.2 + + '@pythnetwork/hermes-client@1.3.0': + resolution: {integrity: sha512-SneB+LJSD6pNnG2JUuAgbHNi1qFDcnrIiMuU60FQxZMtIWP09YFMR64vxWxVawyqR93t0iQHcV5HT/hhfmqYOQ==} + + '@pythnetwork/price-service-client@1.9.0': + resolution: {integrity: sha512-SLm3IFcfmy9iMqHeT4Ih6qMNZhJEefY14T9yTlpsH2D/FE5+BaGGnfcexUifVlfH6M7mwRC4hEFdNvZ6ebZjJg==} + deprecated: This package is deprecated and is no longer maintained. Please use @pythnetwork/hermes-client instead. + + '@pythnetwork/price-service-sdk@1.8.0': + resolution: {integrity: sha512-tFZ1thj3Zja06DzPIX2dEWSi7kIfIyqreoywvw5NQ3Z1pl5OJHQGMEhxt6Li3UCGSp2ooYZS9wl8/8XfrfrNSA==} + + '@raydium-io/raydium-sdk-v2@0.1.95-alpha': + resolution: {integrity: sha512-+u7yxo/R1JDysTCzOuAlh90ioBe2DlM2Hbcz/tFsxP/YzmnYQzShvNjcmc0361a4zJhmlrEJfpFXW0J3kkX5vA==} + + '@saberhq/option-utils@1.15.0': + resolution: {integrity: sha512-XVbS9H4b8PIGXJGaErkOurxV2FKFyvMwYq0pD8Y1iEPoi6HB//+HnpEKAv8tCssIQ5Nn1zQWzmQ9CmGkrwzcsw==} + + '@saberhq/solana-contrib@1.15.0': + resolution: {integrity: sha512-OExL5qGrNMmIKINU7qFUDmY7+xIwVM2s360g99k8CRNHSnjpnqIzwDjr2CnvEFpeQPp22OdGlS63woDp0w0JsQ==} + peerDependencies: + '@solana/web3.js': ^1.42 + bn.js: ^4 || ^5 + + '@scure/base@1.1.9': + resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} + + '@scure/base@1.2.1': + resolution: {integrity: sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==} + + '@scure/bip32@1.4.0': + resolution: {integrity: sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==} + + '@scure/bip39@1.3.0': + resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==} + + '@shikijs/core@1.24.4': + resolution: {integrity: sha512-jjLsld+xEEGYlxAXDyGwWsKJ1sw5Pc1pnp4ai2ORpjx2UX08YYTC0NNqQYO1PaghYaR+PvgMOGuvzw2he9sk0Q==} + + '@shikijs/engine-javascript@1.24.4': + resolution: {integrity: sha512-TClaQOLvo9WEMJv6GoUsykQ6QdynuKszuORFWCke8qvi6PeLm7FcD9+7y45UenysxEWYpDL5KJaVXTngTE+2BA==} + + '@shikijs/engine-oniguruma@1.24.4': + resolution: {integrity: sha512-Do2ry6flp2HWdvpj2XOwwa0ljZBRy15HKZITzPcNIBOGSeprnA8gOooA/bLsSPuy8aJBa+Q/r34dMmC3KNL/zw==} + + '@shikijs/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/types@1.26.1': + resolution: {integrity: sha512-d4B00TKKAMaHuFYgRf3L0gwtvqpW4hVdVwKcZYbBfAAQXspgkbWqnFfuFl3MDH6gLbsubOcr+prcnsqah3ny7Q==} + + '@shikijs/vscode-textmate@10.0.1': + resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==} + + '@shikijs/vscode-textmate@9.3.1': + resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==} + + '@solana/buffer-layout-utils@0.2.0': + resolution: {integrity: sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==} + engines: {node: '>= 10'} + + '@solana/buffer-layout@4.0.1': + resolution: {integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==} + engines: {node: '>=5.10'} + + '@solana/codecs-core@2.0.0-preview.2': + resolution: {integrity: sha512-gLhCJXieSCrAU7acUJjbXl+IbGnqovvxQLlimztPoGgfLQ1wFYu+XJswrEVQqknZYK1pgxpxH3rZ+OKFs0ndQg==} + + '@solana/codecs-core@2.0.0-preview.4': + resolution: {integrity: sha512-A0VVuDDA5kNKZUinOqHxJQK32aKTucaVbvn31YenGzHX1gPqq+SOnFwgaEY6pq4XEopSmaK16w938ZQS8IvCnw==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-core@2.0.0-rc.1': + resolution: {integrity: sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-data-structures@2.0.0-preview.2': + resolution: {integrity: sha512-Xf5vIfromOZo94Q8HbR04TbgTwzigqrKII0GjYr21K7rb3nba4hUW2ir8kguY7HWFBcjHGlU5x3MevKBOLp3Zg==} + + '@solana/codecs-data-structures@2.0.0-preview.4': + resolution: {integrity: sha512-nt2k2eTeyzlI/ccutPcG36M/J8NAYfxBPI9h/nQjgJ+M+IgOKi31JV8StDDlG/1XvY0zyqugV3I0r3KAbZRJpA==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-data-structures@2.0.0-rc.1': + resolution: {integrity: sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-numbers@2.0.0-preview.2': + resolution: {integrity: sha512-aLZnDTf43z4qOnpTcDsUVy1Ci9im1Md8thWipSWbE+WM9ojZAx528oAql+Cv8M8N+6ALKwgVRhPZkto6E59ARw==} + + '@solana/codecs-numbers@2.0.0-preview.4': + resolution: {integrity: sha512-Q061rLtMadsO7uxpguT+Z7G4UHnjQ6moVIxAQxR58nLxDPCC7MB1Pk106/Z7NDhDLHTcd18uO6DZ7ajHZEn2XQ==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-numbers@2.0.0-rc.1': + resolution: {integrity: sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs-strings@2.0.0-preview.2': + resolution: {integrity: sha512-EgBwY+lIaHHgMJIqVOGHfIfpdmmUDNoNO/GAUGeFPf+q0dF+DtwhJPEMShhzh64X2MeCZcmSO6Kinx0Bvmmz2g==} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + + '@solana/codecs-strings@2.0.0-preview.4': + resolution: {integrity: sha512-YDbsQePRWm+xnrfS64losSGRg8Wb76cjK1K6qfR8LPmdwIC3787x9uW5/E4icl/k+9nwgbIRXZ65lpF+ucZUnw==} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: '>=5' + + '@solana/codecs-strings@2.0.0-rc.1': + resolution: {integrity: sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g==} + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: '>=5' + + '@solana/codecs@2.0.0-preview.2': + resolution: {integrity: sha512-4HHzCD5+pOSmSB71X6w9ptweV48Zj1Vqhe732+pcAQ2cMNnN0gMPMdDq7j3YwaZDZ7yrILVV/3+HTnfT77t2yA==} + + '@solana/codecs@2.0.0-preview.4': + resolution: {integrity: sha512-gLMupqI4i+G4uPi2SGF/Tc1aXcviZF2ybC81x7Q/fARamNSgNOCUUoSCg9nWu1Gid6+UhA7LH80sWI8XjKaRog==} + peerDependencies: + typescript: '>=5' + + '@solana/codecs@2.0.0-rc.1': + resolution: {integrity: sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ==} + peerDependencies: + typescript: '>=5' + + '@solana/errors@2.0.0-preview.2': + resolution: {integrity: sha512-H2DZ1l3iYF5Rp5pPbJpmmtCauWeQXRJapkDg8epQ8BJ7cA2Ut/QEtC3CMmw/iMTcuS6uemFNLcWvlOfoQhvQuA==} + hasBin: true + + '@solana/errors@2.0.0-preview.4': + resolution: {integrity: sha512-kadtlbRv2LCWr8A9V22On15Us7Nn8BvqNaOB4hXsTB3O0fU40D1ru2l+cReqLcRPij4znqlRzW9Xi0m6J5DIhA==} + hasBin: true + peerDependencies: + typescript: '>=5' + + '@solana/errors@2.0.0-rc.1': + resolution: {integrity: sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ==} + hasBin: true + peerDependencies: + typescript: '>=5' + + '@solana/options@2.0.0-preview.2': + resolution: {integrity: sha512-FAHqEeH0cVsUOTzjl5OfUBw2cyT8d5Oekx4xcn5hn+NyPAfQJgM3CEThzgRD6Q/4mM5pVUnND3oK/Mt1RzSE/w==} + + '@solana/options@2.0.0-preview.4': + resolution: {integrity: sha512-tv2O/Frxql/wSe3jbzi5nVicIWIus/BftH+5ZR+r9r3FO0/htEllZS5Q9XdbmSboHu+St87584JXeDx3xm4jaA==} + peerDependencies: + typescript: '>=5' + + '@solana/options@2.0.0-rc.1': + resolution: {integrity: sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA==} + peerDependencies: + typescript: '>=5' + + '@solana/spl-account-compression@0.1.10': + resolution: {integrity: sha512-IQAOJrVOUo6LCgeWW9lHuXo6JDbi4g3/RkQtvY0SyalvSWk9BIkHHe4IkAzaQw8q/BxEVBIjz8e9bNYWIAESNw==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.50.1 + + '@solana/spl-token-group@0.0.4': + resolution: {integrity: sha512-7+80nrEMdUKlK37V6kOe024+T7J4nNss0F8LQ9OOPYdWCCfJmsGUzVx2W3oeizZR4IHM6N4yC9v1Xqwc3BTPWw==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.91.6 + + '@solana/spl-token-group@0.0.5': + resolution: {integrity: sha512-CLJnWEcdoUBpQJfx9WEbX3h6nTdNiUzswfFdkABUik7HVwSNA98u5AYvBVK2H93d9PGMOHAak2lHW9xr+zAJGQ==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.94.0 + + '@solana/spl-token-group@0.0.7': + resolution: {integrity: sha512-V1N/iX7Cr7H0uazWUT2uk27TMqlqedpXHRqqAbVO2gvmJyT0E0ummMEAVQeXZ05ZhQ/xF39DLSdBp90XebWEug==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.95.3 + + '@solana/spl-token-metadata@0.1.6': + resolution: {integrity: sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.95.3 + + '@solana/spl-token@0.1.8': + resolution: {integrity: sha512-LZmYCKcPQDtJgecvWOgT/cnoIQPWjdH+QVyzPcFvyDUiT0DiRjZaam4aqNUyvchLFhzgunv3d9xOoyE34ofdoQ==} + engines: {node: '>= 10'} + + '@solana/spl-token@0.3.11': + resolution: {integrity: sha512-bvohO3rIMSVL24Pb+I4EYTJ6cL82eFpInEXD/I8K8upOGjpqHsKUoAempR/RnUlI1qSFNyFlWJfu6MNUgfbCQQ==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.88.0 + + '@solana/spl-token@0.4.6': + resolution: {integrity: sha512-1nCnUqfHVtdguFciVWaY/RKcQz1IF4b31jnKgAmjU9QVN1q7dRUkTEWJZgTYIEtsULjVnC9jRqlhgGN39WbKKA==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.91.6 + + '@solana/spl-token@0.4.8': + resolution: {integrity: sha512-RO0JD9vPRi4LsAbMUdNbDJ5/cv2z11MGhtAvFeRzT4+hAGE/FUzRi0tkkWtuCfSIU3twC6CtmAihRp/+XXjWsA==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.94.0 + + '@solana/spl-token@0.4.9': + resolution: {integrity: sha512-g3wbj4F4gq82YQlwqhPB0gHFXfgsC6UmyGMxtSLf/BozT/oKd59465DbnlUK8L8EcimKMavxsVAMoLcEdeCicg==} + engines: {node: '>=16'} + peerDependencies: + '@solana/web3.js': ^1.95.3 + + '@solana/spl-type-length-value@0.1.0': + resolution: {integrity: sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA==} + engines: {node: '>=16'} + + '@solana/web3.js@1.95.3': + resolution: {integrity: sha512-O6rPUN0w2fkNqx/Z3QJMB9L225Ex10PRDH8bTaIUPZXMPV0QP8ZpPvjQnXK+upUczlRgzHzd6SjKIha1p+I6og==} + + '@solana/web3.js@1.95.8': + resolution: {integrity: sha512-sBHzNh7dHMrmNS5xPD1d0Xa2QffW/RXaxu/OysRXBfwTp+LYqGGmMtCYYwrHPrN5rjAmJCsQRNAwv4FM0t3B6g==} + + '@solana/web3.js@1.98.0': + resolution: {integrity: sha512-nz3Q5OeyGFpFCR+erX2f6JPt3sKhzhYcSycBCSPkWjzSVDh/Rr1FqTVMRe58FKO16/ivTUcuJjeS5MyBvpkbzA==} + + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + + '@tensor-hq/tensor-common@8.3.1': + resolution: {integrity: sha512-cgc+Z0nR23pi+1DfJgF1+afWd+xf1e6VYPM9yhECshmERr6BgojQfcuoltHHcgpwSlLrZXnm47kQ48I2M6rxFQ==} + + '@tensor-oss/tensorswap-sdk@4.5.0': + resolution: {integrity: sha512-eNM6k1DT5V/GadxSHm8//z2wlLl8/EcA0KFQXKaxRba/2MirNySsoVGxDXO2UdOI4eZMse8f+8Et3P63WWjsIw==} + + '@tiplink/api@0.3.1': + resolution: {integrity: sha512-HjnXethjKOHTYT0IP1BewlMS7wZJ+hsoDgRa6jA1cNvxvwQjE1WHOyvOUPpAi+DJDw4P4/omFtyHr7dwLfnB/g==} + + '@tsconfig/node10@1.0.11': + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + + '@tsconfig/node12@1.0.11': + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + + '@tsconfig/node14@1.0.3': + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + + '@tsconfig/node16@1.0.4': + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + + '@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/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@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@20.17.12': + resolution: {integrity: sha512-vo/wmBgMIiEA23A/knMfn/cf37VnuF52nZh5ZoW0GWt4e4sxNquibrMRJ7UQsA06+MBx9r/H1jsI9grYjQCQlw==} + + '@types/node@22.10.2': + resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} + + '@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==} + + '@types/uuid@10.0.0': + resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} + + '@types/uuid@8.3.4': + resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} + + '@types/ws@7.4.7': + resolution: {integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==} + + '@types/ws@8.5.13': + resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==} + + '@ungap/structured-clone@1.2.1': + resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==} + + '@zodios/core@10.9.6': + resolution: {integrity: sha512-aH4rOdb3AcezN7ws8vDgBfGboZMk2JGGzEq/DtW65MhnRxyTGRuLJRWVQ/2KxDgWvV2F5oTkAS+5pnjKbl0n+A==} + peerDependencies: + axios: ^0.x || ^1.0.0 + zod: ^3.x + + JSONStream@1.3.5: + resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} + hasBin: true + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + 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: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} + engines: {node: '>=0.4.0'} + hasBin: true + + agentkeepalive@4.5.0: + resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + engines: {node: '>= 8.0.0'} + + ai@4.0.27: + resolution: {integrity: sha512-3wMFXNAR6a269R7k4ZDQ9FfF3fb8gQlnlIE4kWaQfZDUTEM5aWgQdbzFhsr9Q5DULCyZg7l/bFpGd48cRfvLaA==} + engines: {node: '>=18'} + peerDependencies: + react: ^18 || ^19 || ^19.0.0-rc + zod: ^3.0.0 + peerDependenciesMeta: + react: + optional: true + zod: + optional: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + ansicolors@0.3.2: + resolution: {integrity: sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==} + + arg@4.1.3: + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + + 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==} + + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axios-retry@3.9.1: + resolution: {integrity: sha512-8PJDLJv7qTTMMwdnbMvrLYuvB47M81wRtxQmEdV5w4rgbTXTt+vtPkXwajOfOdSyv/wZICJOC+/UhXH4aQ/R+w==} + + axios@0.28.1: + resolution: {integrity: sha512-iUcGA5a7p0mVb4Gm/sy+FSECNkPFT4y7wt6OM/CDpO/OnNCvSs3PoMG8ibrC9jRoGYU0gUK5pXVC4NPXq6lHRQ==} + + axios@1.7.9: + resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base-x@3.0.10: + resolution: {integrity: sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==} + + base-x@4.0.0: + resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==} + + base-x@5.0.0: + resolution: {integrity: sha512-sMW3VGSX1QWVFA6l8U62MLKz29rRfpTlYdCqLdpLo1/Yd4zZwSbnUaDfciIAowAqvq7YFnWq9hrhdg1KYgc1lQ==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + + big.js@6.2.2: + resolution: {integrity: sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==} + + bigint-buffer@1.1.5: + resolution: {integrity: sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==} + engines: {node: '>= 10.0.0'} + + bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + bintrees@1.0.2: + resolution: {integrity: sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==} + + bn.js@4.11.6: + resolution: {integrity: sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==} + + bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + borsh@0.7.0: + resolution: {integrity: sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==} + + borsh@1.0.0: + resolution: {integrity: sha512-fSVWzzemnyfF89EPwlUNsrS5swF5CrtiN4e+h0/lLf4dz2he4L3ndM20PS9wj7ICSkXJe/TQUHdaPTq15b1mNQ==} + + borsh@2.0.0: + resolution: {integrity: sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} + + bs58@5.0.0: + resolution: {integrity: sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==} + + bs58@6.0.0: + resolution: {integrity: sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==} + + buffer-layout@1.2.2: + resolution: {integrity: sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==} + engines: {node: '>=4.5'} + + buffer-reverse@1.0.1: + resolution: {integrity: sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + bufferutil@4.0.8: + resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} + 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'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + + chai@5.1.2: + resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} + engines: {node: '>=12'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + + character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} + + create-require@1.1.1: + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + + cross-fetch@3.2.0: + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crypto-hash@1.3.0: + resolution: {integrity: sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==} + engines: {node: '>=8'} + + crypto-js@4.2.0: + resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + + 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'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decimal.js-light@2.5.1: + resolution: {integrity: sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==} + + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} + + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + delay@5.0.0: + resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==} + engines: {node: '>=10'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + 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'} + + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + dotenv@10.0.0: + resolution: {integrity: sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==} + engines: {node: '>=10'} + + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + engines: {node: '>=12'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + emoji-regex-xs@1.0.0: + resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + + es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + + es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + + 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'} + + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.17.0: + resolution: {integrity: sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + ethereum-bloom-filters@1.2.0: + resolution: {integrity: sha512-28hyiE7HVsWubqhpVLVmZXFd4ITeHi+BUu05o9isf0GUpMtzBUi+8/gFrGaGYzvGAJQmJ3JKj77Mk9G98T84rA==} + + ethereum-cryptography@2.2.1: + resolution: {integrity: sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==} + + ethjs-unit@0.1.6: + resolution: {integrity: sha512-/Sn9Y0oKl0uqQuvgFk/zQgR7aw1g36qX/jzSQ5lSwlO0GigPymk4eGQfeNTD03w1dPOqfz8V77Cy43jH56pagw==} + engines: {node: '>=6.5.0', npm: '>=3'} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + eventsource-parser@3.0.0: + resolution: {integrity: sha512-T1C0XCUimhxVQzW4zFipdx0SficT651NnkR0ZSH3yQwh+mFMdLfgjABVi4YtMTtaL4s168593DaoaRLMqryavA==} + engines: {node: '>=18.0.0'} + + eventsource@2.0.2: + resolution: {integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==} + engines: {node: '>=12.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'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-stable-stringify@1.0.0: + resolution: {integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==} + + fastestsmallesttextencoderdecoder@1.0.22: + resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==} + + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + engines: {node: '>= 0.8'} + + find-process@1.4.9: + resolution: {integrity: sha512-x+1gcT3k+7ipx8chx1Z7cViSdeQ/RBwDk+6GiWnMTO0+YtGFrahToxarIZM6TzDZ9UFfYPUGpBf/85v5GpBXKA==} + hasBin: true + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flash-sdk@2.24.3: + resolution: {integrity: sha512-3JdmHZksBgcRlCXVVFZEV64NGKxVHURHoHAMc3+Ev1BdN0Re2S44wxTaQmO6EIvwPYscVG0BPbp6GibpEuMdsw==} + + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} + + flatted@3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + form-data-encoder@1.7.2: + resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + + formdata-node@4.4.1: + resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} + engines: {node: '>= 12.20'} + + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + + 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@0.0.1-security: + resolution: {integrity: sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==} + + 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==} + engines: {node: '>= 0.4'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@11.0.0: + resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==} + engines: {node: 20 || >=22} + hasBin: true + + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemesplit@2.4.4: + resolution: {integrity: sha512-lKrpp1mk1NH26USxC/Asw4OHbhSQf5XfrWZ+CDv/dFVvd1j17kFgMotdJvOesmHkbFX9P9sBfpH8VogxOWLg8w==} + + groq-sdk@0.5.0: + resolution: {integrity: sha512-RVmhW7qZ+XZoy5fIuSdx/LGQJONpL8MHgZEW7dFwTdgkzStub2XQx6OKv28CHogijdwH41J+Npj/z2jBPu3vmw==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hast-util-to-html@9.0.4: + resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} + + hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + + html-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==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + 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'} + + is-arguments@1.2.0: + resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} + engines: {node: '>= 0.4'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-hex-prefixed@1.0.0: + resolution: {integrity: sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==} + engines: {node: '>=6.5.0', npm: '>=3'} + + is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + + is-retry-allowed@2.2.0: + resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==} + engines: {node: '>=10'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isomorphic-ws@4.0.1: + resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} + peerDependencies: + ws: '*' + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jackspeak@4.0.2: + resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==} + engines: {node: 20 || >=22} + + jayson@4.1.3: + resolution: {integrity: sha512-LtXh5aYZodBZ9Fc3j6f2w+MTNcnxteMOrb+QgIouguGOulWi0lieEkOUg+HkjjFs0DGoWDds6bi4E9hpNFLulQ==} + engines: {node: '>=8'} + hasBin: true + + js-base64@3.7.7: + resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==} + + js-sha256@0.11.0: + resolution: {integrity: sha512-6xNlKayMZvds9h1Y1VWc0fQHQ82BxTXizWPEtEeGvmOUYpBRy4gbWroHLpzowe6xiQhHpelCQiE7HEdznyBL9Q==} + + js-sha256@0.9.0: + resolution: {integrity: sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==} + + js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + + js-tiktoken@1.0.16: + resolution: {integrity: sha512-nUVdO5k/M9llWpiaZlBBDdtmr6qWXwSD6fgaDu2zM8UP+OXxx9V37lFkI6w0/1IuaDx7WffZ37oYd9KvcWKElg==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsbi@4.3.0: + resolution: {integrity: sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==} + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsondiffpatch@0.6.0: + resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + + keccak256@1.0.6: + resolution: {integrity: sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==} + + keccak@3.0.4: + resolution: {integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==} + engines: {node: '>=10.0.0'} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + langchain@0.3.8: + resolution: {integrity: sha512-EiAHFgBdThuXFmIx9j81wjdPItpRsw0Ck4r5dyhB74gyhehRGna/UK2CTqeKVnIUM/f4g4JbxUgAU4voXljDMw==} + engines: {node: '>=18'} + peerDependencies: + '@langchain/anthropic': '*' + '@langchain/aws': '*' + '@langchain/cohere': '*' + '@langchain/core': '>=0.2.21 <0.4.0' + '@langchain/google-genai': '*' + '@langchain/google-vertexai': '*' + '@langchain/groq': '*' + '@langchain/mistralai': '*' + '@langchain/ollama': '*' + axios: '*' + cheerio: '*' + handlebars: ^4.7.8 + peggy: ^3.0.2 + typeorm: '*' + peerDependenciesMeta: + '@langchain/anthropic': + optional: true + '@langchain/aws': + optional: true + '@langchain/cohere': + optional: true + '@langchain/google-genai': + optional: true + '@langchain/google-vertexai': + optional: true + '@langchain/groq': + optional: true + '@langchain/mistralai': + optional: true + '@langchain/ollama': + optional: true + axios: + optional: true + cheerio: + optional: true + handlebars: + optional: true + peggy: + optional: true + typeorm: + optional: true + + langsmith@0.2.14: + resolution: {integrity: sha512-ClAuAgSf3m9miMYotLEaZKQyKdaWlfjhebCuYco8bc6g72dU2VwTg31Bv4YINBq7EH2i1cMwbOiJxbOXPqjGig==} + peerDependencies: + openai: '*' + peerDependenciesMeta: + openai: + optional: true + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + libsodium-sumo@0.7.15: + resolution: {integrity: sha512-5tPmqPmq8T8Nikpm1Nqj0hBHvsLFCXvdhBFV7SGOitQPZAA6jso8XoL0r4L7vmfKXr486fiQInvErHtEvizFMw==} + + libsodium-wrappers-sumo@0.7.15: + resolution: {integrity: sha512-aSWY8wKDZh5TC7rMvEdTHoyppVq/1dTSAeAR7H6pzd6QRT3vQWcT5pGwCotLcpPEOLXX6VvqihSPkpEhYAjANA==} + + libsodium-wrappers@0.7.15: + resolution: {integrity: sha512-E4anqJQwcfiC6+Yrl01C1m8p99wEhLmJSs0VQqST66SbQXXBoaJY0pF4BNjRYa/sOQAxx6lXAaAFIlx+15tXJQ==} + + libsodium@0.7.15: + resolution: {integrity: sha512-sZwRknt/tUpE2AwzHq3jEyUU5uvIZHtSssktXq7owd++3CSgn8RGrv6UZJJBpP7+iBghBqe7Z06/2M31rI2NKw==} + + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + loglevel@1.9.2: + resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} + engines: {node: '>= 0.6.0'} + + loupe@3.1.2: + resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@11.0.2: + resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==} + engines: {node: 20 || >=22} + + lunr@2.3.9: + resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + + make-error@1.3.6: + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + + math-expression-evaluator@2.0.6: + resolution: {integrity: sha512-DRung1qNcKbgkhFeQ0fBPUFB6voRUMY7KyRyp1TRQ2v95Rp2egC823xLRooM1mDx1rmbkY7ym6ZWmpaE/VimOA==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + + 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==} + + merkletreejs@0.3.11: + resolution: {integrity: sha512-LJKTl4iVNTndhL+3Uz/tfkjD0klIWsHlUzgtuNnNrsf7bAlXR30m+xYB7lHr5Z/l6e/yAIsr26Dabx6Buo4VGQ==} + engines: {node: '>= 7.6.0'} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micro-ftch@0.3.1: + resolution: {integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.1: + resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + 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==} + + minimatch@10.0.1: + resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==} + engines: {node: 20 || >=22} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mustache@4.2.0: + resolution: {integrity: sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==} + hasBin: true + + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-addon-api@2.0.2: + resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + number-to-bn@1.7.0: + resolution: {integrity: sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==} + engines: {node: '>=6.5.0', npm: '>=3'} + + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + engines: {node: '>= 0.4'} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + oniguruma-to-es@0.8.1: + resolution: {integrity: sha512-dekySTEvCxCj0IgKcA2uUCO/e4ArsqpucDPcX26w9ajx+DvMWLc5eZeJaRQkd7oC/+rwif5gnT900tA34uN9Zw==} + + openai@4.77.0: + resolution: {integrity: sha512-WWacavtns/7pCUkOWvQIjyOfcdr9X+9n9Vvb0zFeKVDAqwCMDHB+iSr24SVaBAhplvSG6JrRXFpcNM9gWhOGIw==} + hasBin: true + peerDependencies: + zod: ^3.23.8 + peerDependenciesMeta: + zod: + optional: true + + openapi-types@12.1.3: + resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-finally@1.0.0: + resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} + engines: {node: '>=4'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-queue@6.6.2: + resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} + engines: {node: '>=8'} + + p-retry@4.6.2: + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} + + p-timeout@3.2.0: + resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} + engines: {node: '>=8'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + + pako@2.1.0: + resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + 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'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-scurry@2.0.0: + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} + + path-to-regexp@0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + + percentile@1.6.0: + resolution: {integrity: sha512-8vSyjdzwxGDHHwH+cSGch3A9Uj2On3UpgOWxWXMKwUvoAbnujx6DaqmV1duWXNiH/oEWpyVd6nSQccix6DM3Ng==} + + pg-cloudflare@1.1.1: + resolution: {integrity: sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==} + + pg-connection-string@2.7.0: + resolution: {integrity: sha512-PI2W9mv53rXJQEOb8xNR8lH7Hr+EKa6oJa38zsK0S/ky2er16ios1wLKhZyxzD7jUReiWokc9WK5nxSnC7W1TA==} + + pg-int8@1.0.1: + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} + + pg-pool@3.7.0: + resolution: {integrity: sha512-ZOBQForurqh4zZWjrgSwwAtzJ7QiRX0ovFkZr2klsen3Nm0aoh33Ls0fzfv3imeH/nw/O27cjdz5kzYJfeGp/g==} + peerDependencies: + pg: '>=8.0' + + pg-protocol@1.7.0: + resolution: {integrity: sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==} + + pg-types@2.2.0: + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} + engines: {node: '>=4'} + + pg@8.13.1: + resolution: {integrity: sha512-OUir1A0rPNZlX//c7ksiu7crsGZTKSOXJPgtNiHGIlC9H0lO+NC6ZDYksSgBYY/thSWhnSRBv8w1lieNNGATNQ==} + engines: {node: '>= 8.0.0'} + peerDependencies: + pg-native: '>=3.0.1' + peerDependenciesMeta: + pg-native: + optional: true + + pgpass@1.0.5: + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + + poly1305-js@0.4.4: + resolution: {integrity: sha512-5B6/S+vg5AOr66wJDkh5LOpU/F3EKANDy4VXKsNZLXea1uCy6CiOWOZ3VhcC0nYdhE7vJUMcLxqcVlrv2g/+Rg==} + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + postgres-array@2.0.0: + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} + engines: {node: '>=4'} + + postgres-bytea@1.0.0: + resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} + engines: {node: '>=0.10.0'} + + postgres-date@1.0.7: + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} + engines: {node: '>=0.10.0'} + + postgres-interval@1.2.0: + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} + engines: {node: '>=0.10.0'} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + prom-client@15.1.3: + resolution: {integrity: sha512-6ZiOBfCywsD4k1BN9IX0uZhF+tJkV8q8llP64G5Hajs4JOeVLPCwpPVcpXy3BwYiUGgyJzsJJQeOIv7+hDSq8g==} + engines: {node: ^16 || ^18 || >=20} + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + + property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + + react@19.0.0: + resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} + engines: {node: '>=0.10.0'} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regex-recursion@5.1.1: + resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@5.1.1: + resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + hasBin: true + + rimraf@6.0.1: + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} + engines: {node: 20 || >=22} + hasBin: true + + rpc-websockets@9.0.4: + resolution: {integrity: sha512-yWZWN0M+bivtoNLnaDbtny4XchdAIF5Q4g/ZsC5UC61Ckbp0QczwO8fg44rV3uYmY4WHd+EZQbn90W1d8ojzqQ==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + secure-json-parse@2.7.0: + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + + semaphore@1.1.0: + resolution: {integrity: sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==} + engines: {node: '>=0.8.0'} + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} + + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shiki@1.24.4: + resolution: {integrity: sha512-aVGSFAOAr1v26Hh/+GBIsRVDWJ583XYV7CuNURKRWh9gpGv4OdbisZGq96B9arMYTZhTQkmRF5BrShOSTvNqhw==} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + + sodium-native@3.4.1: + resolution: {integrity: sha512-PaNN/roiFWzVVTL6OqjzYct38NSXewdl2wz8SRB51Br/MLIJPrbM3XexhVWkq7D3UWMysfrhKVf1v1phZq6MeQ==} + + sodium-plus@0.9.0: + resolution: {integrity: sha512-WWKxrd81qDL7C1A10yxNmZ135yovEZuIRnZ/BIf/FcajYBupbKbPdgzwlusPHLVxkMDDamcarq9PxxRBUSqpCw==} + peerDependencies: + sodium-native: ^3.2.0 + + solana-agent-kit@1.3.7: + resolution: {integrity: sha512-NiYW7EMMUVSaSa9rQcO2yO9ERsqCixJ2pXsAMw2k3D3bRUlHK3d5c7RUh0lS0Wzu7lv6qKtXQCWg12Kw48D2JQ==} + engines: {node: '>=22.0.0', pnpm: '>=8.0.0'} + + space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + + 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'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-hex-prefix@1.0.0: + resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} + engines: {node: '>=6.5.0', npm: '>=3'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + superstruct@0.15.5: + resolution: {integrity: sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==} + + superstruct@2.0.2: + resolution: {integrity: sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==} + engines: {node: '>=14.0.0'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + 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 + + tdigest@0.1.2: + resolution: {integrity: sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==} + + text-encoding-utf-8@1.0.2: + resolution: {integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + throttleit@2.1.0: + resolution: {integrity: sha512-nt6AMGKW1p/70DF/hGBdJB57B8Tspmbp5gfJ8ilhLnt7kkr2ye7hzD6NVG8GGErk2HWF34igrL2CXmNIkzKqKw==} + engines: {node: '>=18'} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + tiny-inflate@1.0.3: + resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + toformat@2.0.0: + resolution: {integrity: sha512-03SWBVop6nU8bpyZCx7SodpYznbZF5R4ljwNLBcTQzKOD9xuihRo/psX58llS1BMFhhAI08H3luot5GoXJz2pQ==} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + toml@3.0.0: + resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + treeify@1.1.0: + resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==} + engines: {node: '>=0.6'} + + trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + + ts-log@2.2.7: + resolution: {integrity: sha512-320x5Ggei84AxzlXp91QkIGSw5wgaLT6GeAH0KsqDmRZdVWW2OiSeVvElVoatk3f7nicwXlElXsoFkARiGE2yg==} + + ts-node@10.9.2: + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + hasBin: true + peerDependencies: + '@swc/core': '>=1.2.50' + '@swc/wasm': '>=1.2.50' + '@types/node': '*' + typescript: '>=2.7' + peerDependenciesMeta: + '@swc/core': + optional: true + '@swc/wasm': + optional: true + + tsconfig-paths@4.2.0: + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tweetnacl-util@0.15.1: + resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==} + + tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-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==} + + typedoc@0.26.11: + resolution: {integrity: sha512-sFEgRRtrcDl2FxVP58Ze++ZK2UQAEvtvvH8rRlig1Ja3o7dDaMHmaBfvJmdGnNEFaLTpQsN8dpvZaTqJSu/Ugw==} + engines: {node: '>= 18'} + hasBin: true + peerDependencies: + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x + + typedoc@0.27.6: + resolution: {integrity: sha512-oBFRoh2Px6jFx366db0lLlihcalq/JzyCVp7Vaq1yphL/tbgx2e+bkpkCgJPunaPvPwoTOXSwasfklWHm7GfAw==} + engines: {node: '>= 18'} + hasBin: true + peerDependencies: + typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x + + typescript-collections@1.3.3: + resolution: {integrity: sha512-7sI4e/bZijOzyURng88oOFZCISQPTHozfE2sUu5AviFYk5QV7fYGb6YiDl+vKjF/pICA354JImBImL9XJWUvdQ==} + + typescript@4.9.5: + resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==} + engines: {node: '>=4.2.0'} + hasBin: true + + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} + engines: {node: '>=14.17'} + hasBin: true + + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + + unicode-trie@2.0.0: + resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + url-value-parser@2.2.0: + resolution: {integrity: sha512-yIQdxJpgkPamPPAPuGdS7Q548rLhny42tg8d4vyTNzFqvOnwqrgHXvgehT09U7fwrzxi3RxCiXjoNUNnNOlQ8A==} + engines: {node: '>=6.0.0'} + + use-sync-external-store@1.4.0: + resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} + + utf8@3.0.0: + resolution: {integrity: sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + 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==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + + web-streams-polyfill@4.0.0-beta.3: + resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==} + engines: {node: '>= 14'} + + web3-utils@1.10.4: + resolution: {integrity: sha512-tsu8FiKJLk2PzhDl9fXbGUWTkkVXYhtTA+SmEFkKft+9BgwLxfCRpU96sWv7ICC8zixBNd3JURVoiR3dUXgP8A==} + engines: {node: '>=8.0.0'} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-typed-array@1.1.18: + resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xsalsa20@1.2.0: + resolution: {integrity: sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + yaml@2.6.1: + resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} + engines: {node: '>= 14'} + hasBin: true + + yn@3.1.1: + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + zod-to-json-schema@3.24.1: + resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==} + peerDependencies: + zod: ^3.24.1 + + zod@3.24.1: + resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} + + zstddec@0.0.2: + resolution: {integrity: sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@ai-sdk/openai@1.0.13(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))': + dependencies: + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + borsh: 1.0.0 + bs58: 5.0.0 + buffer: 6.0.3 + + '@bonfida/spl-name-service@3.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)': + dependencies: + '@bonfida/sns-records': 0.0.1(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@noble/curves': 1.7.0 + '@scure/base': 1.2.1 + '@solana/spl-token': 0.4.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + borsh: 2.0.0 + buffer: 6.0.3 + graphemesplit: 2.4.4 + ipaddr.js: 2.2.0 + punycode: 2.3.1 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@cfworker/json-schema@4.0.3': {} + + '@cks-systems/manifest-sdk@0.1.59(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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.6.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + borsh: 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.6.3) + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + zstddec: 0.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - jiti + - supports-color + - typescript + - utf-8-validate + + '@coral-xyz/anchor@0.26.0(bufferutil@4.0.8)(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) + base64-js: 1.5.1 + bn.js: 5.2.1 + bs58: 4.0.1 + buffer-layout: 1.2.2 + camelcase: 6.3.0 + cross-fetch: 3.2.0 + crypto-hash: 1.3.0 + eventemitter3: 4.0.7 + js-sha256: 0.9.0 + pako: 2.1.0 + snake-case: 3.0.4 + superstruct: 0.15.5 + toml: 3.0.0 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@coral-xyz/anchor@0.27.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/borsh': 0.27.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) + base64-js: 1.5.1 + bn.js: 5.2.1 + bs58: 4.0.1 + buffer-layout: 1.2.2 + camelcase: 6.3.0 + cross-fetch: 3.2.0 + crypto-hash: 1.3.0 + eventemitter3: 4.0.7 + js-sha256: 0.9.0 + pako: 2.1.0 + snake-case: 3.0.4 + superstruct: 0.15.5 + toml: 3.0.0 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@coral-xyz/anchor@0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/borsh': 0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@noble/hashes': 1.6.1 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + bs58: 4.0.1 + buffer-layout: 1.2.2 + camelcase: 6.3.0 + cross-fetch: 3.2.0 + crypto-hash: 1.3.0 + eventemitter3: 4.0.7 + pako: 2.1.0 + snake-case: 3.0.4 + superstruct: 0.15.5 + toml: 3.0.0 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@coral-xyz/borsh@0.26.0(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + buffer-layout: 1.2.2 + + '@coral-xyz/borsh@0.27.0(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + buffer-layout: 1.2.2 + + '@coral-xyz/borsh@0.28.0(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(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))': + dependencies: + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + buffer-layout: 1.2.2 + + '@cspotcode/source-map-support@0.8.1': + dependencies: + '@jridgewell/trace-mapping': 0.3.9 + + '@eslint-community/eslint-utils@4.4.1(eslint@9.17.0)': + dependencies: + eslint: 9.17.0 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/config-array@0.19.1': + dependencies: + '@eslint/object-schema': 2.1.5 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.9.1': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.2.0': + dependencies: + ajv: 6.12.6 + debug: 4.4.0 + espree: 10.3.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.17.0': {} + + '@eslint/object-schema@2.1.5': {} + + '@eslint/plugin-kit@0.2.4': + dependencies: + levn: 0.4.1 + + '@ethereumjs/rlp@4.0.1': {} + + '@ethereumjs/util@8.1.0': + dependencies: + '@ethereumjs/rlp': 4.0.1 + ethereum-cryptography: 2.2.1 + micro-ftch: 0.3.1 + + '@ethersproject/bytes@5.7.0': + dependencies: + '@ethersproject/logger': 5.7.0 + + '@ethersproject/logger@5.7.0': {} + + '@ethersproject/sha2@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + hash.js: 1.1.7 + + '@gerrit0/mini-shiki@1.26.1': + dependencies: + '@shikijs/engine-oniguruma': 1.26.1 + '@shikijs/types': 1.26.1 + '@shikijs/vscode-textmate': 10.0.1 + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.1': {} + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.9': + dependencies: + '@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))': + dependencies: + '@cfworker/json-schema': 4.0.3 + ansi-styles: 5.2.0 + camelcase: 6.3.0 + decamelize: 1.2.0 + js-tiktoken: 1.0.16 + langsmith: 0.2.14(openai@4.77.0(zod@3.24.1)) + mustache: 4.2.0 + p-queue: 6.6.2 + p-retry: 4.6.2 + uuid: 10.0.0 + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + transitivePeerDependencies: + - openai + + '@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))': + dependencies: + '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1)) + '@langchain/openai': 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + groq-sdk: 0.5.0 + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + transitivePeerDependencies: + - encoding + + '@langchain/langgraph-checkpoint-postgres@0.0.2(@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))))': + 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))) + pg: 8.13.1 + transitivePeerDependencies: + - pg-native + + '@langchain/langgraph-checkpoint@0.0.13(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))': + dependencies: + '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1)) + uuid: 10.0.0 + + '@langchain/langgraph-sdk@0.0.32': + dependencies: + '@types/json-schema': 7.0.15 + p-queue: 6.6.2 + p-retry: 4.6.2 + uuid: 9.0.1 + + '@langchain/langgraph@0.2.36(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))': + dependencies: + '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1)) + '@langchain/langgraph-checkpoint': 0.0.13(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + '@langchain/langgraph-sdk': 0.0.32 + uuid: 10.0.0 + zod: 3.24.1 + + '@langchain/openai@0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))': + dependencies: + '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1)) + js-tiktoken: 1.0.16 + openai: 4.77.0(zod@3.24.1) + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + transitivePeerDependencies: + - encoding + + '@langchain/textsplitters@0.1.0(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))': + dependencies: + '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1)) + js-tiktoken: 1.0.16 + + '@lightprotocol/compressed-token@0.17.1(@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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.6.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + buffer: 6.0.3 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@noble/hashes': 1.5.0 + '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + buffer: 6.0.3 + superstruct: 2.0.2 + tweetnacl: 1.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@metaplex-foundation/beet-solana@0.3.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@metaplex-foundation/beet': 0.7.2 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bs58: 5.0.0 + debug: 4.4.0 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@metaplex-foundation/beet-solana@0.4.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@metaplex-foundation/beet': 0.7.2 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bs58: 5.0.0 + debug: 4.4.0 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@metaplex-foundation/beet-solana@0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@metaplex-foundation/beet': 0.7.2 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bs58: 5.0.0 + debug: 4.4.0 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@metaplex-foundation/beet@0.4.0': + dependencies: + ansicolors: 0.3.2 + bn.js: 5.2.1 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + '@metaplex-foundation/beet@0.6.1': + dependencies: + ansicolors: 0.3.2 + bn.js: 5.2.1 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + '@metaplex-foundation/beet@0.7.1': + dependencies: + ansicolors: 0.3.2 + bn.js: 5.2.1 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + '@metaplex-foundation/beet@0.7.2': + dependencies: + ansicolors: 0.3.2 + assert: 2.1.0 + bn.js: 5.2.1 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + '@metaplex-foundation/cusper@0.0.2': {} + + '@metaplex-foundation/mpl-auction-house@2.5.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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/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.6.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - supports-color + - typescript + - utf-8-validate + + '@metaplex-foundation/mpl-bubblegum@0.7.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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/cusper': 0.0.2 + '@metaplex-foundation/mpl-token-metadata': 2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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) + js-sha3: 0.8.0 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - supports-color + - typescript + - utf-8-validate + + '@metaplex-foundation/mpl-core@1.1.1(@metaplex-foundation/umi@0.9.2)(@noble/hashes@1.6.1)': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + '@msgpack/msgpack': 3.0.0-beta2 + '@noble/hashes': 1.6.1 + + '@metaplex-foundation/mpl-token-metadata@2.13.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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/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.6.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + debug: 4.4.0 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - supports-color + - typescript + - utf-8-validate + + '@metaplex-foundation/mpl-token-metadata@3.3.0(@metaplex-foundation/umi@0.9.2)': + dependencies: + '@metaplex-foundation/mpl-toolbox': 0.9.4(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/umi': 0.9.2 + + '@metaplex-foundation/mpl-toolbox@0.9.4(@metaplex-foundation/umi@0.9.2)': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + + '@metaplex-foundation/rustbin@0.3.5': + dependencies: + debug: 4.4.0 + semver: 7.6.3 + text-table: 0.2.0 + toml: 3.0.0 + transitivePeerDependencies: + - supports-color + + '@metaplex-foundation/solita@0.12.2(bufferutil@4.0.8)(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/rustbin': 0.3.5 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + camelcase: 6.3.0 + debug: 4.4.0 + js-sha256: 0.9.0 + prettier: 2.8.8 + snake-case: 3.0.4 + spok: 1.5.5 + transitivePeerDependencies: + - bufferutil + - encoding + - jiti + - supports-color + - utf-8-validate + + '@metaplex-foundation/umi-bundle-defaults@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + '@metaplex-foundation/umi-downloader-http': 0.9.2(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/umi-eddsa-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@metaplex-foundation/umi-http-fetch': 0.9.2(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/umi-program-repository': 0.9.2(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/umi-rpc-chunk-get-accounts': 0.9.2(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/umi-rpc-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@metaplex-foundation/umi-serializer-data-view': 0.9.2(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/umi-transaction-factory-web3js': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - encoding + + '@metaplex-foundation/umi-downloader-http@0.9.2(@metaplex-foundation/umi@0.9.2)': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + + '@metaplex-foundation/umi-eddsa-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@noble/curves': 1.7.0 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + + '@metaplex-foundation/umi-http-fetch@0.9.2(@metaplex-foundation/umi@0.9.2)': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + '@metaplex-foundation/umi-options@0.8.9': {} + + '@metaplex-foundation/umi-program-repository@0.9.2(@metaplex-foundation/umi@0.9.2)': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + + '@metaplex-foundation/umi-public-keys@0.8.9': + dependencies: + '@metaplex-foundation/umi-serializers-encodings': 0.8.9 + + '@metaplex-foundation/umi-rpc-chunk-get-accounts@0.9.2(@metaplex-foundation/umi@0.9.2)': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + + '@metaplex-foundation/umi-rpc-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + + '@metaplex-foundation/umi-serializer-data-view@0.9.2(@metaplex-foundation/umi@0.9.2)': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + + '@metaplex-foundation/umi-serializers-core@0.8.9': {} + + '@metaplex-foundation/umi-serializers-encodings@0.8.9': + dependencies: + '@metaplex-foundation/umi-serializers-core': 0.8.9 + + '@metaplex-foundation/umi-serializers-numbers@0.8.9': + dependencies: + '@metaplex-foundation/umi-serializers-core': 0.8.9 + + '@metaplex-foundation/umi-serializers@0.9.0': + dependencies: + '@metaplex-foundation/umi-options': 0.8.9 + '@metaplex-foundation/umi-public-keys': 0.8.9 + '@metaplex-foundation/umi-serializers-core': 0.8.9 + '@metaplex-foundation/umi-serializers-encodings': 0.8.9 + '@metaplex-foundation/umi-serializers-numbers': 0.8.9 + + '@metaplex-foundation/umi-transaction-factory-web3js@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + + '@metaplex-foundation/umi-web3js-adapters@0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))': + dependencies: + '@metaplex-foundation/umi': 0.9.2 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + buffer: 6.0.3 + + '@metaplex-foundation/umi@0.9.2': + dependencies: + '@metaplex-foundation/umi-options': 0.8.9 + '@metaplex-foundation/umi-public-keys': 0.8.9 + '@metaplex-foundation/umi-serializers': 0.9.0 + + '@msgpack/msgpack@2.8.0': {} + + '@msgpack/msgpack@3.0.0-beta2': {} + + '@noble/curves@1.4.2': + dependencies: + '@noble/hashes': 1.4.0 + + '@noble/curves@1.7.0': + dependencies: + '@noble/hashes': 1.6.0 + + '@noble/hashes@1.4.0': {} + + '@noble/hashes@1.5.0': {} + + '@noble/hashes@1.6.0': {} + + '@noble/hashes@1.6.1': {} + + '@onsol/tldparser@0.6.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bn.js@5.2.1)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@ethersproject/sha2': 5.7.0 + '@metaplex-foundation/beet-solana': 0.4.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + borsh: 2.0.0 + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@opentelemetry/api@1.9.0': {} + + '@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3)': + dependencies: + '@solana/spl-token': 0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + decimal.js: 10.4.3 + tiny-invariant: 1.3.3 + + '@orca-so/whirlpools-sdk@0.13.12(@coral-xyz/anchor@0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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.6.3)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3)': + dependencies: + '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@orca-so/common-sdk': 0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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.6.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + decimal.js: 10.4.3 + tiny-invariant: 1.3.3 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@pythnetwork/client@2.22.0(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@coral-xyz/borsh': 0.28.0(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@pythnetwork/hermes-client@1.3.0(axios@1.7.9)': + dependencies: + '@zodios/core': 10.9.6(axios@1.7.9)(zod@3.24.1) + eventsource: 2.0.2 + zod: 3.24.1 + transitivePeerDependencies: + - axios + + '@pythnetwork/price-service-client@1.9.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@pythnetwork/price-service-sdk': 1.8.0 + '@types/ws': 8.5.13 + axios: 1.7.9 + axios-retry: 3.9.1 + isomorphic-ws: 4.0.1(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + ts-log: 2.2.7 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - debug + - utf-8-validate + + '@pythnetwork/price-service-sdk@1.8.0': + dependencies: + bn.js: 5.2.1 + + '@raydium-io/raydium-sdk-v2@0.1.95-alpha(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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.6.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + axios: 1.7.9 + big.js: 6.2.2 + bn.js: 5.2.1 + dayjs: 1.11.13 + decimal.js-light: 2.5.1 + jsonfile: 6.1.0 + lodash: 4.17.21 + toformat: 2.0.0 + tsconfig-paths: 4.2.0 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@saberhq/option-utils@1.15.0': + dependencies: + tslib: 2.8.1 + + '@saberhq/solana-contrib@1.15.0(@solana/web3.js@1.98.0(bufferutil@4.0.8)(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) + '@types/promise-retry': 1.1.6 + '@types/retry': 0.12.5 + bn.js: 5.2.1 + promise-retry: 2.0.1 + retry: 0.13.1 + tiny-invariant: 1.3.3 + tslib: 2.8.1 + + '@scure/base@1.1.9': {} + + '@scure/base@1.2.1': {} + + '@scure/bip32@1.4.0': + dependencies: + '@noble/curves': 1.4.2 + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.9 + + '@scure/bip39@1.3.0': + dependencies: + '@noble/hashes': 1.4.0 + '@scure/base': 1.1.9 + + '@shikijs/core@1.24.4': + dependencies: + '@shikijs/engine-javascript': 1.24.4 + '@shikijs/engine-oniguruma': 1.24.4 + '@shikijs/types': 1.24.4 + '@shikijs/vscode-textmate': 9.3.1 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.4 + + '@shikijs/engine-javascript@1.24.4': + dependencies: + '@shikijs/types': 1.24.4 + '@shikijs/vscode-textmate': 9.3.1 + oniguruma-to-es: 0.8.1 + + '@shikijs/engine-oniguruma@1.24.4': + dependencies: + '@shikijs/types': 1.24.4 + '@shikijs/vscode-textmate': 9.3.1 + + '@shikijs/engine-oniguruma@1.26.1': + dependencies: + '@shikijs/types': 1.26.1 + '@shikijs/vscode-textmate': 10.0.1 + + '@shikijs/types@1.24.4': + dependencies: + '@shikijs/vscode-textmate': 9.3.1 + '@types/hast': 3.0.4 + + '@shikijs/types@1.26.1': + dependencies: + '@shikijs/vscode-textmate': 10.0.1 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.1': {} + + '@shikijs/vscode-textmate@9.3.1': {} + + '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@solana/buffer-layout': 4.0.1 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bigint-buffer: 1.1.5 + bignumber.js: 9.1.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@solana/buffer-layout@4.0.1': + dependencies: + buffer: 6.0.3 + + '@solana/codecs-core@2.0.0-preview.2': + dependencies: + '@solana/errors': 2.0.0-preview.2 + + '@solana/codecs-core@2.0.0-preview.4(typescript@5.6.3)': + dependencies: + '@solana/errors': 2.0.0-preview.4(typescript@5.6.3) + typescript: 5.6.3 + + '@solana/codecs-core@2.0.0-rc.1(typescript@4.9.5)': + dependencies: + '@solana/errors': 2.0.0-rc.1(typescript@4.9.5) + typescript: 4.9.5 + + '@solana/codecs-core@2.0.0-rc.1(typescript@5.6.3)': + dependencies: + '@solana/errors': 2.0.0-rc.1(typescript@5.6.3) + typescript: 5.6.3 + + '@solana/codecs-data-structures@2.0.0-preview.2': + dependencies: + '@solana/codecs-core': 2.0.0-preview.2 + '@solana/codecs-numbers': 2.0.0-preview.2 + '@solana/errors': 2.0.0-preview.2 + + '@solana/codecs-data-structures@2.0.0-preview.4(typescript@5.6.3)': + dependencies: + '@solana/codecs-core': 2.0.0-preview.4(typescript@5.6.3) + '@solana/codecs-numbers': 2.0.0-preview.4(typescript@5.6.3) + '@solana/errors': 2.0.0-preview.4(typescript@5.6.3) + typescript: 5.6.3 + + '@solana/codecs-data-structures@2.0.0-rc.1(typescript@4.9.5)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@4.9.5) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@4.9.5) + '@solana/errors': 2.0.0-rc.1(typescript@4.9.5) + typescript: 4.9.5 + + '@solana/codecs-data-structures@2.0.0-rc.1(typescript@5.6.3)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.6.3) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.6.3) + '@solana/errors': 2.0.0-rc.1(typescript@5.6.3) + typescript: 5.6.3 + + '@solana/codecs-numbers@2.0.0-preview.2': + dependencies: + '@solana/codecs-core': 2.0.0-preview.2 + '@solana/errors': 2.0.0-preview.2 + + '@solana/codecs-numbers@2.0.0-preview.4(typescript@5.6.3)': + dependencies: + '@solana/codecs-core': 2.0.0-preview.4(typescript@5.6.3) + '@solana/errors': 2.0.0-preview.4(typescript@5.6.3) + typescript: 5.6.3 + + '@solana/codecs-numbers@2.0.0-rc.1(typescript@4.9.5)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@4.9.5) + '@solana/errors': 2.0.0-rc.1(typescript@4.9.5) + typescript: 4.9.5 + + '@solana/codecs-numbers@2.0.0-rc.1(typescript@5.6.3)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.6.3) + '@solana/errors': 2.0.0-rc.1(typescript@5.6.3) + typescript: 5.6.3 + + '@solana/codecs-strings@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)': + dependencies: + '@solana/codecs-core': 2.0.0-preview.2 + '@solana/codecs-numbers': 2.0.0-preview.2 + '@solana/errors': 2.0.0-preview.2 + fastestsmallesttextencoderdecoder: 1.0.22 + + '@solana/codecs-strings@2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)': + dependencies: + '@solana/codecs-core': 2.0.0-preview.4(typescript@5.6.3) + '@solana/codecs-numbers': 2.0.0-preview.4(typescript@5.6.3) + '@solana/errors': 2.0.0-preview.4(typescript@5.6.3) + fastestsmallesttextencoderdecoder: 1.0.22 + typescript: 5.6.3 + + '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@4.9.5) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@4.9.5) + '@solana/errors': 2.0.0-rc.1(typescript@4.9.5) + fastestsmallesttextencoderdecoder: 1.0.22 + typescript: 4.9.5 + + '@solana/codecs-strings@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.6.3) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.6.3) + '@solana/errors': 2.0.0-rc.1(typescript@5.6.3) + fastestsmallesttextencoderdecoder: 1.0.22 + typescript: 5.6.3 + + '@solana/codecs@2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22)': + dependencies: + '@solana/codecs-core': 2.0.0-preview.2 + '@solana/codecs-data-structures': 2.0.0-preview.2 + '@solana/codecs-numbers': 2.0.0-preview.2 + '@solana/codecs-strings': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22) + '@solana/options': 2.0.0-preview.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/codecs@2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)': + dependencies: + '@solana/codecs-core': 2.0.0-preview.4(typescript@5.6.3) + '@solana/codecs-data-structures': 2.0.0-preview.4(typescript@5.6.3) + '@solana/codecs-numbers': 2.0.0-preview.4(typescript@5.6.3) + '@solana/codecs-strings': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) + '@solana/options': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) + typescript: 5.6.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@4.9.5) + '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@4.9.5) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@4.9.5) + '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5) + '@solana/options': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/codecs@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.6.3) + '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.6.3) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.6.3) + '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) + '@solana/options': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) + typescript: 5.6.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/errors@2.0.0-preview.2': + dependencies: + chalk: 5.4.1 + commander: 12.1.0 + + '@solana/errors@2.0.0-preview.4(typescript@5.6.3)': + dependencies: + chalk: 5.4.1 + commander: 12.1.0 + typescript: 5.6.3 + + '@solana/errors@2.0.0-rc.1(typescript@4.9.5)': + dependencies: + chalk: 5.4.1 + commander: 12.1.0 + typescript: 4.9.5 + + '@solana/errors@2.0.0-rc.1(typescript@5.6.3)': + dependencies: + chalk: 5.4.1 + commander: 12.1.0 + typescript: 5.6.3 + + '@solana/options@2.0.0-preview.2': + dependencies: + '@solana/codecs-core': 2.0.0-preview.2 + '@solana/codecs-numbers': 2.0.0-preview.2 + + '@solana/options@2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)': + dependencies: + '@solana/codecs-core': 2.0.0-preview.4(typescript@5.6.3) + '@solana/codecs-data-structures': 2.0.0-preview.4(typescript@5.6.3) + '@solana/codecs-numbers': 2.0.0-preview.4(typescript@5.6.3) + '@solana/codecs-strings': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) + '@solana/errors': 2.0.0-preview.4(typescript@5.6.3) + typescript: 5.6.3 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@4.9.5) + '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@4.9.5) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@4.9.5) + '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@4.9.5) + '@solana/errors': 2.0.0-rc.1(typescript@4.9.5) + typescript: 4.9.5 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/options@2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)': + dependencies: + '@solana/codecs-core': 2.0.0-rc.1(typescript@5.6.3) + '@solana/codecs-data-structures': 2.0.0-rc.1(typescript@5.6.3) + '@solana/codecs-numbers': 2.0.0-rc.1(typescript@5.6.3) + '@solana/codecs-strings': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) + '@solana/errors': 2.0.0-rc.1(typescript@5.6.3) + typescript: 5.6.3 + 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)': + 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) + bn.js: 5.2.1 + borsh: 0.7.0 + js-sha3: 0.8.0 + typescript-collections: 1.3.3 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@solana/spl-token-group@0.0.4(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)': + dependencies: + '@solana/codecs': 2.0.0-preview.2(fastestsmallesttextencoderdecoder@1.0.22) + '@solana/spl-type-length-value': 0.1.0 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + + '@solana/spl-token-group@0.0.5(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)': + dependencies: + '@solana/codecs': 2.0.0-preview.4(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) + '@solana/spl-type-length-value': 0.1.0 + '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - typescript + + '@solana/spl-token-group@0.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)': + dependencies: + '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - typescript + + '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)': + dependencies: + '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) + '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - typescript + + '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)': + dependencies: + '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) + '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - typescript + + '@solana/spl-token-metadata@0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@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) + 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.6.3)': + dependencies: + '@solana/codecs': 2.0.0-rc.1(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(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)': + dependencies: + '@babel/runtime': 7.26.0 + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + buffer: 6.0.3 + buffer-layout: 1.2.2 + dotenv: 10.0.0 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@solana/spl-token@0.3.11(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3) + '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@solana/spl-token@0.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)': + 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) + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - 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.6.3)(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.6.3) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@solana/spl-token@0.4.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.6.3)(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.6.3) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@solana/spl-token@0.4.8(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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.6.3) + '@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.6.3) + '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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.6.3) + '@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.6.3) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@solana/spl-type-length-value@0.1.0': + dependencies: + buffer: 6.0.3 + + '@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@babel/runtime': 7.26.0 + '@noble/curves': 1.7.0 + '@noble/hashes': 1.6.1 + '@solana/buffer-layout': 4.0.1 + agentkeepalive: 4.5.0 + bigint-buffer: 1.1.5 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + node-fetch: 2.7.0 + rpc-websockets: 9.0.4 + superstruct: 2.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@babel/runtime': 7.26.0 + '@noble/curves': 1.7.0 + '@noble/hashes': 1.6.1 + '@solana/buffer-layout': 4.0.1 + agentkeepalive: 4.5.0 + bigint-buffer: 1.1.5 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + node-fetch: 2.7.0 + rpc-websockets: 9.0.4 + superstruct: 2.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@babel/runtime': 7.26.0 + '@noble/curves': 1.7.0 + '@noble/hashes': 1.6.1 + '@solana/buffer-layout': 4.0.1 + agentkeepalive: 4.5.0 + bigint-buffer: 1.1.5 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 4.0.1 + buffer: 6.0.3 + fast-stable-stringify: 1.0.0 + jayson: 4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + node-fetch: 2.7.0 + rpc-websockets: 9.0.4 + superstruct: 2.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + + '@tensor-hq/tensor-common@8.3.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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.6.3)(utf-8-validate@5.0.10) + '@metaplex-foundation/mpl-bubblegum': 0.7.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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.6.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + axios: 0.28.1 + big.js: 6.2.2 + bn.js: 5.2.1 + borsh: 0.7.0 + bs58: 5.0.0 + exponential-backoff: 3.1.1 + js-sha3: 0.8.0 + semaphore: 1.1.0 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - fastestsmallesttextencoderdecoder + - supports-color + - typescript + - utf-8-validate + + '@tensor-oss/tensorswap-sdk@4.5.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/anchor': 0.26.0(bufferutil@4.0.8)(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.6.3)(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.6.3)(utf-8-validate@5.0.10) + '@types/bn.js': 5.1.6 + big.js: 6.2.2 + bn.js: 5.2.1 + js-sha256: 0.9.0 + keccak256: 1.0.6 + math-expression-evaluator: 2.0.6 + merkletreejs: 0.3.11 + uuid: 8.3.2 + transitivePeerDependencies: + - bufferutil + - debug + - encoding + - fastestsmallesttextencoderdecoder + - supports-color + - typescript + - utf-8-validate + + '@tiplink/api@0.3.1(bufferutil@4.0.8)(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) + bs58: 5.0.0 + libsodium: 0.7.15 + libsodium-wrappers-sumo: 0.7.15 + nanoid: 3.3.8 + sodium-plus: 0.9.0(sodium-native@3.4.1) + tweetnacl: 1.0.3 + tweetnacl-util: 0.15.1 + typescript: 4.9.5 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - sodium-native + - utf-8-validate + + '@tsconfig/node10@1.0.11': {} + + '@tsconfig/node12@1.0.11': {} + + '@tsconfig/node14@1.0.3': {} + + '@tsconfig/node16@1.0.4': {} + + '@types/bn.js@5.1.6': + dependencies: + '@types/node': 22.10.2 + + '@types/body-parser@1.19.5': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 22.10.2 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 22.10.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.2 + '@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 + form-data: 4.0.1 + + '@types/node@12.20.55': {} + + '@types/node@18.19.68': + dependencies: + undici-types: 5.26.5 + + '@types/node@20.17.12': + dependencies: + undici-types: 6.19.8 + + '@types/node@22.10.2': + dependencies: + undici-types: 6.20.0 + + '@types/promise-retry@1.1.6': + dependencies: + '@types/retry': 0.12.5 + + '@types/qs@6.9.17': {} + + '@types/range-parser@1.2.7': {} + + '@types/retry@0.12.0': {} + + '@types/retry@0.12.5': {} + + '@types/send@0.17.4': + dependencies: + '@types/mime': 1.3.5 + '@types/node': 22.10.2 + + '@types/serve-static@1.15.7': + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 22.10.2 + '@types/send': 0.17.4 + + '@types/unist@3.0.3': {} + + '@types/uuid@10.0.0': {} + + '@types/uuid@8.3.4': {} + + '@types/ws@7.4.7': + dependencies: + '@types/node': 22.10.2 + + '@types/ws@8.5.13': + dependencies: + '@types/node': 22.10.2 + + '@ungap/structured-clone@1.2.1': {} + + '@zodios/core@10.9.6(axios@1.7.9)(zod@3.24.1)': + dependencies: + axios: 1.7.9 + zod: 3.24.1 + + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + 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 + + acorn-walk@8.3.4: + dependencies: + acorn: 8.14.0 + + acorn@8.14.0: {} + + agentkeepalive@4.5.0: + dependencies: + humanize-ms: 1.2.1 + + ai@4.0.27(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 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansi-styles@6.2.1: {} + + ansicolors@0.3.2: {} + + arg@4.1.3: {} + + argparse@2.0.1: {} + + array-flatten@1.1.1: {} + + assert@2.1.0: + dependencies: + call-bind: 1.0.8 + is-nan: 1.3.2 + object-is: 1.1.6 + object.assign: 4.1.7 + util: 0.12.5 + + assertion-error@2.0.1: {} + + asynckit@0.4.0: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + axios-retry@3.9.1: + dependencies: + '@babel/runtime': 7.26.0 + is-retry-allowed: 2.2.0 + + axios@0.28.1: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + axios@1.7.9: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + balanced-match@1.0.2: {} + + base-x@3.0.10: + dependencies: + safe-buffer: 5.2.1 + + base-x@4.0.0: {} + + base-x@5.0.0: {} + + base64-js@1.5.1: {} + + big-integer@1.6.52: {} + + big.js@6.2.2: {} + + bigint-buffer@1.1.5: + dependencies: + bindings: 1.5.0 + + bignumber.js@9.1.2: {} + + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + + bintrees@1.0.2: {} + + bn.js@4.11.6: {} + + bn.js@5.2.1: {} + + body-parser@1.20.3: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.13.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + borsh@0.7.0: + dependencies: + bn.js: 5.2.1 + bs58: 4.0.1 + text-encoding-utf-8: 1.0.2 + + borsh@1.0.0: {} + + borsh@2.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + bs58@4.0.1: + dependencies: + base-x: 3.0.10 + + bs58@5.0.0: + dependencies: + base-x: 4.0.0 + + bs58@6.0.0: + dependencies: + base-x: 5.0.0 + + buffer-layout@1.2.2: {} + + buffer-reverse@1.0.1: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bufferutil@4.0.8: + dependencies: + node-gyp-build: 4.8.4 + optional: true + + bytes@3.1.2: {} + + call-bind-apply-helpers@1.0.1: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-define-property: 1.0.1 + get-intrinsic: 1.2.6 + set-function-length: 1.2.2 + + call-bound@1.0.3: + dependencies: + call-bind-apply-helpers: 1.0.1 + get-intrinsic: 1.2.6 + + callsites@3.1.0: {} + + camelcase@6.3.0: {} + + ccount@2.0.1: {} + + chai@5.1.2: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.2 + pathval: 2.0.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.4.1: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + check-error@2.1.1: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + comma-separated-tokens@2.0.3: {} + + commander@10.0.1: {} + + commander@12.1.0: {} + + commander@2.20.3: {} + + 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: + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypto-hash@1.3.0: {} + + crypto-js@4.2.0: {} + + data-uri-to-buffer@4.0.1: {} + + dayjs@1.11.13: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@4.4.0: + dependencies: + ms: 2.1.3 + + decamelize@1.2.0: {} + + decimal.js-light@2.5.1: {} + + decimal.js@10.4.3: {} + + deep-eql@5.0.2: {} + + deep-is@0.1.4: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + delay@5.0.0: {} + + delayed-stream@1.0.0: {} + + 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: {} + + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + + dotenv@10.0.0: {} + + dotenv@16.4.7: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + 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: {} + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-object-atoms@1.0.0: + dependencies: + es-errors: 1.3.0 + + es6-promise@4.2.8: {} + + es6-promisify@5.0.0: + dependencies: + es6-promise: 4.2.8 + + escape-html@1.0.3: {} + + escape-string-regexp@4.0.0: {} + + eslint-scope@8.2.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.0: {} + + eslint@9.17.0: + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.17.0) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.1 + '@eslint/core': 0.9.1 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.17.0 + '@eslint/plugin-kit': 0.2.4 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + escape-string-regexp: 4.0.0 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + + espree@10.3.0: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + etag@1.8.1: {} + + ethereum-bloom-filters@1.2.0: + dependencies: + '@noble/hashes': 1.6.1 + + ethereum-cryptography@2.2.1: + dependencies: + '@noble/curves': 1.4.2 + '@noble/hashes': 1.4.0 + '@scure/bip32': 1.4.0 + '@scure/bip39': 1.3.0 + + ethjs-unit@0.1.6: + dependencies: + bn.js: 4.11.6 + number-to-bn: 1.7.0 + + event-target-shim@5.0.1: {} + + eventemitter3@4.0.7: {} + + eventemitter3@5.0.1: {} + + eventsource-parser@3.0.0: {} + + eventsource@2.0.2: {} + + 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: {} + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-stable-stringify@1.0.0: {} + + fastestsmallesttextencoderdecoder@1.0.22: {} + + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + file-uri-to-path@1.0.0: {} + + 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.9: + dependencies: + chalk: 4.1.2 + commander: 12.1.0 + debug: 4.4.0 + eslint: 9.17.0 + glob: 11.0.0 + loglevel: 1.9.2 + rimraf: 6.0.1 + transitivePeerDependencies: + - jiti + - supports-color + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flash-sdk@2.24.3(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10): + dependencies: + '@coral-xyz/anchor': 0.27.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@pythnetwork/client': 2.22.0(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@pythnetwork/price-service-client': 1.9.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@solana/spl-token': 0.3.11(@solana/web3.js@1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.95.8(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@types/node': 20.17.12 + bignumber.js: 9.1.2 + bs58: 5.0.0 + dotenv: 16.4.7 + fs: 0.0.1-security + js-sha256: 0.9.0 + jsbi: 4.3.0 + node-fetch: 3.3.2 + rimraf: 5.0.10 + ts-node: 10.9.2(@types/node@20.17.12)(typescript@5.6.3) + tweetnacl: 1.0.3 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - bufferutil + - debug + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.2 + keyv: 4.5.4 + + flatted@3.3.2: {} + + follow-redirects@1.15.9: {} + + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + form-data-encoder@1.7.2: {} + + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + formdata-node@4.4.1: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 4.0.0-beta.3 + + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + + forwarded@0.2.0: {} + + fresh@0.5.2: {} + + fs@0.0.1-security: {} + + function-bind@1.1.2: {} + + get-intrinsic@1.2.6: + dependencies: + call-bind-apply-helpers: 1.0.1 + dunder-proto: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + function-bind: 1.1.2 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@11.0.0: + dependencies: + foreground-child: 3.3.0 + jackspeak: 4.0.2 + minimatch: 10.0.1 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 2.0.0 + + globals@14.0.0: {} + + gopd@1.2.0: {} + + graceful-fs@4.2.11: + optional: true + + graphemesplit@2.4.4: + dependencies: + js-base64: 3.7.7 + unicode-trie: 2.0.0 + + groq-sdk@0.5.0: + dependencies: + '@types/node': 18.19.68 + '@types/node-fetch': 2.6.12 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + web-streams-polyfill: 3.3.3 + transitivePeerDependencies: + - encoding + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hast-util-to-html@9.0.4: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + html-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: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + inherits@2.0.4: {} + + ipaddr.js@1.9.1: {} + + ipaddr.js@2.2.0: {} + + is-arguments@1.2.0: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-callable@1.2.7: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-generator-function@1.0.10: + dependencies: + has-tostringtag: 1.0.2 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hex-prefixed@1.0.0: {} + + is-nan@1.3.2: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + + is-retry-allowed@2.2.0: {} + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.18 + + is-typedarray@1.0.0: {} + + isexe@2.0.0: {} + + isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)): + dependencies: + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + + isomorphic-ws@4.0.1(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)): + dependencies: + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jackspeak@4.0.2: + dependencies: + '@isaacs/cliui': 8.0.2 + + jayson@4.1.3(bufferutil@4.0.8)(utf-8-validate@5.0.10): + dependencies: + '@types/connect': 3.4.38 + '@types/node': 12.20.55 + '@types/ws': 7.4.7 + JSONStream: 1.3.5 + commander: 2.20.3 + delay: 5.0.0 + es6-promisify: 5.0.0 + eyes: 0.1.8 + isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + json-stringify-safe: 5.0.1 + uuid: 8.3.2 + ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + js-base64@3.7.7: {} + + js-sha256@0.11.0: {} + + js-sha256@0.9.0: {} + + js-sha3@0.8.0: {} + + js-tiktoken@1.0.16: + dependencies: + base64-js: 1.5.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsbi@4.3.0: {} + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema@0.4.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json-stringify-safe@5.0.1: {} + + json5@2.2.3: {} + + jsondiffpatch@0.6.0: + dependencies: + '@types/diff-match-patch': 1.0.36 + chalk: 5.4.1 + diff-match-patch: 1.0.5 + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonparse@1.3.1: {} + + jsonpointer@5.0.1: {} + + keccak256@1.0.6: + dependencies: + bn.js: 5.2.1 + buffer: 6.0.3 + keccak: 3.0.4 + + keccak@3.0.4: + dependencies: + node-addon-api: 2.0.2 + node-gyp-build: 4.8.4 + readable-stream: 3.6.2 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + langchain@0.3.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)): + dependencies: + '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1)) + '@langchain/openai': 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + '@langchain/textsplitters': 0.1.0(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + js-tiktoken: 1.0.16 + js-yaml: 4.1.0 + jsonpointer: 5.0.1 + langsmith: 0.2.14(openai@4.77.0(zod@3.24.1)) + openapi-types: 12.1.3 + p-retry: 4.6.2 + uuid: 10.0.0 + yaml: 2.6.1 + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + optionalDependencies: + '@langchain/groq': 0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + axios: 1.7.9 + transitivePeerDependencies: + - encoding + - openai + + langsmith@0.2.14(openai@4.77.0(zod@3.24.1)): + dependencies: + '@types/uuid': 10.0.0 + commander: 10.0.1 + p-queue: 6.6.2 + p-retry: 4.6.2 + semver: 7.6.3 + uuid: 10.0.0 + optionalDependencies: + openai: 4.77.0(zod@3.24.1) + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + libsodium-sumo@0.7.15: {} + + libsodium-wrappers-sumo@0.7.15: + dependencies: + libsodium-sumo: 0.7.15 + + libsodium-wrappers@0.7.15: + dependencies: + libsodium: 0.7.15 + + libsodium@0.7.15: {} + + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.merge@4.6.2: {} + + lodash@4.17.21: {} + + loglevel@1.9.2: {} + + loupe@3.1.2: {} + + lower-case@2.0.2: + dependencies: + tslib: 2.8.1 + + lru-cache@10.4.3: {} + + lru-cache@11.0.2: {} + + lunr@2.3.9: {} + + make-error@1.3.6: {} + + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + math-expression-evaluator@2.0.6: {} + + math-intrinsics@1.1.0: {} + + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.1 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + mdurl@2.0.0: {} + + media-typer@0.3.0: {} + + merge-descriptors@1.0.3: {} + + merkletreejs@0.3.11: + dependencies: + bignumber.js: 9.1.2 + buffer-reverse: 1.0.1 + crypto-js: 4.2.0 + treeify: 1.1.0 + web3-utils: 1.10.4 + + methods@1.1.2: {} + + micro-ftch@0.3.1: {} + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.1: {} + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: {} + + minimalistic-assert@1.0.1: {} + + minimatch@10.0.1: + dependencies: + brace-expansion: 2.0.1 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass@7.1.2: {} + + ms@2.0.0: {} + + ms@2.1.3: {} + + mustache@4.2.0: {} + + nanoid@3.3.8: {} + + natural-compare@1.4.0: {} + + negotiator@0.6.3: {} + + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.1 + + node-addon-api@2.0.2: {} + + node-domexception@1.0.0: {} + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + node-fetch@3.3.2: + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + + node-gyp-build@4.8.4: {} + + number-to-bn@1.7.0: + dependencies: + bn.js: 4.11.6 + strip-hex-prefix: 1.0.0 + + object-inspect@1.13.3: {} + + object-is@1.1.6: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + oniguruma-to-es@0.8.1: + dependencies: + emoji-regex-xs: 1.0.0 + regex: 5.1.1 + regex-recursion: 5.1.1 + + openai@4.77.0(zod@3.24.1): + dependencies: + '@types/node': 18.19.68 + '@types/node-fetch': 2.6.12 + abort-controller: 3.0.0 + agentkeepalive: 4.5.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.7.0 + optionalDependencies: + zod: 3.24.1 + transitivePeerDependencies: + - encoding + + openapi-types@12.1.3: {} + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-finally@1.0.0: {} + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-queue@6.6.2: + dependencies: + eventemitter3: 4.0.7 + p-timeout: 3.2.0 + + p-retry@4.6.2: + dependencies: + '@types/retry': 0.12.0 + retry: 0.13.1 + + p-timeout@3.2.0: + dependencies: + p-finally: 1.0.0 + + package-json-from-dist@1.0.1: {} + + pako@0.2.9: {} + + pako@2.1.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parseurl@1.3.3: {} + + path-exists@4.0.0: {} + + path-key@3.1.1: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-scurry@2.0.0: + dependencies: + lru-cache: 11.0.2 + minipass: 7.1.2 + + path-to-regexp@0.1.12: {} + + pathval@2.0.0: {} + + percentile@1.6.0: {} + + pg-cloudflare@1.1.1: + optional: true + + pg-connection-string@2.7.0: {} + + pg-int8@1.0.1: {} + + pg-pool@3.7.0(pg@8.13.1): + dependencies: + pg: 8.13.1 + + pg-protocol@1.7.0: {} + + pg-types@2.2.0: + dependencies: + pg-int8: 1.0.1 + postgres-array: 2.0.0 + postgres-bytea: 1.0.0 + postgres-date: 1.0.7 + postgres-interval: 1.2.0 + + pg@8.13.1: + dependencies: + pg-connection-string: 2.7.0 + pg-pool: 3.7.0(pg@8.13.1) + pg-protocol: 1.7.0 + pg-types: 2.2.0 + pgpass: 1.0.5 + optionalDependencies: + pg-cloudflare: 1.1.1 + + pgpass@1.0.5: + dependencies: + split2: 4.2.0 + + poly1305-js@0.4.4: + dependencies: + big-integer: 1.6.52 + + possible-typed-array-names@1.0.0: {} + + postgres-array@2.0.0: {} + + postgres-bytea@1.0.0: {} + + postgres-date@1.0.7: {} + + postgres-interval@1.2.0: + dependencies: + xtend: 4.0.2 + + prelude-ls@1.2.1: {} + + prettier@2.8.8: {} + + prom-client@15.1.3: + dependencies: + '@opentelemetry/api': 1.9.0 + tdigest: 0.1.2 + + promise-retry@2.0.1: + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + + property-information@6.5.0: {} + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + proxy-from-env@1.1.0: {} + + punycode.js@2.3.1: {} + + punycode@2.3.1: {} + + qs@6.13.0: + dependencies: + side-channel: 1.1.0 + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + range-parser@1.2.1: {} + + raw-body@2.5.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + react@19.0.0: {} + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + regenerator-runtime@0.14.1: {} + + regex-recursion@5.1.1: + dependencies: + regex: 5.1.1 + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@5.1.1: + dependencies: + regex-utilities: 2.3.0 + + resolve-from@4.0.0: {} + + retry@0.12.0: {} + + retry@0.13.1: {} + + rimraf@5.0.10: + dependencies: + glob: 10.4.5 + + rimraf@6.0.1: + dependencies: + glob: 11.0.0 + package-json-from-dist: 1.0.1 + + rpc-websockets@9.0.4: + dependencies: + '@swc/helpers': 0.5.15 + '@types/uuid': 8.3.4 + '@types/ws': 8.5.13 + buffer: 6.0.3 + eventemitter3: 5.0.1 + uuid: 8.3.2 + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + safe-buffer@5.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 + 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: + dependencies: + '@shikijs/core': 1.24.4 + '@shikijs/engine-javascript': 1.24.4 + '@shikijs/engine-oniguruma': 1.24.4 + '@shikijs/types': 1.24.4 + '@shikijs/vscode-textmate': 9.3.1 + '@types/hast': 3.0.4 + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + object-inspect: 1.13.3 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + object-inspect: 1.13.3 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + signal-exit@4.1.0: {} + + snake-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + + sodium-native@3.4.1: + dependencies: + node-gyp-build: 4.8.4 + + sodium-plus@0.9.0(sodium-native@3.4.1): + dependencies: + buffer: 5.7.1 + libsodium-wrappers: 0.7.15 + poly1305-js: 0.4.4 + sodium-native: 3.4.1 + typedarray-to-buffer: 3.1.5 + xsalsa20: 1.2.0 + + solana-agent-kit@1.3.7(@noble/hashes@1.6.1)(axios@1.7.9)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(react@19.0.0)(sodium-native@3.4.1)(typescript@5.6.3)(utf-8-validate@5.0.10): + dependencies: + '@ai-sdk/openai': 1.0.13(zod@3.24.1) + '@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.6.3)(utf-8-validate@5.0.10) + '@cks-systems/manifest-sdk': 0.1.59(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@langchain/core': 0.3.26(openai@4.77.0(zod@3.24.1)) + '@langchain/groq': 0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + '@langchain/langgraph': 0.2.36(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + '@langchain/openai': 0.3.16(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))) + '@lightprotocol/compressed-token': 0.17.1(@lightprotocol/stateless.js@0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@lightprotocol/stateless.js': 0.17.1(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@metaplex-foundation/mpl-core': 1.1.1(@metaplex-foundation/umi@0.9.2)(@noble/hashes@1.6.1) + '@metaplex-foundation/mpl-token-metadata': 3.3.0(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/mpl-toolbox': 0.9.4(@metaplex-foundation/umi@0.9.2) + '@metaplex-foundation/umi': 0.9.2 + '@metaplex-foundation/umi-bundle-defaults': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@metaplex-foundation/umi-web3js-adapters': 0.9.2(@metaplex-foundation/umi@0.9.2)(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) + '@onsol/tldparser': 0.6.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bn.js@5.2.1)(borsh@2.0.0)(buffer@6.0.3)(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@orca-so/common-sdk': 0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3) + '@orca-so/whirlpools-sdk': 0.13.12(@coral-xyz/anchor@0.29.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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.6.3)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(decimal.js@10.4.3) + '@pythnetwork/hermes-client': 1.3.0(axios@1.7.9) + '@raydium-io/raydium-sdk-v2': 0.1.95-alpha(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(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.6.3)(utf-8-validate@5.0.10) + '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@tensor-oss/tensorswap-sdk': 4.5.0(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + '@tiplink/api': 0.3.1(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(sodium-native@3.4.1)(utf-8-validate@5.0.10) + ai: 4.0.27(react@19.0.0)(zod@3.24.1) + bn.js: 5.2.1 + bs58: 6.0.0 + chai: 5.1.2 + decimal.js: 10.4.3 + dotenv: 16.4.7 + flash-sdk: 2.24.3(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10) + form-data: 4.0.1 + langchain: 0.3.8(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1)))(@langchain/groq@0.1.2(@langchain/core@0.3.26(openai@4.77.0(zod@3.24.1))))(axios@1.7.9)(openai@4.77.0(zod@3.24.1)) + openai: 4.77.0(zod@3.24.1) + typedoc: 0.27.6(typescript@5.6.3) + zod: 3.24.1 + transitivePeerDependencies: + - '@langchain/anthropic' + - '@langchain/aws' + - '@langchain/cohere' + - '@langchain/google-genai' + - '@langchain/google-vertexai' + - '@langchain/mistralai' + - '@langchain/ollama' + - '@noble/hashes' + - '@swc/core' + - '@swc/wasm' + - axios + - borsh + - buffer + - bufferutil + - cheerio + - debug + - encoding + - fastestsmallesttextencoderdecoder + - handlebars + - jiti + - peggy + - react + - sodium-native + - supports-color + - typeorm + - typescript + - utf-8-validate + + space-separated-tokens@2.0.2: {} + + split2@4.2.0: {} + + spok@1.5.5: + dependencies: + ansicolors: 0.3.2 + find-process: 1.4.9 + transitivePeerDependencies: + - jiti + - supports-color + + statuses@2.0.1: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-bom@3.0.0: {} + + strip-hex-prefix@1.0.0: + dependencies: + is-hex-prefixed: 1.0.0 + + strip-json-comments@3.1.1: {} + + superstruct@0.15.5: {} + + superstruct@2.0.2: {} + + supports-color@7.2.0: + 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) + + tdigest@0.1.2: + dependencies: + bintrees: 1.0.2 + + text-encoding-utf-8@1.0.2: {} + + text-table@0.2.0: {} + + throttleit@2.1.0: {} + + through@2.3.8: {} + + tiny-inflate@1.0.3: {} + + tiny-invariant@1.3.3: {} + + toformat@2.0.0: {} + + toidentifier@1.0.1: {} + + toml@3.0.0: {} + + tr46@0.0.3: {} + + treeify@1.1.0: {} + + trim-lines@3.0.1: {} + + ts-log@2.2.7: {} + + ts-node@10.9.2(@types/node@20.17.12)(typescript@5.6.3): + 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': 20.17.12 + acorn: 8.14.0 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.6.3 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + tsconfig-paths@4.2.0: + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@2.8.1: {} + + tweetnacl-util@0.15.1: {} + + tweetnacl@1.0.3: {} + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + 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 + + typedoc@0.26.11(typescript@5.6.3): + dependencies: + lunr: 2.3.9 + markdown-it: 14.1.0 + minimatch: 9.0.5 + shiki: 1.24.4 + typescript: 5.6.3 + yaml: 2.6.1 + + typedoc@0.27.6(typescript@5.6.3): + dependencies: + '@gerrit0/mini-shiki': 1.26.1 + lunr: 2.3.9 + markdown-it: 14.1.0 + minimatch: 9.0.5 + typescript: 5.6.3 + yaml: 2.6.1 + + typescript-collections@1.3.3: {} + + typescript@4.9.5: {} + + typescript@5.6.3: {} + + uc.micro@2.1.0: {} + + undici-types@5.26.5: {} + + undici-types@6.19.8: {} + + undici-types@6.20.0: {} + + unicode-trie@2.0.0: + dependencies: + pako: 0.2.9 + tiny-inflate: 1.0.3 + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + universalify@2.0.1: {} + + unpipe@1.0.0: {} + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + url-value-parser@2.2.0: {} + + use-sync-external-store@1.4.0(react@19.0.0): + dependencies: + react: 19.0.0 + + utf-8-validate@5.0.10: + dependencies: + node-gyp-build: 4.8.4 + optional: true + + utf8@3.0.0: {} + + util-deprecate@1.0.2: {} + + util@0.12.5: + dependencies: + inherits: 2.0.4 + is-arguments: 1.2.0 + is-generator-function: 1.0.10 + is-typed-array: 1.1.15 + which-typed-array: 1.1.18 + + utils-merge@1.0.1: {} + + uuid@10.0.0: {} + + uuid@8.3.2: {} + + uuid@9.0.1: {} + + v8-compile-cache-lib@3.0.1: {} + + vary@1.1.2: {} + + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + + web-streams-polyfill@3.3.3: {} + + web-streams-polyfill@4.0.0-beta.3: {} + + web3-utils@1.10.4: + dependencies: + '@ethereumjs/util': 8.1.0 + bn.js: 5.2.1 + ethereum-bloom-filters: 1.2.0 + ethereum-cryptography: 2.2.1 + ethjs-unit: 0.1.6 + number-to-bn: 1.7.0 + randombytes: 2.1.0 + utf8: 3.0.0 + + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which-typed-array@1.1.18: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + for-each: 0.3.3 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + xsalsa20@1.2.0: {} + + xtend@4.0.2: {} + + yaml@2.6.1: {} + + yn@3.1.1: {} + + yocto-queue@0.1.0: {} + + zod-to-json-schema@3.24.1(zod@3.24.1): + dependencies: + zod: 3.24.1 + + zod@3.24.1: {} + + zstddec@0.0.2: {} + + zwitch@2.0.4: {} 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..0f396d2 100644 --- a/package.json +++ b/package.json @@ -1,72 +1,79 @@ { - "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\"", + "prepare": "husky" + }, + "engines": { + "node": ">=22.0.0", + "pnpm": ">=8.0.0" + }, + "keywords": [], + "author": "sendaifun", + "license": "Apache-2.0", + "dependencies": { + "@ai-sdk/openai": "^1.0.11", + "@bonfida/spl-name-service": "^3.0.7", + "@cks-systems/manifest-sdk": "0.1.59", + "@coral-xyz/anchor": "0.29", + "@langchain/core": "^0.3.26", + "@langchain/groq": "^0.1.2", + "@langchain/langgraph": "^0.2.36", + "@langchain/openai": "^0.3.16", + "@lightprotocol/compressed-token": "^0.17.1", + "@lightprotocol/stateless.js": "^0.17.1", + "@metaplex-foundation/mpl-core": "^1.1.1", + "@metaplex-foundation/mpl-token-metadata": "^3.3.0", + "@metaplex-foundation/mpl-toolbox": "^0.9.4", + "@metaplex-foundation/umi": "^0.9.2", + "@metaplex-foundation/umi-bundle-defaults": "^0.9.2", + "@metaplex-foundation/umi-web3js-adapters": "^0.9.2", + "@onsol/tldparser": "^0.6.7", + "@orca-so/common-sdk": "0.6.4", + "@orca-so/whirlpools-sdk": "^0.13.12", + "@pythnetwork/hermes-client": "^1.3.0", + "@raydium-io/raydium-sdk-v2": "0.1.95-alpha", + "@solana/spl-token": "^0.4.9", + "@solana/web3.js": "^1.98.0", + "@tensor-oss/tensorswap-sdk": "^4.5.0", + "@tiplink/api": "^0.3.1", + "ai": "^4.0.22", + "bn.js": "^5.2.1", + "bs58": "^6.0.0", + "chai": "^5.1.2", + "decimal.js": "^10.4.3", + "dotenv": "^16.4.7", + "flash-sdk": "^2.24.3", + "form-data": "^4.0.1", + "langchain": "^0.3.8", + "openai": "^4.77.0", + "typedoc": "^0.27.6", + "zod": "^3.24.1" + }, + "devDependencies": { + "@types/bn.js": "^5.1.6", + "@types/chai": "^5.0.1", + "@types/node": "^22.10.2", + "@typescript-eslint/eslint-plugin": "^8.18.2", + "@typescript-eslint/parser": "^8.18.2", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", + "husky": "^9.1.7", + "lint-staged": "^15.3.0", + "prettier": "^3.4.2", + "ts-node": "^10.9.2", + "typescript": "^5.7.2" + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac4bb30..157d2bf 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) - '@pythnetwork/price-service-client': - specifier: ^1.9.0 - version: 1.9.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + version: 0.13.13(@coral-xyz/anchor@0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(@orca-so/common-sdk@0.6.4(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(decimal.js@10.4.3))(@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(decimal.js@10.4.3) + '@pythnetwork/hermes-client': + specifier: ^1.3.0 + version: 1.3.0(axios@1.7.9) '@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 @@ -95,15 +101,18 @@ importers: dotenv: specifier: ^16.4.7 version: 16.4.7 + flash-sdk: + specifier: ^2.24.3 + version: 2.24.3(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10) form-data: specifier: ^4.0.1 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 +128,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 @@ -135,18 +144,64 @@ importers: eslint-plugin-prettier: specifier: ^5.2.1 version: 5.2.1(eslint-config-prettier@9.1.0(eslint@8.57.1))(eslint@8.57.1)(prettier@3.4.2) + husky: + specifier: ^9.1.7 + version: 9.1.7 + lint-staged: + specifier: ^15.3.0 + version: 15.3.0 prettier: specifier: ^3.4.2 version: 3.4.2 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.10.2)(typescript@5.7.2) + version: 10.9.2(@types/node@22.10.5)(typescript@5.7.2) typescript: specifier: ^5.7.2 version: 5.7.2 packages: + '@ai-sdk/openai@1.0.11': + resolution: {integrity: sha512-qI9s7Slma5i5bB4yYVlFdcG3PNDwdqivPT1Dr8adDX92nSSpILjgFIooS5yys9sXjvvcfOi/WXbDvVhLSRRlvg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + + '@ai-sdk/provider-utils@2.0.5': + resolution: {integrity: sha512-2M7vLhYN0ThGjNlzow7oO/lsL+DyMxvGMIYmVQvEYaCWhDzxH5dOp78VNjJIVwHzVLMbBDigX3rJuzAs853idw==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + peerDependenciesMeta: + zod: + optional: true + + '@ai-sdk/provider@1.0.3': + resolution: {integrity: sha512-WiuJEpHTrltOIzv3x2wx4gwksAHW0h6nK3SoDzjqCOJLu/2OJ1yASESTIX+f07ChFykHElVoP80Ol/fe9dw6tQ==} + engines: {node: '>=18'} + + '@ai-sdk/react@1.0.7': + resolution: {integrity: sha512-j2/of4iCNq+r2Bjx0O9vdRhn5C/02t2Esenis71YtnsoynPz74eQlJ3N0RYYPheThiJes50yHdfdVdH9ulxs1A==} + engines: {node: '>=18'} + peerDependencies: + react: ^18 || ^19 || ^19.0.0-rc + zod: ^3.0.0 + peerDependenciesMeta: + react: + optional: true + zod: + optional: true + + '@ai-sdk/ui-utils@1.0.6': + resolution: {integrity: sha512-ZP6Vjj+VCnSPBIAvWAdKj2olQONJ/f4aZpkVCGkzprdhv8TjHwB6CTlXFS3zypuEGy4asg84dc1dvXKooQXFvg==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + peerDependenciesMeta: + zod: + optional: true + '@babel/runtime@7.26.0': resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} @@ -164,13 +219,17 @@ 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==} engines: {node: '>=11'} + '@coral-xyz/anchor@0.27.0': + resolution: {integrity: sha512-+P/vPdORawvg3A9Wj02iquxb4T0C5m4P6aZBVYysKl4Amk+r6aMPZkUhilBkD6E4Nuxnoajv3CFykUfkGE0n5g==} + engines: {node: '>=11'} + '@coral-xyz/anchor@0.29.0': resolution: {integrity: sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA==} engines: {node: '>=11'} @@ -181,6 +240,18 @@ packages: peerDependencies: '@solana/web3.js': ^1.68.0 + '@coral-xyz/borsh@0.27.0': + resolution: {integrity: sha512-tJKzhLukghTWPLy+n8K8iJKgBq1yLT/AxaNd10yJrX8mI56ao5+OFAKAqW/h0i79KCvb4BK0VGO5ECmmolFz9A==} + engines: {node: '>=10'} + peerDependencies: + '@solana/web3.js': ^1.68.0 + + '@coral-xyz/borsh@0.28.0': + resolution: {integrity: sha512-/u1VTzw7XooK7rqeD7JLUSwOyRSesPUk0U37BV9zK0axJc1q0nRbKFGFLYCQ16OtdOJTTwGfGp11Lx9B45bRCQ==} + engines: {node: '>=10'} + peerDependencies: + '@solana/web3.js': ^1.68.0 + '@coral-xyz/borsh@0.29.0': resolution: {integrity: sha512-s7VFVa3a0oqpkuRloWVPdCK7hMbAMY270geZOGfCnaqexrP5dTIpbEHL33req6IYPPJ0hYa71cdvJ1h6V55/oQ==} engines: {node: '>=10'} @@ -251,8 +322,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 +368,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 +384,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 +556,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 +568,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 +604,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 @@ -554,6 +621,14 @@ packages: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@pythnetwork/client@2.22.0': + resolution: {integrity: sha512-Cyv23YqewKUL1pcm99jfmdetUa2aaUXjyRF9jvSeFcY895FddRu7uSWftYiaevsnx7vn4WbJgQR6ExxH+aONow==} + peerDependencies: + '@solana/web3.js': ^1.30.2 + + '@pythnetwork/hermes-client@1.3.0': + resolution: {integrity: sha512-SneB+LJSD6pNnG2JUuAgbHNi1qFDcnrIiMuU60FQxZMtIWP09YFMR64vxWxVawyqR93t0iQHcV5HT/hhfmqYOQ==} + '@pythnetwork/price-service-client@1.9.0': resolution: {integrity: sha512-SLm3IFcfmy9iMqHeT4Ih6qMNZhJEefY14T9yTlpsH2D/FE5+BaGGnfcexUifVlfH6M7mwRC4hEFdNvZ6ebZjJg==} deprecated: This package is deprecated and is no longer maintained. Please use @pythnetwork/hermes-client instead. @@ -585,20 +660,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==} @@ -771,6 +852,9 @@ packages: '@solana/web3.js@1.95.3': resolution: {integrity: sha512-O6rPUN0w2fkNqx/Z3QJMB9L225Ex10PRDH8bTaIUPZXMPV0QP8ZpPvjQnXK+upUczlRgzHzd6SjKIha1p+I6og==} + '@solana/web3.js@1.95.8': + resolution: {integrity: sha512-sBHzNh7dHMrmNS5xPD1d0Xa2QffW/RXaxu/OysRXBfwTp+LYqGGmMtCYYwrHPrN5rjAmJCsQRNAwv4FM0t3B6g==} + '@solana/web3.js@1.98.0': resolution: {integrity: sha512-nz3Q5OeyGFpFCR+erX2f6JPt3sKhzhYcSycBCSPkWjzSVDh/Rr1FqTVMRe58FKO16/ivTUcuJjeS5MyBvpkbzA==} @@ -801,6 +885,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 +897,69 @@ 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@20.17.11': + resolution: {integrity: sha512-Ept5glCK35R8yeyIeYlRIZtX6SLRyqMhOFTgj5SOkMpLTdw3SEHI9fHx60xaUZ+V1aJxQJODE+7/j5ocZydYTg==} + + '@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,56 +975,62 @@ 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': resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==} + '@zodios/core@10.9.6': + resolution: {integrity: sha512-aH4rOdb3AcezN7ws8vDgBfGboZMk2JGGzEq/DtW65MhnRxyTGRuLJRWVQ/2KxDgWvV2F5oTkAS+5pnjKbl0n+A==} + peerDependencies: + axios: ^0.x || ^1.0.0 + zod: ^3.x + JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true @@ -916,6 +1039,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,13 +1057,29 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - agentkeepalive@4.5.0: - resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} engines: {node: '>= 8.0.0'} + ai@4.0.22: + resolution: {integrity: sha512-yvcjWtofI2HZwgT3jMkoNnDUhAY+S9cOvZ6xbbOzrS0ZeFl1/gcbasFnwAqUJ7uL/t72/3a0Vy/pKg6N19A2Mw==} + engines: {node: '>=18'} + peerDependencies: + react: ^18 || ^19 || ^19.0.0-rc + zod: ^3.0.0 + peerDependenciesMeta: + react: + optional: true + zod: + optional: true + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -966,6 +1109,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 +1176,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 +1221,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'} @@ -1120,6 +1274,14 @@ packages: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -1127,6 +1289,9 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -1148,6 +1313,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==} @@ -1165,9 +1345,21 @@ packages: crypto-js@4.2.0: resolution: {integrity: sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==} + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + 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 +1402,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,19 +1446,37 @@ 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==} + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} @@ -1277,6 +1498,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 +1581,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 +1605,31 @@ 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'} + + eventsource@2.0.2: + resolution: {integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==} + engines: {node: '>=12.0.0'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + exponential-backoff@3.1.1: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + express-prom-bundle@7.0.2: + resolution: {integrity: sha512-ffFV4HGHvCKnkNJFqm42sYztRJE5mLgOj8MpGey1HOatuFhtcwXoBD2m5gca7ZbcyjkIf7lOH5ZdrhlrBf0sGw==} + engines: {node: '>=18'} + peerDependencies: + prom-client: '>=15.0.0' + + express@4.21.2: + resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} + engines: {node: '>= 0.10.0'} + eyes@0.1.8: resolution: {integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==} engines: {node: '> 0.1.90'} @@ -1409,6 +1659,10 @@ packages: fastq@1.18.0: resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -1424,6 +1678,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 @@ -1432,6 +1690,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} + flash-sdk@2.24.3: + resolution: {integrity: sha512-3JdmHZksBgcRlCXVVFZEV64NGKxVHURHoHAMc3+Ev1BdN0Re2S44wxTaQmO6EIvwPYscVG0BPbp6GibpEuMdsw==} + flat-cache@3.2.0: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -1470,16 +1731,43 @@ packages: resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==} engines: {node: '>= 12.20'} + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + + 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==} + fs@0.0.1-security: + resolution: {integrity: sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==} + function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - get-intrinsic@1.2.6: - resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + engines: {node: '>=18'} + + get-intrinsic@1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} engines: {node: '>= 0.4'} + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -1556,9 +1844,26 @@ packages: html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + husky@9.1.7: + resolution: {integrity: sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==} + engines: {node: '>=18'} + hasBin: true + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -1581,6 +1886,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 +1910,16 @@ packages: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -1625,10 +1942,18 @@ 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'} + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + is-typed-array@1.1.15: resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} @@ -1675,12 +2000,18 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsbi@4.3.0: + resolution: {integrity: sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==} + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -1692,6 +2023,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 +2049,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 +2073,8 @@ packages: optional: true '@langchain/aws': optional: true + '@langchain/cerebras': + optional: true '@langchain/cohere': optional: true '@langchain/google-genai': @@ -1783,9 +2122,22 @@ packages: libsodium@0.7.15: resolution: {integrity: sha512-sZwRknt/tUpE2AwzHq3jEyUU5uvIZHtSssktXq7owd++3CSgn8RGrv6UZJJBpP7+iBghBqe7Z06/2M31rI2NKw==} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + linkify-it@5.0.0: resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + lint-staged@15.3.0: + resolution: {integrity: sha512-vHFahytLoF2enJklgtOtCtIjZrKD/LoxlaUusd5nh7dWv/dkKQJY74ndFSzxCdv7g0ueGg1ORgTSt4Y9LPZn9A==} + engines: {node: '>=18.12.0'} + hasBin: true + + listr2@8.2.5: + resolution: {integrity: sha512-iyAZCeyD+c1gPyE9qpFu8af0Y+MRtmKOncdGoA2S5EY8iFq99dmmvkNnHiWo+pj0s7yH7l3KPIgee77tKpXPWQ==} + engines: {node: '>=18.0.0'} + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -1796,6 +2148,10 @@ packages: lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} + loglevel@1.9.2: resolution: {integrity: sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==} engines: {node: '>= 0.6.0'} @@ -1836,6 +2192,16 @@ packages: mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -1844,6 +2210,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 +2244,19 @@ packages: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} @@ -1895,6 +2278,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 +2296,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==} @@ -1929,14 +2319,26 @@ packages: encoding: optional: true + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-gyp-build@4.8.4: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + number-to-bn@1.7.0: resolution: {integrity: sha512-wsJ9gfSz1/s4ZsJN01lyonwuxA1tml6X1yBDnfpMglypcBRFZZkus26EdPSlqS5GJfYddVZa22p3VNb3z5m5Ig==} engines: {node: '>=6.5.0', npm: '>=3'} + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + engines: {node: '>= 0.4'} + object-is@1.1.6: resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} engines: {node: '>= 0.4'} @@ -1949,14 +2351,26 @@ packages: resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - oniguruma-to-es@0.8.1: - resolution: {integrity: sha512-dekySTEvCxCj0IgKcA2uUCO/e4ArsqpucDPcX26w9ajx+DvMWLc5eZeJaRQkd7oC/+rwif5gnT900tA34uN9Zw==} + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} - openai@4.77.0: - resolution: {integrity: sha512-WWacavtns/7pCUkOWvQIjyOfcdr9X+9n9Vvb0zFeKVDAqwCMDHB+iSr24SVaBAhplvSG6JrRXFpcNM9gWhOGIw==} + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + oniguruma-to-es@0.10.0: + resolution: {integrity: sha512-zapyOUOCJxt+xhiNRPPMtfJkHGsZ98HHB9qJEkdT8BGytO/+kpe4m1Ngf0MzbzTmhacn11w9yGeDP6tzDhnCdg==} + + openai@4.77.3: + resolution: {integrity: sha512-wLDy4+KWHz31HRFMW2+9KQuVuT2QWhs0z94w1Gm1h2Ut9vIHr9/rHZggbykZEfyiaJRVgw8ZS9K6AylDWzvPYw==} hasBin: true peerDependencies: zod: ^3.23.8 @@ -2008,6 +2422,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'} @@ -2020,6 +2438,10 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + path-scurry@1.11.1: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} @@ -2028,6 +2450,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'} @@ -2039,6 +2464,11 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + pidtree@0.6.0: + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} + hasBin: true + poly1305-js@0.4.4: resolution: {integrity: sha512-5B6/S+vg5AOr66wJDkh5LOpU/F3EKANDy4VXKsNZLXea1uCy6CiOWOZ3VhcC0nYdhE7vJUMcLxqcVlrv2g/+Rg==} @@ -2075,6 +2505,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 +2520,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'} @@ -2112,6 +2562,10 @@ packages: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} @@ -2124,6 +2578,9 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported @@ -2147,6 +2604,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 +2623,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,13 +2646,37 @@ 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==} engines: {node: '>=14'} + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} @@ -2192,6 +2694,14 @@ 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-argv@0.3.2: + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -2200,6 +2710,10 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -2218,6 +2732,10 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + strip-hex-prefix@1.0.0: resolution: {integrity: sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==} engines: {node: '>=6.5.0', npm: '>=3'} @@ -2237,6 +2755,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 +2773,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 +2793,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 +2854,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==} @@ -2359,6 +2894,9 @@ packages: undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@6.20.0: resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} @@ -2384,9 +2922,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 +2951,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 +2970,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==} @@ -2460,6 +3019,10 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -2495,6 +3058,11 @@ packages: engines: {node: '>= 14'} hasBin: true + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} + engines: {node: '>= 14'} + hasBin: true + yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -2519,24 +3087,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 +3156,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 +3185,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 +3207,33 @@ 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.27.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.27.0(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + base64-js: 1.5.1 + bn.js: 5.2.1 + bs58: 4.0.1 + buffer-layout: 1.2.2 + camelcase: 6.3.0 + cross-fetch: 3.2.0 + crypto-hash: 1.3.0 + eventemitter3: 4.0.7 + js-sha256: 0.9.0 + pako: 2.1.0 + snake-case: 3.0.4 + superstruct: 0.15.5 + toml: 3.0.0 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@coral-xyz/anchor@0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/borsh': 0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@noble/hashes': 1.7.0 + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) bn.js: 5.2.1 bs58: 4.0.1 buffer-layout: 1.2.2 @@ -2621,15 +3250,27 @@ 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.27.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.28.0(@solana/web3.js@1.95.8(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(utf-8-validate@5.0.10) + bn.js: 5.2.1 + buffer-layout: 1.2.2 + + '@coral-xyz/borsh@0.29.0(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) bn.js: 5.2.1 buffer-layout: 1.2.2 @@ -2719,11 +3360,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 +3407,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 +3424,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 +3484,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 +3497,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 +3509,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 +3521,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 +3568,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 +3584,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 +3602,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 +3643,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 +3662,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 +3681,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 +3709,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 +3737,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 +3763,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 +3785,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 +3801,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 +3822,34 @@ snapshots: '@pkgr/core@0.1.1': {} - '@pythnetwork/price-service-client@1.9.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + '@pythnetwork/client@2.22.0(@solana/web3.js@1.95.8(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(utf-8-validate@5.0.10)': + dependencies: + '@coral-xyz/anchor': 0.29.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@coral-xyz/borsh': 0.28.0(@solana/web3.js@1.95.8(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(utf-8-validate@5.0.10) + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@pythnetwork/hermes-client@1.3.0(axios@1.7.9)': + dependencies: + '@zodios/core': 10.9.6(axios@1.7.9)(zod@3.24.1) + eventsource: 2.0.2 + zod: 3.24.1 + transitivePeerDependencies: + - axios + + '@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 +3859,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 +3885,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 +3913,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 +4167,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 +4182,67 @@ 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.95.8(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.8(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.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 +4252,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.95.8(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@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.95.8(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2) + '@solana/web3.js': 1.95.8(bufferutil@4.0.9)(utf-8-validate@5.0.10) buffer: 6.0.3 transitivePeerDependencies: - bufferutil @@ -3592,12 +4266,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@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@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@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 @@ -3606,13 +4280,12 @@ snapshots: - typescript - utf-8-validate - '@solana/spl-token@0.4.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)': + '@solana/spl-token@0.3.11(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)': dependencies: '@solana/buffer-layout': 4.0.1 - '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@solana/spl-token-group': 0.0.4(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22) - '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2) - '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) buffer: 6.0.3 transitivePeerDependencies: - bufferutil @@ -3621,13 +4294,13 @@ snapshots: - typescript - utf-8-validate - '@solana/spl-token@0.4.8(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)': + '@solana/spl-token@0.4.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)': dependencies: '@solana/buffer-layout': 4.0.1 - '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@solana/spl-token-group': 0.0.5(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2) - '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2) - '@solana/web3.js': 1.95.3(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/spl-token-group': 0.0.4(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22) + '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) buffer: 6.0.3 transitivePeerDependencies: - bufferutil @@ -3636,13 +4309,28 @@ snapshots: - typescript - utf-8-validate - '@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)': + '@solana/spl-token@0.4.8(@solana/web3.js@1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)': dependencies: '@solana/buffer-layout': 4.0.1 - '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2) - '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2) - '@solana/web3.js': 1.98.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/spl-token-group': 0.0.5(@solana/web3.js@1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2) + '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2) + '@solana/web3.js': 1.95.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) + buffer: 6.0.3 + transitivePeerDependencies: + - bufferutil + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + + '@solana/spl-token@0.4.9(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10)': + dependencies: + '@solana/buffer-layout': 4.0.1 + '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/spl-token-group': 0.0.7(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2) + '@solana/spl-token-metadata': 0.1.6(@solana/web3.js@1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2) + '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) buffer: 6.0.3 transitivePeerDependencies: - bufferutil @@ -3655,20 +4343,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 +4365,42 @@ 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.95.8(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 + transitivePeerDependencies: + - bufferutil + - encoding + - utf-8-validate + + '@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.8.0 + '@noble/hashes': 1.7.0 + '@solana/buffer-layout': 4.0.1 + 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.9)(utf-8-validate@5.0.10) node-fetch: 2.7.0 rpc-websockets: 9.0.4 superstruct: 2.0.2 @@ -3703,14 +4413,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 +4438,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 +4463,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 +4493,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 +4506,58 @@ 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@20.17.11': + dependencies: + undici-types: 6.19.8 + + '@types/node@22.10.5': dependencies: undici-types: 6.20.0 @@ -3826,10 +4565,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 +4592,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 +4615,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 +4643,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,24 +4659,29 @@ 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': {} + '@zodios/core@10.9.6(axios@1.7.9)(zod@3.24.1)': + dependencies: + axios: 1.7.9 + zod: 3.24.1 + JSONStream@1.3.5: dependencies: jsonparse: 1.3.1 @@ -3932,6 +4691,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 +4706,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 @@ -3953,6 +4730,10 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + ansi-regex@5.0.1: {} ansi-regex@6.1.0: {} @@ -3971,6 +4752,8 @@ snapshots: argparse@2.0.1: {} + array-flatten@1.1.1: {} + assert@2.1.0: dependencies: call-bind: 1.0.8 @@ -4040,6 +4823,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 +4889,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 +4905,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: {} @@ -4138,12 +4940,23 @@ snapshots: check-error@2.1.1: {} + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.2.0 + color-convert@2.0.1: dependencies: color-name: 1.1.4 color-name@1.1.4: {} + colorette@2.0.20: {} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -4158,6 +4971,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: @@ -4176,8 +4999,14 @@ snapshots: crypto-js@4.2.0: {} + data-uri-to-buffer@4.0.1: {} + dayjs@1.11.13: {} + debug@2.6.9: + dependencies: + ms: 2.0.0 + debug@4.4.0: dependencies: ms: 2.1.3 @@ -4208,12 +5037,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,14 +5072,24 @@ snapshots: eastasianwidth@0.2.0: {} + ee-first@1.1.1: {} + emoji-regex-xs@1.0.0: {} + emoji-regex@10.4.0: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + entities@4.5.0: {} + environment@1.1.0: {} + err-code@2.0.3: {} es-define-property@1.0.1: {} @@ -4261,6 +5106,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 +5243,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 +5267,70 @@ snapshots: eventemitter3@5.0.1: {} + eventsource-parser@3.0.0: {} + + eventsource@2.0.2: {} + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + exponential-backoff@3.1.1: {} + express-prom-bundle@7.0.2(prom-client@15.1.3): + dependencies: + '@types/express': 4.17.21 + express: 4.21.2 + on-finished: 2.4.1 + prom-client: 15.1.3 + url-value-parser: 2.2.0 + transitivePeerDependencies: + - supports-color + + express@4.21.2: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.3 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.7.1 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.1 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.12 + proxy-addr: 2.0.7 + qs: 6.13.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.0 + serve-static: 1.16.2 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + eyes@0.1.8: {} fast-deep-equal@3.1.3: {} @@ -4446,6 +5357,11 @@ snapshots: dependencies: reusify: 1.0.4 + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + file-entry-cache@6.0.1: dependencies: flat-cache: 3.2.0 @@ -4460,6 +5376,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 @@ -4478,6 +5406,34 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 + flash-sdk@2.24.3(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.7.2)(utf-8-validate@5.0.10): + dependencies: + '@coral-xyz/anchor': 0.27.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@pythnetwork/client': 2.22.0(@solana/web3.js@1.95.8(bufferutil@4.0.9)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@pythnetwork/price-service-client': 1.9.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/spl-token': 0.3.11(@solana/web3.js@1.95.8(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.8(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@types/node': 20.17.11 + bignumber.js: 9.1.2 + bs58: 5.0.0 + dotenv: 16.4.7 + fs: 0.0.1-security + js-sha256: 0.9.0 + jsbi: 4.3.0 + node-fetch: 3.3.2 + rimraf: 5.0.10 + ts-node: 10.9.2(@types/node@20.17.11)(typescript@5.7.2) + tweetnacl: 1.0.3 + transitivePeerDependencies: + - '@swc/core' + - '@swc/wasm' + - bufferutil + - debug + - encoding + - fastestsmallesttextencoderdecoder + - typescript + - utf-8-validate + flat-cache@3.2.0: dependencies: flatted: 3.3.2 @@ -4515,23 +5471,42 @@ snapshots: node-domexception: 1.0.0 web-streams-polyfill: 4.0.0-beta.3 + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + + forwarded@0.2.0: {} + + fresh@0.5.2: {} + fs.realpath@1.0.0: {} + fs@0.0.1-security: {} + function-bind@1.1.2: {} - get-intrinsic@1.2.6: + get-east-asian-width@1.3.0: {} + + get-intrinsic@1.2.7: dependencies: call-bind-apply-helpers: 1.0.1 - dunder-proto: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 es-object-atoms: 1.0.0 function-bind: 1.1.2 + get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 hasown: 2.0.2 math-intrinsics: 1.1.0 + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.0.0 + + get-stream@8.0.1: {} + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -4587,10 +5562,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 +5614,26 @@ snapshots: html-void-elements@3.0.0: {} + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + human-signals@5.0.0: {} + humanize-ms@1.2.1: dependencies: ms: 2.1.3 + husky@9.1.7: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + ieee754@1.2.1: {} ignore@5.3.2: {} @@ -4661,6 +5652,8 @@ snapshots: inherits@2.0.4: {} + ipaddr.js@1.9.1: {} + ipaddr.js@2.2.0: {} is-arguments@1.2.0: @@ -4674,9 +5667,18 @@ snapshots: is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.0.10: + is-fullwidth-code-point@4.0.0: {} + + is-fullwidth-code-point@5.0.0: dependencies: + get-east-asian-width: 1.3.0 + + is-generator-function@1.1.0: + dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 is-glob@4.0.3: dependencies: @@ -4693,8 +5695,17 @@ 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-stream@3.0.0: {} + is-typed-array@1.1.15: dependencies: which-typed-array: 1.1.18 @@ -4703,13 +5714,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 +5732,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 +5742,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 @@ -4755,16 +5766,26 @@ snapshots: dependencies: argparse: 2.0.1 + jsbi@4.3.0: {} + json-buffer@3.0.1: {} json-schema-traverse@0.4.1: {} + json-schema@0.4.0: {} + json-stable-stringify-without-jsonify@1.0.1: {} json-stringify-safe@5.0.1: {} json5@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 +5812,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 +5843,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: @@ -4841,10 +5862,36 @@ snapshots: libsodium@0.7.15: {} + lilconfig@3.1.3: {} + linkify-it@5.0.0: dependencies: uc.micro: 2.1.0 + lint-staged@15.3.0: + dependencies: + chalk: 5.4.1 + commander: 12.1.0 + debug: 4.4.0 + execa: 8.0.1 + lilconfig: 3.1.3 + listr2: 8.2.5 + micromatch: 4.0.8 + pidtree: 0.6.0 + string-argv: 0.3.2 + yaml: 2.6.1 + transitivePeerDependencies: + - supports-color + + listr2@8.2.5: + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.0 + locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -4853,6 +5900,14 @@ snapshots: lodash@4.17.21: {} + log-update@6.1.0: + dependencies: + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + loglevel@1.9.2: {} loupe@3.1.2: {} @@ -4896,6 +5951,12 @@ snapshots: mdurl@2.0.0: {} + media-typer@0.3.0: {} + + merge-descriptors@1.0.3: {} + + merge-stream@2.0.0: {} + merge2@1.4.1: {} merkletreejs@0.3.11: @@ -4906,6 +5967,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 +5999,12 @@ snapshots: dependencies: mime-db: 1.52.0 + mime@1.6.0: {} + + mimic-fn@4.0.0: {} + + mimic-function@5.0.1: {} + minimalistic-assert@1.0.1: {} minimatch@10.0.1: @@ -4954,6 +6023,8 @@ snapshots: minipass@7.1.2: {} + ms@2.0.0: {} + ms@2.1.3: {} mustache@4.2.0: {} @@ -4962,6 +6033,8 @@ snapshots: natural-compare@1.4.0: {} + negotiator@0.6.3: {} + no-case@3.0.4: dependencies: lower-case: 2.0.2 @@ -4975,13 +6048,25 @@ snapshots: dependencies: whatwg-url: 5.0.0 + node-fetch@3.3.2: + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + node-gyp-build@4.8.4: {} + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + number-to-bn@1.7.0: dependencies: bn.js: 4.11.6 strip-hex-prefix: 1.0.0 + object-inspect@1.13.3: {} + object-is@1.1.6: dependencies: call-bind: 1.0.8 @@ -4998,22 +6083,34 @@ snapshots: has-symbols: 1.1.0 object-keys: 1.1.1 + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + once@1.4.0: dependencies: wrappy: 1.0.2 - oniguruma-to-es@0.8.1: + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + oniguruma-to-es@0.10.0: dependencies: emoji-regex-xs: 1.0.0 regex: 5.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,12 +6164,16 @@ snapshots: dependencies: callsites: 3.1.0 + parseurl@1.3.3: {} + path-exists@4.0.0: {} path-is-absolute@1.0.1: {} path-key@3.1.1: {} + path-key@4.0.0: {} + path-scurry@1.11.1: dependencies: lru-cache: 10.4.3 @@ -5083,12 +6184,16 @@ snapshots: lru-cache: 11.0.2 minipass: 7.1.2 + path-to-regexp@0.1.12: {} + pathval@2.0.0: {} percentile@1.6.0: {} picomatch@2.3.1: {} + pidtree@0.6.0: {} + poly1305-js@0.4.4: dependencies: big-integer: 1.6.52 @@ -5117,18 +6222,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 @@ -5150,12 +6275,19 @@ snapshots: resolve-from@4.0.0: {} + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + retry@0.12.0: {} retry@0.13.1: {} reusify@1.0.4: {} + rfdc@1.4.1: {} + rimraf@3.0.2: dependencies: glob: 7.2.3 @@ -5177,9 +6309,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,36 +6320,115 @@ 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: {} + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + + slice-ansi@7.1.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + snake-case@3.0.4: dependencies: dot-case: 3.0.4 @@ -5246,6 +6457,10 @@ snapshots: - jiti - supports-color + statuses@2.0.1: {} + + string-argv@0.3.2: {} + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -5258,6 +6473,12 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.3.0 + strip-ansi: 7.1.0 + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -5277,6 +6498,8 @@ snapshots: strip-bom@3.0.0: {} + strip-final-newline@3.0.0: {} + strip-hex-prefix@1.0.0: dependencies: is-hex-prefixed: 1.0.0 @@ -5291,6 +6514,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 +6533,8 @@ snapshots: text-table@0.2.0: {} + throttleit@2.1.0: {} + through@2.3.8: {} tiny-inflate@1.0.3: {} @@ -5316,6 +6547,8 @@ snapshots: toformat@2.0.0: {} + toidentifier@1.0.1: {} + toml@3.0.0: {} tr46@0.0.3: {} @@ -5330,14 +6563,32 @@ 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@20.17.11)(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': 20.17.11 + acorn: 8.14.0 + acorn-walk: 8.3.4 + arg: 4.1.3 + create-require: 1.1.1 + diff: 4.0.2 + make-error: 1.3.6 + typescript: 5.7.2 + v8-compile-cache-lib: 3.0.1 + yn: 3.1.1 + + 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.5 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -5366,6 +6617,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 +6631,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: {} @@ -5398,6 +6654,8 @@ snapshots: undici-types@5.26.5: {} + undici-types@6.19.8: {} + undici-types@6.20.0: {} unicode-trie@2.0.0: @@ -5430,10 +6688,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 +6713,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 +6727,8 @@ snapshots: v8-compile-cache-lib@3.0.1: {} + vary@1.1.2: {} + vfile-message@4.0.2: dependencies: '@types/unist': 3.0.3 @@ -5518,22 +6788,30 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.0 + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + wrappy@1.0.2: {} - ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10): + ws@7.5.10(bufferutil@4.0.9)(utf-8-validate@5.0.10): optionalDependencies: - bufferutil: 4.0.8 + bufferutil: 4.0.9 utf-8-validate: 5.0.10 - ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10): optionalDependencies: - bufferutil: 4.0.8 + bufferutil: 4.0.9 utf-8-validate: 5.0.10 xsalsa20@1.2.0: {} yaml@2.6.1: {} + yaml@2.7.0: {} + yn@3.1.1: {} yocto-queue@0.1.0: {} diff --git a/src/actions/createOrcaSingleSidedWhirlpool.ts b/src/actions/createOrcaSingleSidedWhirlpool.ts index 3a1fb52..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"; diff --git a/src/actions/flashCloseTrade.ts b/src/actions/flashCloseTrade.ts new file mode 100644 index 0000000..3781d83 --- /dev/null +++ b/src/actions/flashCloseTrade.ts @@ -0,0 +1,68 @@ +import { Action } from "../types/action"; +import { SolanaAgentKit } from "../agent"; +import { z } from "zod"; +import { flashCloseTrade } from "../tools"; + +const flashCloseTradeAction: Action = { + name: "FLASH_CLOSE_TRADE", + similes: [ + "close trade", + "close leveraged trade", + "exit position", + "close position", + "exit trade", + "close long", + "close short", + "take profit", + "stop loss", + ], + description: + "Close an existing leveraged trading position on Flash.Trade protocol", + examples: [ + [ + { + input: { + token: "SOL", + side: "long", + }, + output: { + status: "success", + signature: "4xKpN2...", + message: "Successfully closed long position on SOL", + }, + explanation: "Close an existing long position on SOL", + }, + ], + ], + schema: z.object({ + token: z + .string() + .describe("Token symbol of the position to close (e.g. SOL, ETH)"), + side: z + .enum(["long", "short"]) + .describe("Position side to close - long or short"), + }), + handler: async (agent: SolanaAgentKit, input: Record) => { + try { + const params = { + token: input.token as string, + side: input.side as "long" | "short", + }; + + const response = await flashCloseTrade(agent, params); + + return { + status: "success", + signature: response, + message: `Successfully closed ${params.side} position on ${params.token}`, + }; + } catch (error: any) { + return { + status: "error", + message: `Flash trade close failed: ${error.message}`, + }; + } + }, +}; + +export default flashCloseTradeAction; diff --git a/src/actions/flashOpenTrade.ts b/src/actions/flashOpenTrade.ts new file mode 100644 index 0000000..790bdef --- /dev/null +++ b/src/actions/flashOpenTrade.ts @@ -0,0 +1,78 @@ +import { Action } from "../types/action"; +import { SolanaAgentKit } from "../agent"; +import { z } from "zod"; +import { flashOpenTrade } from "../tools"; + +const flashOpenTradeAction: Action = { + name: "FLASH_OPEN_TRADE", + similes: [ + "open trade", + "open leveraged trade", + "start trading position", + "open position", + "long position", + "short position", + "leverage trade", + "margin trade", + ], + description: "Open a leveraged trading position on Flash.Trade protocol", + examples: [ + [ + { + input: { + token: "SOL", + side: "long", + collateralUsd: 100, + leverage: 5, + }, + output: { + status: "success", + signature: "4xKpN2...", + message: + "Successfully opened 5x long position on SOL with $100 collateral", + }, + explanation: + "Open a 5x leveraged long position on SOL using $100 as collateral", + }, + ], + ], + schema: z.object({ + token: z.string().describe("Token symbol to trade (e.g. SOL, ETH)"), + side: z + .enum(["long", "short"]) + .describe("Trading direction - long or short"), + collateralUsd: z + .number() + .positive() + .describe("Amount of collateral in USD"), + leverage: z + .number() + .positive() + .describe("Leverage multiplier for the trade"), + }), + handler: async (agent: SolanaAgentKit, input: Record) => { + try { + const params = { + token: input.token as string, + side: input.side as "long" | "short", + collateralUsd: input.collateralUsd as number, + leverage: input.leverage as number, + }; + + const response = await flashOpenTrade(agent, params); + + return { + status: "success", + signature: response, + message: `Successfully opened ${params.leverage}x ${params.side} position on ${params.token} with $${params.collateralUsd} collateral`, + }; + } catch (error: any) { + return { + status: "error", + message: `Flash trade failed: ${error.message}`, + }; + } + }, +}; + +export default flashOpenTradeAction; 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 1ccdb64..c974209 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,8 +27,12 @@ import raydiumCreateCpmmAction from "./raydiumCreateCpmm"; import raydiumCreateAmmV4Action from "./raydiumCreateAmmV4"; import createOrcaSingleSidedWhirlpoolAction from "./createOrcaSingleSidedWhirlpool"; import launchPumpfunTokenAction from "./launchPumpfunToken"; +import getWalletAddressAction from "./getWalletAddress"; +import flashOpenTradeAction from "./flashOpenTrade"; +import flashCloseTradeAction from "./flashCloseTrade"; export const ACTIONS = { + WALLET_ADDRESS_ACTION: getWalletAddressAction, DEPLOY_TOKEN_ACTION: deployTokenAction, BALANCE_ACTION: balanceAction, TRANSFER_ACTION: transferAction, @@ -40,6 +45,7 @@ export const ACTIONS = { 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, @@ -57,6 +63,8 @@ export const ACTIONS = { CREATE_ORCA_SINGLE_SIDED_WHIRLPOOL_ACTION: createOrcaSingleSidedWhirlpoolAction, LAUNCH_PUMPFUN_TOKEN_ACTION: launchPumpfunTokenAction, + FLASH_OPEN_TRADE_ACTION: flashOpenTradeAction, + FLASH_CLOSE_TRADE_ACTION: flashCloseTradeAction, }; export type { Action, ActionExample, Handler } from "../types/action"; diff --git a/src/actions/pythFetchPrice.ts b/src/actions/pythFetchPrice.ts index 8dc11f6..d9f7ae4 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,19 @@ 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 as string, + ); + + 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 8191a80..bbc25ea 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, @@ -50,8 +56,13 @@ import { create_TipLink, listNFTForSale, cancelListing, + fetchTokenReportSummary, + fetchTokenDetailedReport, + fetchPythPrice, + fetchPythPriceFeedID, + flashOpenTrade, + flashCloseTrade, } from "../tools"; - import { CollectionDeployment, CollectionOptions, @@ -60,8 +71,10 @@ import { MintCollectionNFTResponse, PumpfunLaunchResponse, PumpFunTokenOptions, + OrderParams, + FlashTradeParams, + FlashCloseTradeParams, } from "../types"; -import { BN } from "@coral-xyz/anchor"; /** * Main class for interacting with Solana blockchain @@ -202,6 +215,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); } @@ -210,6 +230,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); } @@ -255,6 +311,10 @@ export class SolanaAgentKit { return stakeWithJup(this, amount); } + async restake(amount: number): Promise { + return stakeWithSolayer(this, amount); + } + async sendCompressedAirdrop( mintAddress: string, amount: number, @@ -443,8 +503,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( @@ -485,4 +549,30 @@ export class SolanaAgentKit { async tensorCancelListing(nftMint: PublicKey): Promise { return cancelListing(this, nftMint); } + + async fetchTokenReportSummary(mint: string): Promise { + return fetchTokenReportSummary(mint); + } + + async fetchTokenDetailedReport(mint: string): Promise { + return fetchTokenDetailedReport(mint); + } + + /** + * Opens a new trading position on Flash.Trade + * @param params Flash trade parameters including market, side, collateral, leverage, and pool name + * @returns Transaction signature + */ + async flashOpenTrade(params: FlashTradeParams): Promise { + return flashOpenTrade(this, params); + } + + /** + * Closes an existing trading position on Flash.Trade + * @param params Flash trade close parameters + * @returns Transaction signature + */ + async flashCloseTrade(params: FlashCloseTradeParams): Promise { + return flashCloseTrade(this, params); + } } 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 4605fd3..b127c82 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. @@ -572,6 +774,131 @@ export class SolanaGetWalletAddressTool extends Tool { } } +export class SolanaFlashOpenTrade extends Tool { + name = "solana_flash_open_trade"; + description = `This tool can be used to open a new leveraged trading position on Flash.Trade exchange. + + Inputs ( input is a JSON string ): + token: string, eg "SOL", "BTC", "ETH" (required) + type: string, eg "long", "short" (required) + collateral: number, eg 10, 100, 1000 (required) + leverage: number, eg 5, 10, 20 (required) + + Example prompt is Open a 20x leveraged trade for SOL on long side using flash trade with 500 USD as collateral`; + + constructor(private solanaKit: SolanaAgentKit) { + super(); + } + + protected async _call(input: string): Promise { + try { + const parsedInput = JSON.parse(input); + + // Validate input parameters + if (!parsedInput.token) { + throw new Error("Token is required, received: " + parsedInput.token); + } + if (!["SOL", "BTC", "ETH", "USDC"].includes(parsedInput.token)) { + throw new Error( + 'Token must be one of ["SOL", "BTC", "ETH", "USDC"], received: ' + + parsedInput.token, + ); + } + if (!["long", "short"].includes(parsedInput.type)) { + throw new Error( + 'Type must be either "long" or "short", received: ' + + parsedInput.type, + ); + } + if (!parsedInput.collateral || parsedInput.collateral <= 0) { + throw new Error( + "Collateral amount must be positive, received: " + + parsedInput.collateral, + ); + } + if (!parsedInput.leverage || parsedInput.leverage <= 0) { + throw new Error( + "Leverage must be positive, received: " + parsedInput.leverage, + ); + } + + const tx = await this.solanaKit.flashOpenTrade({ + token: parsedInput.token, + side: parsedInput.type, + collateralUsd: parsedInput.collateral, + leverage: parsedInput.leverage, + }); + + return JSON.stringify({ + status: "success", + message: "Flash trade position opened successfully", + transaction: tx, + token: parsedInput.token, + side: parsedInput.type, + collateral: parsedInput.collateral, + leverage: parsedInput.leverage, + }); + } catch (error: any) { + return JSON.stringify({ + status: "error", + message: error.message, + code: error.code || "UNKNOWN_ERROR", + }); + } + } +} + +export class SolanaFlashCloseTrade extends Tool { + name = "solana_flash_close_trade"; + description = `Close an existing leveraged trading position on Flash.Trade exchange. + + Inputs ( input is a JSON string ): + token: string, eg "SOL", "BTC", "ETH" (required) + side: string, eg "long", "short" (required) + + Example prompt is Close a 20x leveraged trade for SOL on long side`; + + constructor(private solanaKit: SolanaAgentKit) { + super(); + } + + protected async _call(input: string): Promise { + try { + const parsedInput = JSON.parse(input); + + // Validate input parameters + if (!parsedInput.token) { + throw new Error("Token is required"); + } + if (!["SOL", "BTC", "ETH"].includes(parsedInput.token)) { + throw new Error('Token must be one of ["SOL", "BTC", "ETH"]'); + } + if (!["long", "short"].includes(parsedInput.side)) { + throw new Error('Side must be either "long" or "short"'); + } + + const tx = await this.solanaKit.flashCloseTrade({ + token: parsedInput.token, + side: parsedInput.side, + }); + + return JSON.stringify({ + status: "success", + message: "Flash trade position closed successfully", + transaction: tx, + token: parsedInput.token, + side: parsedInput.side, + }); + } catch (error: any) { + return JSON.stringify({ + status: "error", + message: error.message, + code: error.code || "UNKNOWN_ERROR", + }); + } + } +} + export class SolanaPumpfunTokenLaunchTool extends Tool { name = "solana_launch_pumpfun_token"; @@ -768,6 +1095,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 +1268,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 +1355,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 +1763,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 +1771,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,6 +2189,67 @@ export class SolanaCancelNFTListingTool extends Tool { } } +export class SolanaFetchTokenReportSummaryTool extends Tool { + name = "solana_fetch_token_report_summary"; + description = `Fetches a summary report for a specific token from RugCheck. + Inputs: + - mint: string, the mint address of the token, e.g., "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN" (required).`; + + constructor(private solanaKit: SolanaAgentKit) { + super(); + } + + protected async _call(input: string): Promise { + try { + const mint = input.trim(); + const report = await this.solanaKit.fetchTokenReportSummary(mint); + + return JSON.stringify({ + status: "success", + message: "Token report summary fetched successfully", + report, + }); + } catch (error: any) { + return JSON.stringify({ + status: "error", + message: error.message, + code: error.code || "FETCH_TOKEN_REPORT_SUMMARY_ERROR", + }); + } + } +} + +export class SolanaFetchTokenDetailedReportTool extends Tool { + name = "solana_fetch_token_detailed_report"; + description = `Fetches a detailed report for a specific token from RugCheck. + Inputs: + - mint: string, the mint address of the token, e.g., "JUPyiwrYJFskUPiHa7hkeR8VUtAeFoSYbKedZNsDvCN" (required).`; + + constructor(private solanaKit: SolanaAgentKit) { + super(); + } + + protected async _call(input: string): Promise { + try { + const mint = input.trim(); + const detailedReport = + await this.solanaKit.fetchTokenDetailedReport(mint); + + return JSON.stringify({ + status: "success", + message: "Detailed token report fetched successfully", + report: detailedReport, + }); + } catch (error: any) { + return JSON.stringify({ + status: "error", + message: error.message, + code: error.code || "FETCH_TOKEN_DETAILED_REPORT_ERROR", + }); + } + } +} + export function createSolanaTools(solanaKit: SolanaAgentKit) { return [ new SolanaBalanceTool(solanaKit), @@ -1842,6 +2267,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), @@ -1853,6 +2279,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), @@ -1873,5 +2300,11 @@ export function createSolanaTools(solanaKit: SolanaAgentKit) { new SolanaTipLinkTool(solanaKit), new SolanaListNFTForSaleTool(solanaKit), new SolanaCancelNFTListingTool(solanaKit), + new SolanaFetchTokenReportSummaryTool(solanaKit), + new SolanaFetchTokenDetailedReportTool(solanaKit), + new SolanaPerpOpenTradeTool(solanaKit), + new SolanaPerpCloseTradeTool(solanaKit), + new SolanaFlashOpenTrade(solanaKit), + new SolanaFlashCloseTrade(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/cancel_all_orders.ts b/src/tools/cancel_all_orders.ts deleted file mode 100644 index d8e3639..0000000 --- a/src/tools/cancel_all_orders.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { - PublicKey, - sendAndConfirmTransaction, - Transaction, -} from "@solana/web3.js"; -import { SolanaAgentKit } from "../index"; -import { ManifestClient } from "@cks-systems/manifest-sdk"; - -/** - * Cancels all orders from Manifest - * @param agent SolanaAgentKit instance - * @param marketId Public key for the manifest market - * @returns Transaction signature - */ -export async function cancelAllOrders( - agent: SolanaAgentKit, - marketId: PublicKey, -): Promise { - try { - const mfxClient = await ManifestClient.getClientForMarket( - agent.connection, - marketId, - agent.wallet, - ); - - const cancelAllOrdersIx = await mfxClient.cancelAllIx(); - const signature = await sendAndConfirmTransaction( - agent.connection, - new Transaction().add(cancelAllOrdersIx), - [agent.wallet], - ); - - return signature; - } catch (error: any) { - throw new Error(`Cancel all orders failed: ${error.message}`); - } -} diff --git a/src/tools/flash_close_trade.ts b/src/tools/flash_close_trade.ts new file mode 100644 index 0000000..ffbe0c8 --- /dev/null +++ b/src/tools/flash_close_trade.ts @@ -0,0 +1,117 @@ +import { ComputeBudgetProgram } from "@solana/web3.js"; +import { PoolConfig, Privilege, Side } from "flash-sdk"; +import { BN } from "@coral-xyz/anchor"; +import { SolanaAgentKit } from "../index"; +import { + CLOSE_POSITION_CU, + marketSdkInfo, + marketTokenMap, + getNftTradingAccountInfo, + fetchOraclePrice, + createPerpClient, +} from "../utils/flashUtils"; +import { FlashCloseTradeParams } from "../types"; + +/** + * Closes an existing position on Flash.Trade + * @param agent SolanaAgentKit instance + * @param params Trade parameters + * @returns Transaction signature + */ +export async function flashCloseTrade( + agent: SolanaAgentKit, + params: FlashCloseTradeParams, +): Promise { + try { + const { token, side } = params; + + // Get market ID from token and side using marketTokenMap + const tokenMarkets = marketTokenMap[token]; + if (!tokenMarkets) { + throw new Error(`Token ${token} not supported for trading`); + } + + const sideEntry = tokenMarkets[side]; + if (!sideEntry) { + throw new Error(`${side} side not available for ${token}`); + } + + const market = sideEntry.marketID; + + // Validate market data using marketSdkInfo + const marketData = marketSdkInfo[market]; + if (!marketData) { + throw new Error(`Invalid market configuration for ${token}/${side}`); + } + + // Get token information + const [targetSymbol, collateralSymbol] = marketData.tokenPair.split("/"); + + // Fetch oracle prices + const [targetPrice] = await Promise.all([ + fetchOraclePrice(targetSymbol), + fetchOraclePrice(collateralSymbol), + ]); + + // Initialize pool configuration and perpClient + const poolConfig = PoolConfig.fromIdsByName( + marketData.pool, + "mainnet-beta", + ); + const perpClient = createPerpClient(agent.connection, agent.wallet); + + // Calculate price after slippage + const slippageBpsBN = new BN(100); // 1% slippage + const sideEnum = side === "long" ? Side.Long : Side.Short; + const priceWithSlippage = perpClient.getPriceAfterSlippage( + false, // isEntry = false for closing position + slippageBpsBN, + targetPrice.price, + sideEnum, + ); + + // Get NFT trading account info + const tradingAccounts = await getNftTradingAccountInfo( + agent.wallet_address, + perpClient, + poolConfig, + collateralSymbol, + ); + + if ( + !tradingAccounts.nftTradingAccountPk || + !tradingAccounts.nftReferralAccountPK || + !tradingAccounts.nftOwnerRebateTokenAccountPk + ) { + throw new Error("Required NFT trading accounts not found"); + } + + // Build and send transaction + const { instructions, additionalSigners } = await perpClient.closePosition( + targetSymbol, + collateralSymbol, + priceWithSlippage, + sideEnum, + poolConfig, + Privilege.Referral, + tradingAccounts.nftTradingAccountPk, + tradingAccounts.nftReferralAccountPK, + tradingAccounts.nftOwnerRebateTokenAccountPk, + ); + + const computeBudgetIx = ComputeBudgetProgram.setComputeUnitLimit({ + units: CLOSE_POSITION_CU, + }); + + return await perpClient.sendTransaction( + [computeBudgetIx, ...instructions], + { + additionalSigners: additionalSigners, + alts: perpClient.addressLookupTables, + prioritizationFee: 5000000, + }, + ); + } catch (error) { + throw new Error(`Flash trade close failed: ${error}`); + } +} diff --git a/src/tools/flash_open_trade.ts b/src/tools/flash_open_trade.ts new file mode 100644 index 0000000..9896ed4 --- /dev/null +++ b/src/tools/flash_open_trade.ts @@ -0,0 +1,251 @@ +import { ComputeBudgetProgram } from "@solana/web3.js"; +import { + PerpetualsClient, + OraclePrice, + PoolConfig, + Privilege, + Side, + CustodyAccount, + Custody, +} from "flash-sdk"; +import { BN } from "@coral-xyz/anchor"; +import { SolanaAgentKit } from "../index"; +import { + ALL_TOKENS, + marketSdkInfo, + marketTokenMap, + getNftTradingAccountInfo, + OPEN_POSITION_CU, + fetchOraclePrice, + createPerpClient, +} from "../utils/flashUtils"; +import { FlashTradeParams } from "../types"; + +/** + * Opens a new position on Flash.Trade + * @param agent SolanaAgentKit instance + * @param params Trade parameters + * @returns Transaction signature + */ +export async function flashOpenTrade( + agent: SolanaAgentKit, + params: FlashTradeParams, +): Promise { + try { + const { token, side, collateralUsd, leverage } = params; + + // Get market ID from token and side using marketTokenMap + const tokenMarkets = marketTokenMap[token]; + if (!tokenMarkets) { + throw new Error(`Token ${token} not supported for trading`); + } + + const sideEntry = tokenMarkets[side]; + if (!sideEntry) { + throw new Error(`${side} side not available for ${token}`); + } + + const market = sideEntry.marketID; + + // Validate market data using marketSdkInfo + const marketData = marketSdkInfo[market]; + if (!marketData) { + throw new Error(`Invalid market configuration for ${token}/${side}`); + } + + // Get token information + const [targetSymbol, collateralSymbol] = marketData.tokenPair.split("/"); + const targetToken = ALL_TOKENS.find((t) => t.symbol === targetSymbol); + const collateralToken = ALL_TOKENS.find( + (t) => t.symbol === collateralSymbol, + ); + + if (!targetToken || !collateralToken) { + throw new Error(`Token not found for pair ${marketData.tokenPair}`); + } + + // Fetch oracle prices + const [targetPrice, collateralPrice] = await Promise.all([ + fetchOraclePrice(targetSymbol), + fetchOraclePrice(collateralSymbol), + ]); + + // Initialize pool configuration and perpClient + const poolConfig = PoolConfig.fromIdsByName( + marketData.pool, + "mainnet-beta", + ); + const perpClient = createPerpClient(agent.connection, agent.wallet); + + // Calculate position parameters + const leverageBN = new BN(leverage); + const collateralTokenPrice = convertPriceToNumber(collateralPrice.price); + const collateralAmount = calculateCollateralAmount( + collateralUsd, + collateralTokenPrice, + collateralToken.decimals, + ); + + // Get custody accounts + const { targetCustody, collateralCustody } = await fetchCustodyAccounts( + perpClient, + poolConfig, + targetSymbol, + collateralSymbol, + ); + + // Calculate position size + const positionSize = calculatePositionSize( + perpClient, + collateralAmount, + leverageBN, + targetToken, + collateralToken, + side, + targetPrice.price, + collateralPrice.price, + targetCustody, + collateralCustody, + ); + + // Get NFT trading account info + const tradingAccounts = await getNftTradingAccountInfo( + agent.wallet_address, + perpClient, + poolConfig, + collateralSymbol, + ); + + if ( + !tradingAccounts.nftTradingAccountPk || + !tradingAccounts.nftReferralAccountPK + ) { + throw new Error("Required NFT trading accounts not found"); + } + + // Prepare transaction + const slippageBps = new BN(1000); + const priceWithSlippage = perpClient.getPriceAfterSlippage( + true, + slippageBps, + targetPrice.price, + side === "long" ? Side.Long : Side.Short, + ); + + // Build and send transaction + const { instructions, additionalSigners } = await perpClient.openPosition( + targetSymbol, + collateralSymbol, + priceWithSlippage, + collateralAmount, + positionSize, + side === "long" ? Side.Long : Side.Short, + poolConfig, + Privilege.Referral, + tradingAccounts.nftTradingAccountPk, + tradingAccounts.nftReferralAccountPK, + tradingAccounts.nftOwnerRebateTokenAccountPk!, + false, + ); + + const computeBudgetIx = ComputeBudgetProgram.setComputeUnitLimit({ + units: OPEN_POSITION_CU, + }); + + return await perpClient.sendTransaction( + [computeBudgetIx, ...instructions], + { + additionalSigners: additionalSigners, + alts: perpClient.addressLookupTables, + prioritizationFee: 5000000, + }, + ); + } catch (error) { + throw new Error(`Flash trade failed: ${error}`); + } +} + +// Helper functions +function convertPriceToNumber(oraclePrice: OraclePrice): number { + const price = parseInt(oraclePrice.price.toString("hex"), 16); + const exponent = parseInt(oraclePrice.exponent.toString("hex"), 16); + return price * Math.pow(10, exponent); +} + +function calculateCollateralAmount( + usdAmount: number, + tokenPrice: number, + decimals: number, +): BN { + return new BN((usdAmount / tokenPrice) * Math.pow(10, decimals)); +} + +async function fetchCustodyAccounts( + perpClient: PerpetualsClient, + poolConfig: PoolConfig, + targetSymbol: string, + collateralSymbol: string, +) { + const targetConfig = poolConfig.custodies.find( + (c) => c.symbol === targetSymbol, + ); + const collateralConfig = poolConfig.custodies.find( + (c) => c.symbol === collateralSymbol, + ); + + if (!targetConfig || !collateralConfig) { + throw new Error("Custody configuration not found"); + } + + const accounts = await perpClient.provider.connection.getMultipleAccountsInfo( + [targetConfig.custodyAccount, collateralConfig.custodyAccount], + ); + + if (!accounts[0] || !accounts[1]) { + throw new Error("Failed to fetch custody accounts"); + } + + return { + targetCustody: CustodyAccount.from( + targetConfig.custodyAccount, + perpClient.program.coder.accounts.decode( + "custody", + accounts[0].data, + ), + ), + collateralCustody: CustodyAccount.from( + collateralConfig.custodyAccount, + perpClient.program.coder.accounts.decode( + "custody", + accounts[1].data, + ), + ), + }; +} + +function calculatePositionSize( + perpClient: PerpetualsClient, + collateralAmount: BN, + leverage: BN, + targetToken: any, + collateralToken: any, + side: "long" | "short", + targetPrice: OraclePrice, + collateralPrice: OraclePrice, + targetCustody: CustodyAccount, + collateralCustody: CustodyAccount, +): BN { + return perpClient.getSizeAmountFromLeverageAndCollateral( + collateralAmount, + leverage.toString(), + targetToken, + collateralToken, + side === "long" ? Side.Long : Side.Short, + targetPrice, + targetPrice, + targetCustody, + collateralPrice, + collateralPrice, + collateralCustody, + ); +} 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 b9f7542..1930718 100644 --- a/src/tools/index.ts +++ b/src/tools/index.ts @@ -1,54 +1,47 @@ -export * from "./request_faucet_funds"; -export * from "./deploy_token"; +export * from "./adrena_perp_trading"; +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 "./manifest_trade"; +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 "./trade"; +export * from "./transfer"; +export * from "./flash_open_trade"; +export * from "./flash_close_trade"; diff --git a/src/tools/limit_order.ts b/src/tools/limit_order.ts deleted file mode 100644 index ad05bf6..0000000 --- a/src/tools/limit_order.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { - PublicKey, - Transaction, - sendAndConfirmTransaction, - TransactionInstruction, -} from "@solana/web3.js"; -import { SolanaAgentKit } from "../index"; -import { - ManifestClient, - WrapperPlaceOrderParamsExternal, -} from "@cks-systems/manifest-sdk"; -import { OrderType } from "@cks-systems/manifest-sdk/client/ts/src/wrapper/types/OrderType"; - -/** - * Place limit orders using Manifest - * @param agent SolanaAgentKit instance - * @param marketId Public key for the manifest market - * @param quantity Amount to trade in tokens - * @param side Buy or Sell - * @param price Price in tokens ie. SOL/USDC - * @returns Transaction signature - */ -export async function limitOrder( - agent: SolanaAgentKit, - marketId: PublicKey, - quantity: number, - side: string, - price: number, -): Promise { - try { - const mfxClient = await ManifestClient.getClientForMarket( - agent.connection, - marketId, - agent.wallet, - ); - - const orderParams: WrapperPlaceOrderParamsExternal = { - numBaseTokens: quantity, - tokenPrice: price, - isBid: side === "Buy", - lastValidSlot: 0, - orderType: OrderType.Limit, - clientOrderId: Number(Math.random() * 1000), - }; - - const depositPlaceOrderIx: TransactionInstruction[] = - await mfxClient.placeOrderWithRequiredDepositIx( - agent.wallet.publicKey, - orderParams, - ); - const signature = await sendAndConfirmTransaction( - agent.connection, - new Transaction().add(...depositPlaceOrderIx), - [agent.wallet], - ); - - return signature; - } catch (error: any) { - throw new Error(`Limit Order failed: ${error.message}`); - } -} diff --git a/src/tools/manifest_create_market.ts b/src/tools/manifest_create_market.ts deleted file mode 100644 index e0960f4..0000000 --- a/src/tools/manifest_create_market.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { ManifestClient } from "@cks-systems/manifest-sdk"; -import { - Keypair, - PublicKey, - sendAndConfirmTransaction, - SystemProgram, - Transaction, - TransactionInstruction, -} from "@solana/web3.js"; -import { SolanaAgentKit } from "../index"; - -export async function manifestCreateMarket( - agent: SolanaAgentKit, - baseMint: PublicKey, - quoteMint: PublicKey, -): Promise { - const marketKeypair: Keypair = Keypair.generate(); - const FIXED_MANIFEST_HEADER_SIZE: number = 256; - const createAccountIx: TransactionInstruction = SystemProgram.createAccount({ - fromPubkey: agent.wallet.publicKey, - newAccountPubkey: marketKeypair.publicKey, - space: FIXED_MANIFEST_HEADER_SIZE, - lamports: await agent.connection.getMinimumBalanceForRentExemption( - FIXED_MANIFEST_HEADER_SIZE, - ), - programId: new PublicKey("MNFSTqtC93rEfYHB6hF82sKdZpUDFWkViLByLd1k1Ms"), - }); - const createMarketIx = ManifestClient["createMarketIx"]( - agent.wallet.publicKey, - baseMint, - quoteMint, - marketKeypair.publicKey, - ); - - const tx: Transaction = new Transaction(); - tx.add(createAccountIx); - tx.add(createMarketIx); - const signature = await sendAndConfirmTransaction(agent.connection, tx, [ - agent.wallet, - marketKeypair, - ]); - return [signature, marketKeypair.publicKey.toBase58()]; -} diff --git a/src/tools/manifest_trade.ts b/src/tools/manifest_trade.ts new file mode 100644 index 0000000..e65aef7 --- /dev/null +++ b/src/tools/manifest_trade.ts @@ -0,0 +1,295 @@ +import { + ManifestClient, + OrderType, + WrapperPlaceOrderParamsExternal, +} from "@cks-systems/manifest-sdk"; +import { + Keypair, + PublicKey, + sendAndConfirmTransaction, + SystemProgram, + Transaction, + TransactionInstruction, +} from "@solana/web3.js"; +import { BatchOrderPattern, OrderParams, SolanaAgentKit } from "../index"; + +export async function manifestCreateMarket( + agent: SolanaAgentKit, + baseMint: PublicKey, + quoteMint: PublicKey, +): Promise { + const marketKeypair: Keypair = Keypair.generate(); + const FIXED_MANIFEST_HEADER_SIZE: number = 256; + const createAccountIx: TransactionInstruction = SystemProgram.createAccount({ + fromPubkey: agent.wallet.publicKey, + newAccountPubkey: marketKeypair.publicKey, + space: FIXED_MANIFEST_HEADER_SIZE, + lamports: await agent.connection.getMinimumBalanceForRentExemption( + FIXED_MANIFEST_HEADER_SIZE, + ), + programId: new PublicKey("MNFSTqtC93rEfYHB6hF82sKdZpUDFWkViLByLd1k1Ms"), + }); + const createMarketIx = ManifestClient["createMarketIx"]( + agent.wallet.publicKey, + baseMint, + quoteMint, + marketKeypair.publicKey, + ); + + const tx: Transaction = new Transaction(); + tx.add(createAccountIx); + tx.add(createMarketIx); + const signature = await sendAndConfirmTransaction(agent.connection, tx, [ + agent.wallet, + marketKeypair, + ]); + return [signature, marketKeypair.publicKey.toBase58()]; +} + +/** + * Place limit orders using Manifest + * @param agent SolanaAgentKit instance + * @param marketId Public key for the manifest market + * @param quantity Amount to trade in tokens + * @param side Buy or Sell + * @param price Price in tokens ie. SOL/USDC + * @returns Transaction signature + */ +export async function limitOrder( + agent: SolanaAgentKit, + marketId: PublicKey, + quantity: number, + side: string, + price: number, +): Promise { + try { + const mfxClient = await ManifestClient.getClientForMarket( + agent.connection, + marketId, + agent.wallet, + ); + + const orderParams: WrapperPlaceOrderParamsExternal = { + numBaseTokens: quantity, + tokenPrice: price, + isBid: side === "Buy", + lastValidSlot: 0, + orderType: OrderType.Limit, + clientOrderId: Number(Math.random() * 1000), + }; + + const depositPlaceOrderIx: TransactionInstruction[] = + await mfxClient.placeOrderWithRequiredDepositIx( + agent.wallet.publicKey, + orderParams, + ); + const signature = await sendAndConfirmTransaction( + agent.connection, + new Transaction().add(...depositPlaceOrderIx), + [agent.wallet], + ); + + return signature; + } catch (error: any) { + throw new Error(`Limit Order failed: ${error.message}`); + } +} + +/** + * Cancels all orders from Manifest + * @param agent SolanaAgentKit instance + * @param marketId Public key for the manifest market + * @returns Transaction signature + */ +export async function cancelAllOrders( + agent: SolanaAgentKit, + marketId: PublicKey, +): Promise { + try { + const mfxClient = await ManifestClient.getClientForMarket( + agent.connection, + marketId, + agent.wallet, + ); + + const cancelAllOrdersIx = await mfxClient.cancelAllIx(); + const signature = await sendAndConfirmTransaction( + agent.connection, + new Transaction().add(cancelAllOrdersIx), + [agent.wallet], + ); + + return signature; + } catch (error: any) { + throw new Error(`Cancel all orders failed: ${error.message}`); + } +} + +/** + * Withdraws all funds from Manifest + * @param agent SolanaAgentKit instance + * @param marketId Public key for the manifest market + * @returns Transaction signature + */ +export async function withdrawAll( + agent: SolanaAgentKit, + marketId: PublicKey, +): Promise { + try { + const mfxClient = await ManifestClient.getClientForMarket( + agent.connection, + marketId, + agent.wallet, + ); + + const withdrawAllIx = await mfxClient.withdrawAllIx(); + const signature = await sendAndConfirmTransaction( + agent.connection, + new Transaction().add(...withdrawAllIx), + [agent.wallet], + ); + + return signature; + } catch (error: any) { + throw new Error(`Withdraw all failed: ${error.message}`); + } +} + +/** + * 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/orca_open_centered_position_with_liquidity.ts b/src/tools/orca_open_centered_position_with_liquidity.ts index dfe8ee3..63a8972 100644 --- a/src/tools/orca_open_centered_position_with_liquidity.ts +++ b/src/tools/orca_open_centered_position_with_liquidity.ts @@ -26,7 +26,7 @@ import { TOKEN_2022_PROGRAM_ID } from "@solana/spl-token"; * # Opens a Centered Liquidity Position in an Orca Whirlpool * * This function opens a centered liquidity position in a specified Orca Whirlpool. The user defines - * a basis point (bps) offset from the cuurent price of the pool to set the lower and upper bounds of the position. + * a basis point (bps) offset from the current price of the pool to set the lower and upper bounds of the position. * The user also specifies the token mint and the amount to deposit. The required amount of the other token * is calculated automatically. * 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/tools/withdraw_all.ts b/src/tools/withdraw_all.ts deleted file mode 100644 index 99e3bc1..0000000 --- a/src/tools/withdraw_all.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { - PublicKey, - sendAndConfirmTransaction, - Transaction, -} from "@solana/web3.js"; -import { SolanaAgentKit } from "../index"; -import { ManifestClient } from "@cks-systems/manifest-sdk"; - -/** - * Withdraws all funds from Manifest - * @param agent SolanaAgentKit instance - * @param marketId Public key for the manifest market - * @returns Transaction signature - */ -export async function withdrawAll( - agent: SolanaAgentKit, - marketId: PublicKey, -): Promise { - try { - const mfxClient = await ManifestClient.getClientForMarket( - agent.connection, - marketId, - agent.wallet, - ); - - const withdrawAllIx = await mfxClient.withdrawAllIx(); - const signature = await sendAndConfirmTransaction( - agent.connection, - new Transaction().add(...withdrawAllIx), - [agent.wallet], - ); - - return signature; - } catch (error: any) { - throw new Error(`Withdraw all failed: ${error.message}`); - } -} diff --git a/src/types/index.ts b/src/types/index.ts index 6d31949..71dab5d 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,85 @@ 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; +} + +export interface FlashTradeParams { + token: string; + side: "long" | "short"; + collateralUsd: number; + leverage: number; +} + +export interface FlashCloseTradeParams { + token: string; + side: "long" | "short"; +} diff --git a/src/utils/AdrenaClient.ts b/src/utils/AdrenaClient.ts new file mode 100644 index 0000000..410165d --- /dev/null +++ b/src/utils/AdrenaClient.ts @@ -0,0 +1,220 @@ +import { Connection, PublicKey } from "@solana/web3.js"; +import { SolanaAgentKit } from "../index"; +import { AnchorProvider, IdlAccounts, Program } from "@coral-xyz/anchor"; +import { Adrena, IDL as ADRENA_IDL } from "../idls/adrena"; + +import NodeWallet from "@coral-xyz/anchor/dist/cjs/nodewallet"; +import { + ASSOCIATED_TOKEN_PROGRAM_ID, + createAssociatedTokenAccountInstruction, + TOKEN_PROGRAM_ID, +} from "@solana/spl-token"; +import { TOKENS } from "../constants"; + +export type AdrenaProgram = Program; + +type Accounts = IdlAccounts; + +export type Cortex = Accounts["cortex"]; +export type Custody = Accounts["custody"] & { pubkey: PublicKey }; +export type Pool = Accounts["pool"]; + +export default class AdrenaClient { + public static programId = new PublicKey( + "13gDzEXCdocbj8iAiqrScGo47NiSuYENGsRqi3SEAwet", + ); + + constructor( + public program: AdrenaProgram, + public mainPool: Pool, + public cortex: Cortex, + public custodies: Custody[], + ) {} + + public static mainPool = new PublicKey( + "4bQRutgDJs6vuh6ZcWaPVXiQaBzbHketjbCDjL4oRN34", + ); + + public static async load(agent: SolanaAgentKit): Promise { + const program = new Program( + ADRENA_IDL, + AdrenaClient.programId, + new AnchorProvider(agent.connection, new NodeWallet(agent.wallet), { + commitment: "processed", + skipPreflight: true, + }), + ); + + const [cortex, mainPool] = await Promise.all([ + program.account.cortex.fetch(AdrenaClient.cortex), + program.account.pool.fetch(AdrenaClient.mainPool), + ]); + + const custodiesAddresses = mainPool.custodies.filter( + (custody) => !custody.equals(PublicKey.default), + ); + + const custodies = + await program.account.custody.fetchMultiple(custodiesAddresses); + + if (!custodies.length || custodies.some((c) => c === null)) { + throw new Error("Custodies not found"); + } + + return new AdrenaClient( + program, + mainPool, + cortex, + (custodies as Custody[]).map((c, i) => ({ + ...c, + pubkey: custodiesAddresses[i], + })), + ); + } + + public static findCustodyAddress(mint: PublicKey): PublicKey { + return PublicKey.findProgramAddressSync( + [ + Buffer.from("custody"), + AdrenaClient.mainPool.toBuffer(), + mint.toBuffer(), + ], + AdrenaClient.programId, + )[0]; + } + + public static findCustodyTokenAccountAddress(mint: PublicKey) { + return PublicKey.findProgramAddressSync( + [ + Buffer.from("custody_token_account"), + AdrenaClient.mainPool.toBuffer(), + mint.toBuffer(), + ], + AdrenaClient.programId, + )[0]; + } + + public static findPositionAddress( + owner: PublicKey, + custody: PublicKey, + side: "long" | "short", + ) { + return PublicKey.findProgramAddressSync( + [ + Buffer.from("position"), + owner.toBuffer(), + AdrenaClient.mainPool.toBuffer(), + custody.toBuffer(), + Buffer.from([ + { + long: 1, + short: 2, + }[side], + ]), + ], + AdrenaClient.programId, + )[0]; + } + + public static cortex = PublicKey.findProgramAddressSync( + [Buffer.from("cortex")], + AdrenaClient.programId, + )[0]; + + public static lpTokenMint = PublicKey.findProgramAddressSync( + [Buffer.from("lp_token_mint"), AdrenaClient.mainPool.toBuffer()], + AdrenaClient.programId, + )[0]; + + public static lmTokenMint = PublicKey.findProgramAddressSync( + [Buffer.from("lm_token_mint")], + AdrenaClient.programId, + )[0]; + + public static getStakingPda(stakedTokenMint: PublicKey) { + return PublicKey.findProgramAddressSync( + [Buffer.from("staking"), stakedTokenMint.toBuffer()], + AdrenaClient.programId, + )[0]; + } + + public static lmStaking = AdrenaClient.getStakingPda( + AdrenaClient.lmTokenMint, + ); + + public static lpStaking = AdrenaClient.getStakingPda( + AdrenaClient.lpTokenMint, + ); + + public static transferAuthority = PublicKey.findProgramAddressSync( + [Buffer.from("transfer_authority")], + AdrenaClient.programId, + )[0]; + + public static findATAAddressSync( + wallet: PublicKey, + mint: PublicKey, + ): PublicKey { + return PublicKey.findProgramAddressSync( + [wallet.toBuffer(), TOKEN_PROGRAM_ID.toBuffer(), mint.toBuffer()], + ASSOCIATED_TOKEN_PROGRAM_ID, + )[0]; + } + + public getCustodyByMint(mint: PublicKey): Custody { + const custody = this.custodies.find((custody) => custody.mint.equals(mint)); + + if (!custody) { + throw new Error(`Cannot find custody for mint ${mint.toBase58()}`); + } + + return custody; + } + + public static getUserProfilePda(wallet: PublicKey) { + return PublicKey.findProgramAddressSync( + [Buffer.from("user_profile"), wallet.toBuffer()], + AdrenaClient.programId, + )[0]; + } + + public static stakingRewardTokenMint = TOKENS.USDC; + + public static getStakingRewardTokenVaultPda(stakingPda: PublicKey) { + return PublicKey.findProgramAddressSync( + [Buffer.from("staking_reward_token_vault"), stakingPda.toBuffer()], + AdrenaClient.programId, + )[0]; + } + + public static lmStakingRewardTokenVault = + AdrenaClient.getStakingRewardTokenVaultPda(AdrenaClient.lmStaking); + public static lpStakingRewardTokenVault = + AdrenaClient.getStakingRewardTokenVaultPda(AdrenaClient.lpStaking); + + public static async isAccountInitialized( + connection: Connection, + address: PublicKey, + ): Promise { + return !!(await connection.getAccountInfo(address)); + } + + public static createATAInstruction({ + ataAddress, + mint, + owner, + payer = owner, + }: { + ataAddress: PublicKey; + mint: PublicKey; + owner: PublicKey; + payer?: PublicKey; + }) { + return createAssociatedTokenAccountInstruction( + payer, + ataAddress, + owner, + mint, + ); + } +} diff --git a/src/utils/flashUtils.ts b/src/utils/flashUtils.ts new file mode 100644 index 0000000..34e89a7 --- /dev/null +++ b/src/utils/flashUtils.ts @@ -0,0 +1,280 @@ +import { HermesClient } from "@pythnetwork/hermes-client"; +import { OraclePrice } from "flash-sdk"; +import { AnchorProvider, BN, Wallet } from "@coral-xyz/anchor"; +import { PoolConfig, Token, Referral, PerpetualsClient } from "flash-sdk"; +import { Cluster, PublicKey, Connection, Keypair } from "@solana/web3.js"; +import { getAssociatedTokenAddressSync } from "@solana/spl-token"; + +const POOL_NAMES = [ + "Crypto.1", + "Virtual.1", + "Governance.1", + "Community.1", + "Community.2", + "Community.3", +]; + +const DEFAULT_CLUSTER: Cluster = "mainnet-beta"; +export const POOL_CONFIGS = POOL_NAMES.map((f) => + PoolConfig.fromIdsByName(f, DEFAULT_CLUSTER), +); + +const DUPLICATE_TOKENS = POOL_CONFIGS.map((f) => f.tokens).flat(); +const tokenMap = new Map(); +for (const token of DUPLICATE_TOKENS) { + tokenMap.set(token.symbol, token); +} +export const ALL_TOKENS: Token[] = Array.from(tokenMap.values()); +export const ALL_CUSTODIES = POOL_CONFIGS.map((f) => f.custodies).flat(); +const PROGRAM_ID = POOL_CONFIGS[0].programId; + +// CU for trade instructions +export const OPEN_POSITION_CU = 150_000; +export const CLOSE_POSITION_CU = 180_000; + +const HERMES_URL = "https://hermes.pyth.network"; // Replace with the actual Hermes URL if different + +// Create a map of symbol to Pyth price ID +const PRICE_FEED_IDS = ALL_TOKENS.reduce( + (acc, token) => { + acc[token.symbol] = token.pythPriceId; + return acc; + }, + {} as { [key: string]: string }, +); + +const hermesClient = new HermesClient(HERMES_URL, {}); + +export interface PythPriceEntry { + price: OraclePrice; + emaPrice: OraclePrice; + isStale: boolean; + status: PriceStatus; +} + +export enum PriceStatus { + Trading, + Unknown, + Halted, + Auction, +} + +export const fetchOraclePrice = async ( + symbol: string, +): Promise => { + const priceFeedId = PRICE_FEED_IDS[symbol]; + if (!priceFeedId) { + throw new Error(`Price feed ID not found for symbol: ${symbol}`); + } + + try { + const hermesPriceFeed = await hermesClient.getPriceFeeds({ + query: symbol, + filter: "crypto", + }); + + if (!hermesPriceFeed || hermesPriceFeed.length === 0) { + throw new Error(`No price feed received for ${symbol}`); + } + + const hemrmesPriceUdpate = await hermesClient.getLatestPriceUpdates( + [priceFeedId], + { + encoding: "hex", + parsed: true, + }, + ); + + if (!hemrmesPriceUdpate.parsed) { + throw new Error(`No price feed received for ${symbol}`); + } + const hermesEma = hemrmesPriceUdpate.parsed[0].ema_price; + const hermesPrice = hemrmesPriceUdpate.parsed[0].price; + + const hermesPriceOracle = new OraclePrice({ + price: new BN(hermesPrice.price), + exponent: new BN(hermesPrice.expo), + confidence: new BN(hermesPrice.conf), + timestamp: new BN(hermesPrice.publish_time), + }); + + const hermesEmaOracle = new OraclePrice({ + price: new BN(hermesEma.price), + exponent: new BN(hermesEma.expo), + confidence: new BN(hermesEma.conf), + timestamp: new BN(hermesEma.publish_time), + }); + + const token = ALL_TOKENS.find((t) => t.pythPriceId === priceFeedId); + if (!token) { + throw new Error(`Token not found for price feed ID: ${priceFeedId}`); + } + + const status = !token.isVirtual ? PriceStatus.Trading : PriceStatus.Unknown; + + const pythPriceEntry: PythPriceEntry = { + price: hermesPriceOracle, + emaPrice: hermesEmaOracle, + isStale: false, + status: status, + }; + + return pythPriceEntry; + } catch (error) { + console.error(`Error in fetchOraclePrice for ${symbol}:`, error); + throw error; + } +}; + +export interface MarketInfo { + [key: string]: { + tokenPair: string; + token: string; + side: string; + pool: string; + }; +} + +const marketSdkInfo: MarketInfo = {}; + +// Loop through POOL_CONFIGS to process each market +POOL_CONFIGS.forEach((poolConfig) => { + poolConfig.markets.forEach((market) => { + const targetToken = ALL_TOKENS.find( + (token) => token.mintKey.toString() === market.targetMint.toString(), + ); + + // Find collateral token by matching mintKey + const collateralToken = ALL_TOKENS.find( + (token) => token.mintKey.toString() === market.collateralMint.toString(), + ); + + if (targetToken?.symbol && collateralToken?.symbol) { + marketSdkInfo[market.marketAccount.toString()] = { + tokenPair: `${targetToken.symbol}/${collateralToken.symbol}`, + token: targetToken.symbol, + side: Object.keys(market.side)[0], + pool: poolConfig.poolName, + }; + } + }); +}); + +export { marketSdkInfo }; + +export interface MarketTokenSides { + [token: string]: { + long?: { marketID: string }; + short?: { marketID: string }; + }; +} + +const marketTokenMap: MarketTokenSides = {}; + +// Convert marketSdkInfo into marketTokenMap +Object.entries(marketSdkInfo).forEach(([marketID, info]) => { + if (!marketTokenMap[info.token]) { + marketTokenMap[info.token] = {}; + } + + marketTokenMap[info.token][info.side.toLowerCase() as "long" | "short"] = { + marketID, + }; +}); + +export { marketTokenMap }; + +interface TradingAccountResult { + nftReferralAccountPK: PublicKey | null; + nftTradingAccountPk: PublicKey | null; + nftOwnerRebateTokenAccountPk: PublicKey | null; +} + +export async function getNftTradingAccountInfo( + userPublicKey: PublicKey, + perpClient: PerpetualsClient, + poolConfig: PoolConfig, + collateralCustodySymbol: string, +): Promise { + const getNFTReferralAccountPK = (publicKey: PublicKey) => { + return PublicKey.findProgramAddressSync( + [Buffer.from("referral"), publicKey.toBuffer()], + PROGRAM_ID, + )[0]; + }; + const nftReferralAccountPK = getNFTReferralAccountPK(userPublicKey); + const nftReferralAccountInfo = + await perpClient.provider.connection.getAccountInfo(nftReferralAccountPK); + + let nftTradingAccountPk: PublicKey | null = null; + let nftOwnerRebateTokenAccountPk: PublicKey | null = null; + + if (nftReferralAccountInfo) { + const nftReferralAccountData = perpClient.program.coder.accounts.decode( + "referral", + nftReferralAccountInfo.data, + ) as Referral; + + nftTradingAccountPk = nftReferralAccountData.refererTradingAccount; + + if (nftTradingAccountPk) { + const nftTradingAccountInfo = + await perpClient.provider.connection.getAccountInfo( + nftTradingAccountPk, + ); + if (nftTradingAccountInfo) { + const nftTradingAccount = perpClient.program.coder.accounts.decode( + "trading", + nftTradingAccountInfo.data, + ) as { owner: PublicKey }; + + nftOwnerRebateTokenAccountPk = getAssociatedTokenAddressSync( + poolConfig.getTokenFromSymbol(collateralCustodySymbol).mintKey, + nftTradingAccount.owner, + ); + // Check if the account exists + const accountExists = + await perpClient.provider.connection.getAccountInfo( + nftOwnerRebateTokenAccountPk, + ); + if (!accountExists) { + console.error( + "NFT owner rebate token account does not exist and may need to be created", + ); + } + } + } + } + + return { + nftReferralAccountPK, + nftTradingAccountPk, + nftOwnerRebateTokenAccountPk, + }; +} + +/** + * Creates a new PerpetualsClient instance with the given connection and wallet + * @param connection Solana connection + * @param wallet Solana wallet + * @returns PerpetualsClient instance + */ +export function createPerpClient( + connection: Connection, + wallet: Keypair, +): PerpetualsClient { + const provider = new AnchorProvider(connection, new Wallet(wallet), { + commitment: "confirmed", + preflightCommitment: "confirmed", + skipPreflight: true, + }); + + return new PerpetualsClient( + provider, + POOL_CONFIGS[0].programId, + POOL_CONFIGS[0].perpComposibilityProgramId, + POOL_CONFIGS[0].fbNftRewardProgramId, + POOL_CONFIGS[0].rewardDistributionProgram.programId, + {}, + ); +} 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/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"] +}