diff --git a/package.json b/package.json index 1b70f2618..91ebff24c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@velora-dex/sdk", - "version": "10.4.0", + "version": "11.0.0", "main": "dist/index.js", "module": "dist/sdk.esm.js", "typings": "dist/index.d.ts", @@ -65,7 +65,7 @@ "@types/node": "^22.8.5", "@wagmi/connectors": "^8.0.13", "@wagmi/core": "^3.4.11", - "axios": "^1.13.2", + "axios": "^1.20.0", "bignumber.js": "^9.1.2", "dotenv": "^16.4.5", "dts-cli": "^2.0.5", @@ -77,11 +77,11 @@ "isomorphic-unfetch": "^4.0.2", "size-limit": "^12.1.0", "tslib": "^2.8.1", - "typedoc": "^0.26.11", - "typedoc-plugin-markdown": "^4.2.10", - "typedoc-plugin-missing-exports": "^3.0.0", - "typedoc-plugin-replace-text": "^4.0.0", - "typescript": "^5.6.3", + "typedoc": "^0.28.20", + "typedoc-plugin-markdown": "^4.13.0", + "typedoc-plugin-missing-exports": "^4.1.4", + "typedoc-plugin-replace-text": "^4.2.0", + "typescript": "^5.9.3", "web3": "^4.14.0", "web3-eth-contract": "4.7.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 57aefeb46..027b94bf3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,10 +22,10 @@ importers: version: 2.4.3 ts-essentials: specifier: ^10.0.3 - version: 10.0.3(typescript@5.6.3) + version: 10.0.3(typescript@5.9.3) viem: specifier: ^2.21.0 - version: 2.39.0(typescript@5.6.3)(zod@3.25.76) + version: 2.56.1(typescript@5.9.3)(zod@3.25.76) devDependencies: '@ethersproject/abstract-signer': specifier: ^5.8.0 @@ -53,13 +53,13 @@ importers: version: 22.8.5 '@wagmi/connectors': specifier: ^8.0.13 - version: 8.0.13(@wagmi/core@3.4.11(typescript@5.6.3)(viem@2.39.0(typescript@5.6.3)(zod@3.25.76)))(typescript@5.6.3)(viem@2.39.0(typescript@5.6.3)(zod@3.25.76)) + version: 8.0.13(@wagmi/core@3.4.11(typescript@5.9.3)(viem@2.56.1(typescript@5.9.3)(zod@3.25.76)))(typescript@5.9.3)(viem@2.56.1(typescript@5.9.3)(zod@3.25.76)) '@wagmi/core': specifier: ^3.4.11 - version: 3.4.11(typescript@5.6.3)(viem@2.39.0(typescript@5.6.3)(zod@3.25.76)) + version: 3.4.11(typescript@5.9.3)(viem@2.56.1(typescript@5.9.3)(zod@3.25.76)) axios: - specifier: ^1.13.2 - version: 1.16.0 + specifier: ^1.20.0 + version: 1.20.0 bignumber.js: specifier: ^9.1.2 version: 9.1.2 @@ -77,10 +77,10 @@ importers: version: ethers@5.8.0 hardhat: specifier: ^2.28.0 - version: 2.28.0(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3))(typescript@5.6.3) + version: 2.28.0(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3))(typescript@5.9.3) hardhat-switch-network: specifier: ^1.2.1 - version: 1.2.1(hardhat@2.28.0(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3))(typescript@5.6.3)) + version: 1.2.1(hardhat@2.28.0(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3))(typescript@5.9.3)) husky: specifier: ^9.1.6 version: 9.1.6 @@ -94,26 +94,26 @@ importers: specifier: ^2.8.1 version: 2.8.1 typedoc: - specifier: ^0.26.11 - version: 0.26.11(typescript@5.6.3) + specifier: ^0.28.20 + version: 0.28.20(typescript@5.9.3) typedoc-plugin-markdown: - specifier: ^4.2.10 - version: 4.2.10(typedoc@0.26.11(typescript@5.6.3)) + specifier: ^4.13.0 + version: 4.13.0(typedoc@0.28.20(typescript@5.9.3)) typedoc-plugin-missing-exports: - specifier: ^3.0.0 - version: 3.0.0(typedoc@0.26.11(typescript@5.6.3)) + specifier: ^4.1.4 + version: 4.1.4(typedoc@0.28.20(typescript@5.9.3)) typedoc-plugin-replace-text: - specifier: ^4.0.0 - version: 4.0.0(typedoc@0.26.11(typescript@5.6.3)) + specifier: ^4.2.0 + version: 4.2.0(typedoc@0.28.20(typescript@5.9.3)) typescript: - specifier: ^5.6.3 - version: 5.6.3 + specifier: ^5.9.3 + version: 5.9.3 web3: specifier: ^4.14.0 - version: 4.14.0(typescript@5.6.3)(zod@3.25.76) + version: 4.14.0(typescript@5.9.3)(zod@3.25.76) web3-eth-contract: specifier: 4.7.0 - version: 4.7.0(typescript@5.6.3)(zod@3.25.76) + version: 4.7.0(typescript@5.9.3)(zod@3.25.76) packages: @@ -131,6 +131,10 @@ packages: resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.26.2': resolution: {integrity: sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==} engines: {node: '>=6.9.0'} @@ -143,10 +147,18 @@ packages: resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==} engines: {node: '>=6.9.0'} + '@babel/generator@7.29.8': + resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.27.3': resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.29.7': + resolution: {integrity: sha512-OoK6239jHPuSQOoS0kfTVKn0b/rVTk0seKq4Gd2UMLtmOVLjDC0ki3e+c90Trqv2gMfvJFqkiljrr568+qddiw==} + engines: {node: '>=6.9.0'} + '@babel/helper-builder-binary-assignment-operator-visitor@7.25.9': resolution: {integrity: sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==} engines: {node: '>=6.9.0'} @@ -176,6 +188,10 @@ packages: resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} engines: {node: '>=6.9.0'} + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} + engines: {node: '>=6.9.0'} + '@babel/helper-member-expression-to-functions@7.25.9': resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} engines: {node: '>=6.9.0'} @@ -184,6 +200,10 @@ packages: resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.29.7': + resolution: {integrity: sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.26.0': resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} @@ -204,6 +224,10 @@ packages: resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==} engines: {node: '>=6.9.0'} + '@babel/helper-plugin-utils@7.29.7': + resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==} + engines: {node: '>=6.9.0'} + '@babel/helper-remap-async-to-generator@7.25.9': resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} engines: {node: '>=6.9.0'} @@ -228,10 +252,18 @@ packages: resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.28.5': resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.25.9': resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} @@ -249,6 +281,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.29.8': + resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} engines: {node: '>=6.9.0'} @@ -347,6 +384,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.29.7': + resolution: {integrity: sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -726,14 +769,26 @@ packages: resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} + engines: {node: '>=6.9.0'} + '@babel/traverse@7.29.0': resolution: {integrity: sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.29.8': + resolution: {integrity: sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==} + engines: {node: '>=6.9.0'} + '@babel/types@7.29.0': resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} + '@babel/types@7.29.8': + resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} + engines: {node: '>=6.9.0'} + '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} @@ -1019,6 +1074,9 @@ packages: '@ethersproject/wordlists@5.8.0': resolution: {integrity: sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg==} + '@gerrit0/mini-shiki@3.23.0': + resolution: {integrity: sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg==} + '@humanwhocodes/config-array@0.13.0': resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} @@ -1398,20 +1456,20 @@ packages: resolution: {integrity: sha512-zaYmoH0NWWtvnJjC9/CBseXMtKHm/tm40sz3YfJRxeQjyzRqNQPgivpd9R/oDJCYj999mzdW382p/qi2ypjLww==} engines: {node: '>=6'} - '@shikijs/core@1.22.2': - resolution: {integrity: sha512-bvIQcd8BEeR1yFvOYv6HDiyta2FFVePbzeowf5pPS1avczrPK+cjmaxxh0nx5QzbON7+Sv0sQfQVciO7bN72sg==} + '@shikijs/engine-oniguruma@3.23.0': + resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} - '@shikijs/engine-javascript@1.22.2': - resolution: {integrity: sha512-iOvql09ql6m+3d1vtvP8fLCVCK7BQD1pJFmHIECsujB0V32BJ0Ab6hxk1ewVSMFA58FI0pR2Had9BKZdyQrxTw==} + '@shikijs/langs@3.23.0': + resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} - '@shikijs/engine-oniguruma@1.22.2': - resolution: {integrity: sha512-GIZPAGzQOy56mGvWMoZRPggn0dTlBf1gutV5TdceLCZlFNqWmuc7u+CzD0Gd9vQUTgLbrt0KLzz6FNprqYAxlA==} + '@shikijs/themes@3.23.0': + resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} - '@shikijs/types@1.22.2': - resolution: {integrity: sha512-NCWDa6LGZqTuzjsGfXOBWfjS/fDIbDdmVDug+7ykVe1IKT4c1gakrvlfFYp5NhAXH/lyqLM8wsAPo5wNy73Feg==} + '@shikijs/types@3.23.0': + resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} - '@shikijs/vscode-textmate@9.3.0': - resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -1509,9 +1567,6 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@types/minimatch@5.1.2': resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} @@ -1672,19 +1727,8 @@ packages: zod: optional: true - abitype@1.1.0: - resolution: {integrity: sha512-6Vh4HcRxNMLA0puzPjM5GBgT4aAcFGKZzSgAXvuZ27shJP6NEpielTuqbBmZILR5/xd0PizkBGy5hReKz9jl5A==} - peerDependencies: - typescript: '>=5.0.4' - zod: ^3.22.0 || ^4.0.0 - peerDependenciesMeta: - typescript: - optional: true - zod: - optional: true - - abitype@1.1.1: - resolution: {integrity: sha512-Loe5/6tAgsBukY95eGaPSDmQHIjRZYQq8PB1MpsNccDIK8WiV+Uw6WzaIXipvaxTEL2yEB0OpEaQv3gs8pkS9Q==} + abitype@1.2.3: + resolution: {integrity: sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==} peerDependencies: typescript: '>=5.0.4' zod: ^3.22.0 || ^4.0.0 @@ -1848,8 +1892,8 @@ packages: resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} engines: {node: '>=4'} - axios@1.16.0: - resolution: {integrity: sha512-6hp5CwvTPlN2A31g5dxnwAX0orzM7pmCRDLnZSX772mv8WDqICwFjowHuPs04Mc8deIld1+ejhtaMn5vp6b+1w==} + axios@1.20.0: + resolution: {integrity: sha512-r8aOh8j9cGKpgQAqpzrUHnSIc6a59Y3Xf/cv8sy1DrHCkZHzQGEuoq1tARk6qSyDdtQGSDgpb9kFlruzPvrgwg==} axobject-query@4.1.0: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} @@ -1915,6 +1959,10 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} @@ -1947,6 +1995,10 @@ packages: brace-expansion@2.1.0: resolution: {integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==} + brace-expansion@5.0.9: + resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} + engines: {node: 20 || >=22} + braces@3.0.3: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} @@ -2010,9 +2062,6 @@ packages: caniuse-lite@1.0.30001676: resolution: {integrity: sha512-Qz6zwGCiPghQXGJvgQAem79esjitvJ+CxSbSQkW9H/UX5hg8XM88d4lp2W+MEQ81j+Hip58Il+jGVdazk1z9cw==} - ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -2033,12 +2082,6 @@ packages: resolution: {integrity: sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==} engines: {node: '>=12.20'} - 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==} - chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} @@ -2120,9 +2163,6 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - command-exists@1.2.9: resolution: {integrity: sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==} @@ -2226,6 +2266,15 @@ packages: supports-color: optional: true + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decamelize@4.0.0: resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} engines: {node: '>=10'} @@ -2271,10 +2320,6 @@ packages: resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} engines: {node: '>= 0.8'} - dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} - detect-indent@6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} @@ -2283,9 +2328,6 @@ packages: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} - devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2387,6 +2429,10 @@ packages: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} + es-object-atoms@1.1.2: + resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} + engines: {node: '>= 0.4'} + es-set-tostringtag@2.1.0: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} @@ -2586,6 +2632,9 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + eventemitter3@5.0.4: + resolution: {integrity: sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==} + execa@4.1.0: resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} engines: {node: '>=10'} @@ -2693,8 +2742,8 @@ packages: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} - form-data@4.0.5: - resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + form-data@4.0.6: + resolution: {integrity: sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==} engines: {node: '>= 6'} formdata-polyfill@4.0.10: @@ -2872,16 +2921,10 @@ packages: hash.js@1.1.7: resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} - hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + hasown@2.0.4: + resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} - hast-util-to-html@9.0.3: - resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} - - hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true @@ -2896,9 +2939,6 @@ packages: html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - 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'} @@ -3384,6 +3424,11 @@ packages: engines: {node: '>=6'} hasBin: true + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -3452,8 +3497,8 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + linkify-it@5.0.2: + resolution: {integrity: sha512-ONTm2jCMAVZjgQa/Fy1kScXsuOoF5NPTsoFBdE1KVIZ2vAh/r9+Bqo+0jINCBYnavTPQZz38QzFTme79ENoN3Q==} locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} @@ -3520,17 +3565,14 @@ packages: makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - markdown-it@14.1.1: - resolution: {integrity: sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==} + markdown-it@14.3.1: + resolution: {integrity: sha512-4Ej49aYTDFIQ+uBkfX8GBvJGccoARxxPep+7aWTs55ozbjQJpW9M26Fe53vnGgvLeVzva/amzjQQaQu9w0vMhA==} hasBin: true math-intrinsics@1.1.0: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - mdast-util-to-hast@13.2.1: - resolution: {integrity: sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA==} - mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} @@ -3551,21 +3593,6 @@ packages: micro-packed@0.7.3: resolution: {integrity: sha512-2Milxs+WNC00TRlem41oRswvw31146GiSaoCT7s3Xi2gMUglW5QBeqlQaZeHr5tJx9nm3i57LNXPqxOOaWtTYg==} - micromark-util-character@2.1.0: - resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} - - micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} - - micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} - - micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} - - micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} - micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -3592,6 +3619,10 @@ packages: minimalistic-crypto-utils@1.0.1: resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} + minimatch@3.1.5: resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} @@ -3599,10 +3630,6 @@ packages: resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} engines: {node: '>=10'} - minimatch@9.0.9: - resolution: {integrity: sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==} - engines: {node: '>=16 || 14 >=14.17'} - minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -3739,10 +3766,6 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - oniguruma-to-js@0.4.3: - resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==} - deprecated: use oniguruma-to-es instead - optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} @@ -3751,8 +3774,8 @@ packages: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} - ox@0.9.6: - resolution: {integrity: sha512-8SuCbHPvv2eZLYXrNmC0EC12rdzXQLdhnOMlHDW2wiCPLxBrOOJwX5L5E61by+UjTPOryqQiRSnjIKCI+GykKg==} + ox@0.14.34: + resolution: {integrity: sha512-12seOIk7dv8eAoGQhcWaeKZxNz304IVcDvb9U5Y7JZAEVe21Nm1YMxLjhWah+su5BD4Omx4Zz0z5x3ij9M4GYQ==} peerDependencies: typescript: '>=5.4.0' peerDependenciesMeta: @@ -3878,9 +3901,6 @@ packages: prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} - property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - proxy-from-env@2.1.0: resolution: {integrity: sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==} engines: {node: '>=10'} @@ -3918,8 +3938,8 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-is@19.2.6: - resolution: {integrity: sha512-XjBR15BhXuylgWGuslhDKqlSayuqvqBX91BP8pauG8kd1zY8kotkNWbXksTCNRarse4kuGbe2kIY05ARtwNIvw==} + react-is@19.2.8: + resolution: {integrity: sha512-s5un28nYxKJw5gvUHyW5PCC28CvBqLu9r3cWgzHT4Vo/5fqqkFcdRYsGcKf50WMPpjjFZS5d76fn3YCo2njKwQ==} readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} @@ -3954,9 +3974,6 @@ packages: regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - regex@4.3.3: - resolution: {integrity: sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==} - regexp.prototype.flags@1.5.3: resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} engines: {node: '>= 0.4'} @@ -4119,9 +4136,6 @@ packages: engines: {node: '>=4'} hasBin: true - shiki@1.22.2: - resolution: {integrity: sha512-3IZau0NdGKXhH2bBlUk4w1IHNxPh6A5B2sUpyY+8utLu2j/h1QpFkAaUA1bAMxOWWGtTWcAh531vnS4NJKS/lA==} - side-channel@1.0.6: resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} engines: {node: '>= 0.4'} @@ -4179,9 +4193,6 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -4241,9 +4252,6 @@ packages: 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@4.0.0: resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} engines: {node: '>=4'} @@ -4340,9 +4348,6 @@ packages: resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} engines: {node: '>=12'} - trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - ts-essentials@10.0.3: resolution: {integrity: sha512-/FrVAZ76JLTWxJOERk04fm8hYENDo0PWSP3YLQKxevLwWtxemGcl5JJEzN4iqfDlRve0ckyfFaOBu4xbNH/wZw==} peerDependencies: @@ -4450,34 +4455,39 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} - typedoc-plugin-markdown@4.2.10: - resolution: {integrity: sha512-PLX3pc1/7z13UJm4TDE9vo9jWGcClFUErXXtd5LdnoLjV6mynPpqZLU992DwMGFSRqJFZeKbVyqlNNeNHnk2tQ==} + typedoc-plugin-markdown@4.13.0: + resolution: {integrity: sha512-OHaOLoMTS0wL2ud73WXvxv486mrUEtgXxW4iKiTOGJVipT/VBWY76rlVRMQGes7aVonoIf5roWRe1UvHbufLlQ==} engines: {node: '>= 18'} peerDependencies: - typedoc: 0.26.x + typedoc: 0.28.x - typedoc-plugin-missing-exports@3.0.0: - resolution: {integrity: sha512-R7D8fYrK34mBFZSlF1EqJxfqiUSlQSmyrCiQgTQD52nNm6+kUtqwiaqaNkuJ2rA2wBgWFecUA8JzHT7x2r7ePg==} + typedoc-plugin-missing-exports@4.1.4: + resolution: {integrity: sha512-tIay6z6MRb/4+mfWgKNPR6qEM5rz9S8rTiz0JWmSb/66A6AlZIl9q+1lAFygj4n8GHH1fsqKYQNt9JbNcuE0Uw==} peerDependencies: - typedoc: 0.26.x + typedoc: ^0.28.1 - typedoc-plugin-replace-text@4.0.0: - resolution: {integrity: sha512-nl/QJPO3fOfJUTv3gHJhmhs7g3m2k4VfbN9YIQIvKoSC4rsjLUYQHUn/6/lXmDMIY3pTfULyDo78PWQFHxqBSg==} + typedoc-plugin-replace-text@4.2.0: + resolution: {integrity: sha512-vmhpFKg75l0CfHO7n3bdf/wwSWH6hQQxaZTqZ5HDe5Xd40tkk6jkVkP6SWhDhntSIflREQqwneflGJG3bCqPEA==} peerDependencies: - typedoc: 0.26.x + typedoc: 0.26.x || 0.27.x || 0.28.x - typedoc@0.26.11: - resolution: {integrity: sha512-sFEgRRtrcDl2FxVP58Ze++ZK2UQAEvtvvH8rRlig1Ja3o7dDaMHmaBfvJmdGnNEFaLTpQsN8dpvZaTqJSu/Ugw==} - engines: {node: '>= 18'} + typedoc@0.28.20: + resolution: {integrity: sha512-uSKqkh8Cr48vllnEy+jdaAgOeR6Y+QCBW7usgUsKj7gJEfR7stw9U/fE49LBnj2tPRKPY0c0EBJSWe9Appmplg==} + engines: {node: '>= 18', pnpm: '>= 10'} hasBin: true peerDependencies: - typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x + typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x || 6.0.x typescript@5.6.3: resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + uc.micro@2.1.0: resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} @@ -4510,21 +4520,6 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} - unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - - unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - - unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - - unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - - unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} @@ -4571,14 +4566,8 @@ packages: resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} - vfile-message@4.0.2: - resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - - vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - - viem@2.39.0: - resolution: {integrity: sha512-rCN+IfnMESlrg/iPyyVL+M9NS/BHzyyNy72470tFmbTuscY3iPaZGMtJDcHKKV8TC6HV9DjWk0zWX6cpu0juyA==} + viem@2.56.1: + resolution: {integrity: sha512-D+B87QRiACeWV4VOxn4Kwi4obV0fR2wGpX8bHTUlOnud3O8LTUyXvCqC83otmIww2dDv3vCl3V8a9jWApNP7KA==} peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -4780,8 +4769,20 @@ packages: utf-8-validate: optional: true - ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + ws@8.21.0: + resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} + 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 + + ws@8.21.3: + resolution: {integrity: sha512-201TZ/kPWxoPr/OKWjquZR1SWKXcvxdH+e1xrx89b3YbmzLMFCLfnaG1HFIgWzJOEWZ7MvpK++odZufgYR50Rw==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -4864,9 +4865,6 @@ packages: use-sync-external-store: optional: true - zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} - snapshots: '@adraffy/ens-normalize@1.10.1': {} @@ -4884,6 +4882,12 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 + '@babel/code-frame@7.29.7': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.26.2': {} '@babel/core@7.26.0': @@ -4899,7 +4903,7 @@ snapshots: '@babel/traverse': 7.29.0 '@babel/types': 7.29.0 convert-source-map: 2.0.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -4914,10 +4918,22 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.0.2 + '@babel/generator@7.29.8': + dependencies: + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.27.3': dependencies: '@babel/types': 7.29.0 + '@babel/helper-annotate-as-pure@7.29.7': + dependencies: + '@babel/types': 7.29.8 + '@babel/helper-builder-binary-assignment-operator-visitor@7.25.9': dependencies: '@babel/traverse': 7.29.0 @@ -4958,7 +4974,7 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-compilation-targets': 7.25.9 '@babel/helper-plugin-utils': 7.28.6 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -4966,6 +4982,8 @@ snapshots: '@babel/helper-globals@7.28.0': {} + '@babel/helper-globals@7.29.7': {} + '@babel/helper-member-expression-to-functions@7.25.9': dependencies: '@babel/traverse': 7.29.0 @@ -4980,6 +4998,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helper-module-imports@7.29.7': + dependencies: + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 + transitivePeerDependencies: + - supports-color + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -5004,6 +5029,8 @@ snapshots: '@babel/helper-plugin-utils@7.28.6': {} + '@babel/helper-plugin-utils@7.29.7': {} + '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -5038,8 +5065,12 @@ snapshots: '@babel/helper-string-parser@7.27.1': {} + '@babel/helper-string-parser@7.29.7': {} + '@babel/helper-validator-identifier@7.28.5': {} + '@babel/helper-validator-identifier@7.29.7': {} + '@babel/helper-validator-option@7.25.9': {} '@babel/helper-wrap-function@7.25.9': @@ -5059,6 +5090,10 @@ snapshots: dependencies: '@babel/types': 7.29.0 + '@babel/parser@7.29.8': + dependencies: + '@babel/types': 7.29.8 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -5129,7 +5164,7 @@ snapshots: '@babel/plugin-syntax-flow@7.28.6(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-plugin-utils': 7.28.6 + '@babel/helper-plugin-utils': 7.29.7 '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': dependencies: @@ -5156,6 +5191,11 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.28.6 + '@babel/plugin-syntax-jsx@7.29.7(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -5465,11 +5505,11 @@ snapshots: '@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 - '@babel/helper-annotate-as-pure': 7.27.3 - '@babel/helper-module-imports': 7.28.6 - '@babel/helper-plugin-utils': 7.28.6 - '@babel/plugin-syntax-jsx': 7.28.6(@babel/core@7.26.0) - '@babel/types': 7.29.0 + '@babel/helper-annotate-as-pure': 7.29.7 + '@babel/helper-module-imports': 7.29.7 + '@babel/helper-plugin-utils': 7.29.7 + '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.26.0) + '@babel/types': 7.29.8 transitivePeerDependencies: - supports-color @@ -5631,6 +5671,12 @@ snapshots: '@babel/parser': 7.29.3 '@babel/types': 7.29.0 + '@babel/template@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + '@babel/traverse@7.29.0': dependencies: '@babel/code-frame': 7.29.0 @@ -5639,7 +5685,19 @@ snapshots: '@babel/parser': 7.29.3 '@babel/template': 7.28.6 '@babel/types': 7.29.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/traverse@7.29.8': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/template': 7.29.7 + '@babel/types': 7.29.8 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -5648,6 +5706,11 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 + '@babel/types@7.29.8': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@bcoe/v8-coverage@0.2.3': {} '@cspotcode/source-map-support@0.8.1': @@ -5742,7 +5805,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.15.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.2 @@ -6019,10 +6082,18 @@ snapshots: '@ethersproject/properties': 5.8.0 '@ethersproject/strings': 5.8.0 + '@gerrit0/mini-shiki@3.23.0': + dependencies: + '@shikijs/engine-oniguruma': 3.23.0 + '@shikijs/langs': 3.23.0 + '@shikijs/themes': 3.23.0 + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 + '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 minimatch: 3.1.5 transitivePeerDependencies: - supports-color @@ -6050,7 +6121,7 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3))': + '@jest/core@29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -6064,7 +6135,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -6511,32 +6582,25 @@ snapshots: '@sentry/types': 5.30.0 tslib: 1.14.1 - '@shikijs/core@1.22.2': + '@shikijs/engine-oniguruma@3.23.0': dependencies: - '@shikijs/engine-javascript': 1.22.2 - '@shikijs/engine-oniguruma': 1.22.2 - '@shikijs/types': 1.22.2 - '@shikijs/vscode-textmate': 9.3.0 - '@types/hast': 3.0.4 - hast-util-to-html: 9.0.3 + '@shikijs/types': 3.23.0 + '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/engine-javascript@1.22.2': + '@shikijs/langs@3.23.0': dependencies: - '@shikijs/types': 1.22.2 - '@shikijs/vscode-textmate': 9.3.0 - oniguruma-to-js: 0.4.3 + '@shikijs/types': 3.23.0 - '@shikijs/engine-oniguruma@1.22.2': + '@shikijs/themes@3.23.0': dependencies: - '@shikijs/types': 1.22.2 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/types': 3.23.0 - '@shikijs/types@1.22.2': + '@shikijs/types@3.23.0': dependencies: - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - '@shikijs/vscode-textmate@9.3.0': {} + '@shikijs/vscode-textmate@10.0.2': {} '@sinclair/typebox@0.27.8': {} @@ -6644,10 +6708,6 @@ snapshots: '@types/json5@0.0.29': {} - '@types/mdast@4.0.4': - dependencies: - '@types/unist': 3.0.3 - '@types/minimatch@5.1.2': {} '@types/node@22.7.5': @@ -6680,14 +6740,14 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.6.3) '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.1)(typescript@5.6.3) '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.6.3) - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 eslint: 8.57.1 graphemer: 1.4.0 ignore: 5.3.2 @@ -6695,7 +6755,7 @@ snapshots: semver: 7.6.3 tsutils: 3.21.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.3 + typescript: 5.9.3 transitivePeerDependencies: - supports-color @@ -6704,7 +6764,7 @@ snapshots: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.6.3) - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 eslint: 8.57.1 optionalDependencies: typescript: 5.6.3 @@ -6720,7 +6780,7 @@ snapshots: dependencies: '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.6.3) '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.6.3) - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 eslint: 8.57.1 tsutils: 3.21.0(typescript@5.6.3) optionalDependencies: @@ -6734,7 +6794,7 @@ snapshots: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.3 @@ -6766,21 +6826,21 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@wagmi/connectors@8.0.13(@wagmi/core@3.4.11(typescript@5.6.3)(viem@2.39.0(typescript@5.6.3)(zod@3.25.76)))(typescript@5.6.3)(viem@2.39.0(typescript@5.6.3)(zod@3.25.76))': + '@wagmi/connectors@8.0.13(@wagmi/core@3.4.11(typescript@5.9.3)(viem@2.56.1(typescript@5.9.3)(zod@3.25.76)))(typescript@5.9.3)(viem@2.56.1(typescript@5.9.3)(zod@3.25.76))': dependencies: - '@wagmi/core': 3.4.11(typescript@5.6.3)(viem@2.39.0(typescript@5.6.3)(zod@3.25.76)) - viem: 2.39.0(typescript@5.6.3)(zod@3.25.76) + '@wagmi/core': 3.4.11(typescript@5.9.3)(viem@2.56.1(typescript@5.9.3)(zod@3.25.76)) + viem: 2.56.1(typescript@5.9.3)(zod@3.25.76) optionalDependencies: - typescript: 5.6.3 + typescript: 5.9.3 - '@wagmi/core@3.4.11(typescript@5.6.3)(viem@2.39.0(typescript@5.6.3)(zod@3.25.76))': + '@wagmi/core@3.4.11(typescript@5.9.3)(viem@2.56.1(typescript@5.9.3)(zod@3.25.76))': dependencies: eventemitter3: 5.0.1 - mipd: 0.0.7(typescript@5.6.3) - viem: 2.39.0(typescript@5.6.3)(zod@3.25.76) + mipd: 0.0.7(typescript@5.9.3) + viem: 2.56.1(typescript@5.9.3)(zod@3.25.76) zustand: 5.0.0 optionalDependencies: - typescript: 5.6.3 + typescript: 5.9.3 transitivePeerDependencies: - '@types/react' - immer @@ -6789,20 +6849,15 @@ snapshots: abab@2.0.6: {} - abitype@0.7.1(typescript@5.6.3)(zod@3.25.76): + abitype@0.7.1(typescript@5.9.3)(zod@3.25.76): dependencies: - typescript: 5.6.3 - optionalDependencies: - zod: 3.25.76 - - abitype@1.1.0(typescript@5.6.3)(zod@3.25.76): + typescript: 5.9.3 optionalDependencies: - typescript: 5.6.3 zod: 3.25.76 - abitype@1.1.1(typescript@5.6.3)(zod@3.25.76): + abitype@1.2.3(typescript@5.9.3)(zod@3.25.76): optionalDependencies: - typescript: 5.6.3 + typescript: 5.9.3 zod: 3.25.76 acorn-globals@7.0.1: @@ -6828,7 +6883,7 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -6970,13 +7025,15 @@ snapshots: axe-core@4.10.2: {} - axios@1.16.0: + axios@1.20.0: dependencies: follow-redirects: 1.16.0(debug@4.3.7) - form-data: 4.0.5 + form-data: 4.0.6 + https-proxy-agent: 5.0.1 proxy-from-env: 2.1.0 transitivePeerDependencies: - debug + - supports-color axobject-query@4.1.0: {} @@ -7077,6 +7134,8 @@ snapshots: balanced-match@1.0.2: {} + balanced-match@4.0.4: {} + base64-js@1.5.1: {} bech32@1.1.4: {} @@ -7115,6 +7174,10 @@ snapshots: dependencies: balanced-match: 1.0.2 + brace-expansion@5.0.9: + dependencies: + balanced-match: 4.0.4 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -7174,8 +7237,6 @@ snapshots: caniuse-lite@1.0.30001676: {} - ccount@2.0.1: {} - chalk@2.4.2: dependencies: ansi-styles: 3.2.1 @@ -7193,10 +7254,6 @@ snapshots: char-regex@2.0.1: {} - character-entities-html4@2.1.0: {} - - character-entities-legacy@3.0.0: {} - chokidar@3.6.0: dependencies: anymatch: 3.1.3 @@ -7271,8 +7328,6 @@ snapshots: dependencies: delayed-stream: 1.0.0 - comma-separated-tokens@2.0.3: {} - command-exists@1.2.9: {} commander@2.20.3: {} @@ -7303,13 +7358,13 @@ snapshots: crc-32@1.2.2: {} - create-jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)): + create-jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -7378,6 +7433,10 @@ snapshots: optionalDependencies: supports-color: 8.1.1 + debug@4.4.3: + dependencies: + ms: 2.1.3 + decamelize@4.0.0: {} decimal.js@10.4.3: {} @@ -7421,16 +7480,10 @@ snapshots: depd@2.0.0: {} - dequal@2.0.3: {} - detect-indent@6.1.0: {} detect-newline@3.1.0: {} - devlop@1.1.0: - dependencies: - dequal: 2.0.3 - diff-sequences@29.6.3: {} diff@4.0.4: {} @@ -7470,7 +7523,7 @@ snapshots: '@rollup/plugin-replace': 5.0.7(rollup@3.30.0) '@rollup/plugin-terser': 0.4.4(rollup@3.30.0) '@types/jest': 29.5.14 - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) '@typescript-eslint/parser': 5.62.0(eslint@8.57.1)(typescript@5.6.3) ansi-escapes: 4.3.2 asyncro: 3.0.0 @@ -7487,8 +7540,8 @@ snapshots: eslint: 8.57.1 eslint-config-prettier: 8.10.0(eslint@8.57.1) eslint-plugin-flowtype: 8.0.3(@babel/plugin-syntax-flow@7.28.6(@babel/core@7.26.0))(@babel/plugin-transform-react-jsx@7.28.6(@babel/core@7.26.0))(eslint@8.57.1) - eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1) - eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)))(typescript@5.6.3) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1) + eslint-plugin-jest: 27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)))(typescript@5.6.3) eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) eslint-plugin-prettier: 4.2.1(eslint-config-prettier@8.10.0(eslint@8.57.1))(eslint@8.57.1)(prettier@2.8.8) eslint-plugin-react: 7.37.2(eslint@8.57.1) @@ -7497,9 +7550,9 @@ snapshots: execa: 4.1.0 figlet: 1.8.0 fs-extra: 10.1.0 - jest: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)) + jest: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)) jest-environment-jsdom: 29.7.0 - jest-watch-typeahead: 2.2.2(jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3))) + jest-watch-typeahead: 2.2.2(jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3))) jpjs: 1.2.1 lodash.merge: 4.6.2 ora: 5.4.1 @@ -7517,7 +7570,7 @@ snapshots: shelljs: 0.8.5 sort-package-json: 1.57.0 tiny-glob: 0.2.9 - ts-jest: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)))(typescript@5.6.3) + ts-jest: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)))(typescript@5.6.3) ts-node: 10.9.2(@types/node@22.8.5)(typescript@5.6.3) tslib: 2.8.1 type-fest: 2.19.0 @@ -7607,7 +7660,7 @@ snapshots: has-property-descriptors: 1.0.2 has-proto: 1.0.3 has-symbols: 1.1.0 - hasown: 2.0.2 + hasown: 2.0.4 internal-slot: 1.0.7 is-array-buffer: 3.0.4 is-callable: 1.2.7 @@ -7659,16 +7712,20 @@ snapshots: dependencies: es-errors: 1.3.0 + es-object-atoms@1.1.2: + dependencies: + es-errors: 1.3.0 + es-set-tostringtag@2.1.0: dependencies: es-errors: 1.3.0 get-intrinsic: 1.3.0 has-tostringtag: 1.0.2 - hasown: 2.0.2 + hasown: 2.0.4 es-shim-unscopables@1.0.2: dependencies: - hasown: 2.0.2 + hasown: 2.0.4 es-to-primitive@1.2.1: dependencies: @@ -7733,7 +7790,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): + eslint-module-utils@2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: @@ -7751,7 +7808,7 @@ snapshots: lodash: 4.18.1 string-natural-compare: 3.0.1 - eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.8 @@ -7762,8 +7819,8 @@ snapshots: doctrine: 2.1.0 eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) - hasown: 2.0.2 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) + hasown: 2.0.4 is-core-module: 2.15.1 is-glob: 4.0.3 minimatch: 3.1.5 @@ -7780,13 +7837,13 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)))(typescript@5.6.3): + eslint-plugin-jest@27.9.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)))(typescript@5.6.3): dependencies: '@typescript-eslint/utils': 5.62.0(eslint@8.57.1)(typescript@5.6.3) eslint: 8.57.1 optionalDependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.6.3))(eslint@8.57.1)(typescript@5.6.3) - jest: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + jest: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)) transitivePeerDependencies: - supports-color - typescript @@ -7802,7 +7859,7 @@ snapshots: damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 eslint: 8.57.1 - hasown: 2.0.2 + hasown: 2.0.4 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.5 @@ -7832,7 +7889,7 @@ snapshots: es-iterator-helpers: 1.1.0 eslint: 8.57.1 estraverse: 5.3.0 - hasown: 2.0.2 + hasown: 2.0.4 jsx-ast-utils: 3.3.5 minimatch: 3.1.5 object.entries: 1.1.8 @@ -7877,7 +7934,7 @@ snapshots: ajv: 6.15.0 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -7996,6 +8053,8 @@ snapshots: eventemitter3@5.0.1: {} + eventemitter3@5.0.4: {} + execa@4.1.0: dependencies: cross-spawn: 7.0.6 @@ -8120,12 +8179,12 @@ snapshots: dependencies: is-callable: 1.2.7 - form-data@4.0.5: + form-data@4.0.6: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 es-set-tostringtag: 2.1.0 - hasown: 2.0.2 + hasown: 2.0.4 mime-types: 2.1.35 formdata-polyfill@4.0.10: @@ -8173,12 +8232,12 @@ snapshots: call-bind-apply-helpers: 1.0.2 es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.1.1 + es-object-atoms: 1.1.2 function-bind: 1.1.2 get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 - hasown: 2.0.2 + hasown: 2.0.4 math-intrinsics: 1.1.0 get-package-type@0.1.0: {} @@ -8279,11 +8338,11 @@ snapshots: graphemer@1.4.0: {} - hardhat-switch-network@1.2.1(hardhat@2.28.0(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3))(typescript@5.6.3)): + hardhat-switch-network@1.2.1(hardhat@2.28.0(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3))(typescript@5.9.3)): dependencies: - hardhat: 2.28.0(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3))(typescript@5.6.3) + hardhat: 2.28.0(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3))(typescript@5.9.3) - hardhat@2.28.0(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3))(typescript@5.6.3): + hardhat@2.28.0(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3))(typescript@5.9.3): dependencies: '@ethereumjs/util': 9.1.0 '@ethersproject/abi': 5.8.0 @@ -8326,7 +8385,7 @@ snapshots: ws: 7.5.10 optionalDependencies: ts-node: 10.9.2(@types/node@22.8.5)(typescript@5.6.3) - typescript: 5.6.3 + typescript: 5.9.3 transitivePeerDependencies: - bufferutil - supports-color @@ -8355,28 +8414,10 @@ snapshots: inherits: 2.0.4 minimalistic-assert: 1.0.1 - hasown@2.0.2: + hasown@2.0.4: dependencies: function-bind: 1.1.2 - hast-util-to-html@9.0.3: - 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.1 - 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 - he@1.2.0: {} hmac-drbg@1.0.1: @@ -8391,8 +8432,6 @@ snapshots: html-escaper@2.0.2: {} - html-void-elements@3.0.0: {} - http-errors@2.0.0: dependencies: depd: 2.0.0 @@ -8405,14 +8444,14 @@ snapshots: dependencies: '@tootallnate/once': 3.0.1 agent-base: 6.0.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 transitivePeerDependencies: - supports-color https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -8462,7 +8501,7 @@ snapshots: internal-slot@1.0.7: dependencies: es-errors: 1.3.0 - hasown: 2.0.2 + hasown: 2.0.4 side-channel: 1.0.6 interpret@1.4.0: {} @@ -8504,7 +8543,7 @@ snapshots: is-core-module@2.15.1: dependencies: - hasown: 2.0.2 + hasown: 2.0.4 is-data-view@1.0.1: dependencies: @@ -8607,13 +8646,13 @@ snapshots: node-fetch: 3.3.2 unfetch: 5.0.0 - isomorphic-ws@5.0.0(ws@8.18.3): + isomorphic-ws@5.0.0(ws@8.21.3): dependencies: - ws: 8.18.3 + ws: 8.21.3 - isows@1.0.7(ws@8.18.3): + isows@1.0.7(ws@8.21.0): dependencies: - ws: 8.18.3 + ws: 8.21.0 istanbul-lib-coverage@3.2.2: {} @@ -8645,7 +8684,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.3.7(supports-color@8.1.1) + debug: 4.4.3 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -8703,16 +8742,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)): + jest-cli@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)) + create-jest: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)) exit: 0.1.2 import-local: 3.2.0 - jest-config: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)) + jest-config: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -8722,7 +8761,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)): + jest-config@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)): dependencies: '@babel/core': 7.26.0 '@jest/test-sequencer': 29.7.0 @@ -9009,11 +9048,11 @@ snapshots: leven: 3.1.0 pretty-format: 29.7.0 - jest-watch-typeahead@2.2.2(jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3))): + jest-watch-typeahead@2.2.2(jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3))): dependencies: ansi-escapes: 6.2.1 chalk: 5.6.2 - jest: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)) + jest: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)) jest-regex-util: 29.6.3 jest-watcher: 29.7.0 slash: 5.1.0 @@ -9038,12 +9077,12 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)): + jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)): dependencies: - '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)) + '@jest/core': 29.7.0(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)) '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)) + jest-cli: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -9076,7 +9115,7 @@ snapshots: decimal.js: 10.4.3 domexception: 4.0.0 escodegen: 2.1.0 - form-data: 4.0.5 + form-data: 4.0.6 html-encoding-sniffer: 3.0.0 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.1 @@ -9091,7 +9130,7 @@ snapshots: whatwg-encoding: 2.0.0 whatwg-mimetype: 3.0.0 whatwg-url: 11.0.0 - ws: 8.18.3 + ws: 8.21.3 xml-name-validator: 4.0.0 transitivePeerDependencies: - bufferutil @@ -9100,6 +9139,8 @@ snapshots: jsesc@3.0.2: {} + jsesc@3.1.0: {} + json-buffer@3.0.1: {} json-parse-even-better-errors@2.3.1: {} @@ -9162,7 +9203,7 @@ snapshots: lines-and-columns@1.2.4: {} - linkify-it@5.0.0: + linkify-it@5.0.2: dependencies: uc.micro: 2.1.0 @@ -9231,29 +9272,17 @@ snapshots: dependencies: tmpl: 1.0.5 - markdown-it@14.1.1: + markdown-it@14.3.1: dependencies: argparse: 2.0.1 entities: 4.5.0 - linkify-it: 5.0.0 + linkify-it: 5.0.2 mdurl: 2.0.0 punycode.js: 2.3.1 uc.micro: 2.1.0 math-intrinsics@1.1.0: {} - mdast-util-to-hast@13.2.1: - dependencies: - '@types/hast': 3.0.4 - '@types/mdast': 4.0.4 - '@ungap/structured-clone': 1.2.0 - devlop: 1.1.0 - micromark-util-sanitize-uri: 2.0.0 - 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: {} memorystream@0.3.1: {} @@ -9272,23 +9301,6 @@ snapshots: dependencies: '@scure/base': 1.2.6 - micromark-util-character@2.1.0: - dependencies: - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - - micromark-util-encode@2.0.0: {} - - micromark-util-sanitize-uri@2.0.0: - dependencies: - micromark-util-character: 2.1.0 - micromark-util-encode: 2.0.0 - micromark-util-symbol: 2.0.0 - - micromark-util-symbol@2.0.0: {} - - micromark-util-types@2.0.0: {} - micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -9308,6 +9320,10 @@ snapshots: minimalistic-crypto-utils@1.0.1: {} + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.9 + minimatch@3.1.5: dependencies: brace-expansion: 1.1.14 @@ -9316,15 +9332,11 @@ snapshots: dependencies: brace-expansion: 2.1.0 - minimatch@9.0.9: - dependencies: - brace-expansion: 2.1.0 - minimist@1.2.8: {} - mipd@0.0.7(typescript@5.6.3): + mipd@0.0.7(typescript@5.9.3): optionalDependencies: - typescript: 5.6.3 + typescript: 5.9.3 mnemonist@0.38.5: dependencies: @@ -9454,10 +9466,6 @@ snapshots: dependencies: mimic-fn: 2.1.0 - oniguruma-to-js@0.4.3: - dependencies: - regex: 4.3.3 - optionator@0.9.4: dependencies: deep-is: 0.1.4 @@ -9479,7 +9487,7 @@ snapshots: strip-ansi: 6.0.1 wcwidth: 1.0.1 - ox@0.9.6(typescript@5.6.3)(zod@3.25.76): + ox@0.14.34(typescript@5.9.3)(zod@3.25.76): dependencies: '@adraffy/ens-normalize': 1.11.1 '@noble/ciphers': 1.3.0 @@ -9487,10 +9495,10 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.1.1(typescript@5.6.3)(zod@3.25.76) + abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) eventemitter3: 5.0.1 optionalDependencies: - typescript: 5.6.3 + typescript: 5.9.3 transitivePeerDependencies: - zod @@ -9589,7 +9597,7 @@ snapshots: '@jest/schemas': 30.4.1 ansi-styles: 5.2.0 react-is-18: react-is@18.3.1 - react-is-19: react-is@19.2.6 + react-is-19: react-is@19.2.8 progress-estimator@0.3.1: dependencies: @@ -9609,8 +9617,6 @@ snapshots: object-assign: 4.1.1 react-is: 16.13.1 - property-information@6.5.0: {} - proxy-from-env@2.1.0: {} psl@1.9.0: {} @@ -9641,7 +9647,7 @@ snapshots: react-is@18.3.1: {} - react-is@19.2.6: {} + react-is@19.2.8: {} readable-stream@3.6.2: dependencies: @@ -9681,8 +9687,6 @@ snapshots: dependencies: '@babel/runtime': 7.28.4 - regex@4.3.3: {} - regexp.prototype.flags@1.5.3: dependencies: call-bind: 1.0.8 @@ -9849,15 +9853,6 @@ snapshots: interpret: 1.4.0 rechoir: 0.6.2 - shiki@1.22.2: - dependencies: - '@shikijs/core': 1.22.2 - '@shikijs/engine-javascript': 1.22.2 - '@shikijs/engine-oniguruma': 1.22.2 - '@shikijs/types': 1.22.2 - '@shikijs/vscode-textmate': 9.3.0 - '@types/hast': 3.0.4 - side-channel@1.0.6: dependencies: call-bind: 1.0.8 @@ -9920,8 +9915,6 @@ snapshots: source-map@0.6.1: {} - space-separated-tokens@2.0.2: {} - sprintf-js@1.0.3: {} stack-utils@2.0.6: @@ -10006,11 +9999,6 @@ snapshots: 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@4.0.0: dependencies: ansi-regex: 3.0.1 @@ -10100,18 +10088,16 @@ snapshots: dependencies: punycode: 2.3.1 - trim-lines@3.0.1: {} - - ts-essentials@10.0.3(typescript@5.6.3): + ts-essentials@10.0.3(typescript@5.9.3): optionalDependencies: - typescript: 5.6.3 + typescript: 5.9.3 - ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)))(typescript@5.6.3): + ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)))(typescript@5.6.3): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.6.3)) + jest: 29.7.0(@types/node@22.8.5)(babel-plugin-macros@3.1.0)(ts-node@10.9.2(@types/node@22.8.5)(typescript@5.9.3)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -10209,29 +10195,31 @@ snapshots: is-typed-array: 1.1.15 possible-typed-array-names: 1.0.0 - typedoc-plugin-markdown@4.2.10(typedoc@0.26.11(typescript@5.6.3)): + typedoc-plugin-markdown@4.13.0(typedoc@0.28.20(typescript@5.9.3)): dependencies: - typedoc: 0.26.11(typescript@5.6.3) + typedoc: 0.28.20(typescript@5.9.3) - typedoc-plugin-missing-exports@3.0.0(typedoc@0.26.11(typescript@5.6.3)): + typedoc-plugin-missing-exports@4.1.4(typedoc@0.28.20(typescript@5.9.3)): dependencies: - typedoc: 0.26.11(typescript@5.6.3) + typedoc: 0.28.20(typescript@5.9.3) - typedoc-plugin-replace-text@4.0.0(typedoc@0.26.11(typescript@5.6.3)): + typedoc-plugin-replace-text@4.2.0(typedoc@0.28.20(typescript@5.9.3)): dependencies: - typedoc: 0.26.11(typescript@5.6.3) + typedoc: 0.28.20(typescript@5.9.3) - typedoc@0.26.11(typescript@5.6.3): + typedoc@0.28.20(typescript@5.9.3): dependencies: + '@gerrit0/mini-shiki': 3.23.0 lunr: 2.3.9 - markdown-it: 14.1.1 - minimatch: 9.0.9 - shiki: 1.22.2 - typescript: 5.6.3 + markdown-it: 14.3.1 + minimatch: 10.2.6 + typescript: 5.9.3 yaml: 2.9.0 typescript@5.6.3: {} + typescript@5.9.3: {} + uc.micro@2.1.0: {} unbox-primitive@1.0.2: @@ -10258,29 +10246,6 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} - unist-util-is@6.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-position@5.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-stringify-position@4.0.0: - dependencies: - '@types/unist': 3.0.3 - - unist-util-visit-parents@6.0.1: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - - unist-util-visit@5.0.0: - dependencies: - '@types/unist': 3.0.3 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 - universalify@0.1.2: {} universalify@0.2.0: {} @@ -10324,28 +10289,18 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - 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 - - viem@2.39.0(typescript@5.6.3)(zod@3.25.76): + viem@2.56.1(typescript@5.9.3)(zod@3.25.76): dependencies: '@noble/curves': 1.9.1 '@noble/hashes': 1.8.0 '@scure/bip32': 1.7.0 '@scure/bip39': 1.6.0 - abitype: 1.1.0(typescript@5.6.3)(zod@3.25.76) - isows: 1.0.7(ws@8.18.3) - ox: 0.9.6(typescript@5.6.3)(zod@3.25.76) - ws: 8.18.3 + abitype: 1.2.3(typescript@5.9.3)(zod@3.25.76) + isows: 1.0.7(ws@8.21.0) + ox: 0.14.34(typescript@5.9.3)(zod@3.25.76) + ws: 8.21.0 optionalDependencies: - typescript: 5.6.3 + typescript: 5.9.3 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -10386,9 +10341,9 @@ snapshots: dependencies: web3-types: 1.8.1 - web3-eth-abi@4.3.0(typescript@5.6.3)(zod@3.25.76): + web3-eth-abi@4.3.0(typescript@5.9.3)(zod@3.25.76): dependencies: - abitype: 0.7.1(typescript@5.6.3)(zod@3.25.76) + abitype: 0.7.1(typescript@5.9.3)(zod@3.25.76) web3-errors: 1.3.0 web3-types: 1.8.1 web3-utils: 4.3.2 @@ -10407,13 +10362,13 @@ snapshots: web3-utils: 4.3.2 web3-validator: 2.0.6 - web3-eth-contract@4.7.0(typescript@5.6.3)(zod@3.25.76): + web3-eth-contract@4.7.0(typescript@5.9.3)(zod@3.25.76): dependencies: '@ethereumjs/rlp': 5.0.2 web3-core: 4.7.0 web3-errors: 1.3.0 - web3-eth: 4.10.0(typescript@5.6.3)(zod@3.25.76) - web3-eth-abi: 4.3.0(typescript@5.6.3)(zod@3.25.76) + web3-eth: 4.10.0(typescript@5.9.3)(zod@3.25.76) + web3-eth-abi: 4.3.0(typescript@5.9.3)(zod@3.25.76) web3-types: 1.8.1 web3-utils: 4.3.2 web3-validator: 2.0.6 @@ -10424,13 +10379,13 @@ snapshots: - utf-8-validate - zod - web3-eth-ens@4.4.0(typescript@5.6.3)(zod@3.25.76): + web3-eth-ens@4.4.0(typescript@5.9.3)(zod@3.25.76): dependencies: '@adraffy/ens-normalize': 1.11.1 web3-core: 4.7.0 web3-errors: 1.3.0 - web3-eth: 4.10.0(typescript@5.6.3)(zod@3.25.76) - web3-eth-contract: 4.7.0(typescript@5.6.3)(zod@3.25.76) + web3-eth: 4.10.0(typescript@5.9.3)(zod@3.25.76) + web3-eth-contract: 4.7.0(typescript@5.9.3)(zod@3.25.76) web3-net: 4.1.0 web3-types: 1.8.1 web3-utils: 4.3.2 @@ -10449,10 +10404,10 @@ snapshots: web3-utils: 4.3.2 web3-validator: 2.0.6 - web3-eth-personal@4.1.0(typescript@5.6.3)(zod@3.25.76): + web3-eth-personal@4.1.0(typescript@5.9.3)(zod@3.25.76): dependencies: web3-core: 4.7.0 - web3-eth: 4.10.0(typescript@5.6.3)(zod@3.25.76) + web3-eth: 4.10.0(typescript@5.9.3)(zod@3.25.76) web3-rpc-methods: 1.3.0 web3-types: 1.8.1 web3-utils: 4.3.2 @@ -10464,12 +10419,12 @@ snapshots: - utf-8-validate - zod - web3-eth@4.10.0(typescript@5.6.3)(zod@3.25.76): + web3-eth@4.10.0(typescript@5.9.3)(zod@3.25.76): dependencies: setimmediate: 1.0.5 web3-core: 4.7.0 web3-errors: 1.3.0 - web3-eth-abi: 4.3.0(typescript@5.6.3)(zod@3.25.76) + web3-eth-abi: 4.3.0(typescript@5.9.3)(zod@3.25.76) web3-eth-accounts: 4.2.1 web3-net: 4.1.0 web3-providers-ws: 4.0.8 @@ -10514,11 +10469,11 @@ snapshots: web3-providers-ws@4.0.8: dependencies: '@types/ws': 8.5.3 - isomorphic-ws: 5.0.0(ws@8.18.3) + isomorphic-ws: 5.0.0(ws@8.21.3) web3-errors: 1.3.0 web3-types: 1.8.1 web3-utils: 4.3.2 - ws: 8.18.3 + ws: 8.21.3 transitivePeerDependencies: - bufferutil - utf-8-validate @@ -10551,7 +10506,7 @@ snapshots: web3-utils@4.3.2: dependencies: ethereum-cryptography: 2.2.1 - eventemitter3: 5.0.1 + eventemitter3: 5.0.4 web3-errors: 1.3.0 web3-types: 1.8.1 web3-validator: 2.0.6 @@ -10564,17 +10519,17 @@ snapshots: web3-types: 1.8.1 zod: 3.25.76 - web3@4.14.0(typescript@5.6.3)(zod@3.25.76): + web3@4.14.0(typescript@5.9.3)(zod@3.25.76): dependencies: web3-core: 4.7.0 web3-errors: 1.3.0 - web3-eth: 4.10.0(typescript@5.6.3)(zod@3.25.76) - web3-eth-abi: 4.3.0(typescript@5.6.3)(zod@3.25.76) + web3-eth: 4.10.0(typescript@5.9.3)(zod@3.25.76) + web3-eth-abi: 4.3.0(typescript@5.9.3)(zod@3.25.76) web3-eth-accounts: 4.2.1 - web3-eth-contract: 4.7.0(typescript@5.6.3)(zod@3.25.76) - web3-eth-ens: 4.4.0(typescript@5.6.3)(zod@3.25.76) + web3-eth-contract: 4.7.0(typescript@5.9.3)(zod@3.25.76) + web3-eth-ens: 4.4.0(typescript@5.9.3)(zod@3.25.76) web3-eth-iban: 4.0.7 - web3-eth-personal: 4.1.0(typescript@5.6.3)(zod@3.25.76) + web3-eth-personal: 4.1.0(typescript@5.9.3)(zod@3.25.76) web3-net: 4.1.0 web3-providers-http: 4.2.0 web3-providers-ws: 4.0.8 @@ -10686,7 +10641,9 @@ snapshots: ws@8.18.0: {} - ws@8.18.3: {} + ws@8.21.0: {} + + ws@8.21.3: {} xml-name-validator@4.0.0: {} @@ -10738,5 +10695,3 @@ snapshots: zod@3.25.76: {} zustand@5.0.0: {} - - zwitch@2.0.4: {} diff --git a/src/methods/delta/buildDeltaOrder.ts b/src/methods/delta/buildDeltaOrder.ts index 6c839e840..41ab42df2 100644 --- a/src/methods/delta/buildDeltaOrder.ts +++ b/src/methods/delta/buildDeltaOrder.ts @@ -2,6 +2,7 @@ import { API_URL } from '../../constants'; import type { ConstructFetchInput, RequestParameters } from '../../types'; import type { DeltaAuctionOrder } from './helpers/types'; import type { BuiltDeltaOrder, DeltaRoute } from './types'; +import { toOrderLimitAmount } from './helpers/limitAmount'; export type { BuiltDeltaOrder } from './types'; export type BuildDeltaOrderParams = { @@ -36,7 +37,17 @@ export type BuildDeltaOrderParams = { side: 'SELL' | 'BUY'; /** @description Slippage in basis points (bps). 10000 = 100%, 50 = 0.5%. Default 0. */ slippage?: number; - /** @description If passed, the server will use this as SELL destAmount (as BUY srcAmount) and expectedAmount */ + /** + * @description If passed, the server will use this as SELL destAmount (as BUY srcAmount) and expectedAmount. + * + * Units depend on `side`: + * - **SELL** — destination-token wei, the same units as `route.destination.output.amount`. + * Over a bridge route the on-chain Order carries destAmount scaled by + * `route.bridge.contractParams.scalingFactor`, and the SDK applies that scaling for you + * (rounding up, so the minimum you receive never lands below what you asked for). + * - **BUY** — origin src-token wei, the same units as `route.origin.input.amount`. It caps + * what you spend, is always an origin-chain amount, and is never bridge-scaled. + */ limitAmount?: string; }; @@ -69,7 +80,7 @@ export const constructBuildDeltaOrder = ( nonce: params.nonce, permit: params.permit, slippage: params.slippage, - limitAmount: params.limitAmount, + limitAmount: toOrderLimitAmount(params), metadata: params.metadata, partiallyFillable: params.partiallyFillable, partner: params.partner, diff --git a/src/methods/delta/buildExternalDeltaOrder.ts b/src/methods/delta/buildExternalDeltaOrder.ts index 3067ad794..a0aead8fe 100644 --- a/src/methods/delta/buildExternalDeltaOrder.ts +++ b/src/methods/delta/buildExternalDeltaOrder.ts @@ -40,8 +40,8 @@ export type BuildExternalDeltaOrderParams = { side: 'SELL' | 'BUY'; /** @description Slippage in basis points (bps). Default 0. */ slippage?: number; - /** @description If passed, the server will use this as SELL destAmount (as BUY srcAmount) and expectedAmount */ - limitAmount?: string; + // No `limitAmount` here: the build endpoint declares it only on the `Order` + // variant of its (strict) request schema, so sending it is rejected. }; type BuildExternalDeltaOrder = ( @@ -78,7 +78,6 @@ export const constructBuildExternalDeltaOrder = ( nonce: params.nonce, permit: params.permit, slippage: params.slippage, - limitAmount: params.limitAmount, metadata: params.metadata, partiallyFillable: params.partiallyFillable, partner: params.partner, diff --git a/src/methods/delta/buildTWAPDeltaOrder.ts b/src/methods/delta/buildTWAPDeltaOrder.ts index 48b2b9529..fbe6e2892 100644 --- a/src/methods/delta/buildTWAPDeltaOrder.ts +++ b/src/methods/delta/buildTWAPDeltaOrder.ts @@ -37,8 +37,9 @@ type BuildTWAPDeltaOrderBase = { metadata?: string; /** @description Designates the Order as partially fillable. Default false. */ partiallyFillable?: boolean; - /** @description If passed, the server will use this as SELL destAmount (as BUY srcAmount) and expectedAmount for each slice */ - limitAmount?: string; + // No `limitAmount` here: the build endpoint declares it only on the `Order` + // variant of its (strict) request schema, so sending it is rejected. TWAP + // amounts are set by `totalSrcAmount` / `totalDestAmount` + `maxSrcAmount`. }; export type BuildTWAPSellDeltaOrderParams = BuildTWAPDeltaOrderBase & { @@ -87,7 +88,6 @@ export const constructBuildTWAPDeltaOrder = ( nonce: params.nonce, permit: params.permit, slippage: params.slippage, - limitAmount: params.limitAmount, metadata: params.metadata, partiallyFillable: params.partiallyFillable, partner: params.partner, diff --git a/src/methods/delta/helpers/limitAmount.ts b/src/methods/delta/helpers/limitAmount.ts new file mode 100644 index 000000000..1473fb7c8 --- /dev/null +++ b/src/methods/delta/helpers/limitAmount.ts @@ -0,0 +1,61 @@ +import type { DeltaRoute } from '../types'; +import type { SwapSideUnion } from './types'; + +type ToOrderLimitAmountParams = { + /** + * @description The caller-supplied limit amount. On SELL, destination-token wei; on BUY, + * origin src-token wei. See `toOrderLimitAmount`. + */ + limitAmount?: string; + /** @description The route the order is built from. */ + route: DeltaRoute; + /** @description Order side. */ + side: SwapSideUnion; +}; + +/** + * @description Converts a caller-supplied limit amount into the units the on-chain Order + * carries. + * + * On a SELL the caller passes destination-token units (those of + * `route.destination.output.amount`), but on a bridge route the Order's `destAmount` lives + * in *bridge units*: the destination amount scaled by `bridge.contractParams.scalingFactor`, + * the `int8` the settlement contract applies when it scales the amount back up on the + * destination chain. Passing a destination-token amount straight through as `limitAmount` + * therefore sets a limit that is wrong by `10 ** scalingFactor`. + * + * Returned unchanged for same-chain routes (`route.bridge === null`) and for BUY, where + * `limitAmount` bounds `srcAmount` — origin src-token units, always an origin-chain amount, + * never scaled. Which conversion applies is fully determined by the `route` and `side` the + * caller already passes to the builders, so there is no unit flag to get wrong. + */ +export function toOrderLimitAmount({ + limitAmount, + route, + side, +}: ToOrderLimitAmountParams): string | undefined { + const bridge = route.bridge; + + if (limitAmount === undefined || side !== 'SELL' || bridge === null) { + return limitAmount; + } + + return scaleToBridgeUnits(limitAmount, bridge.contractParams.scalingFactor); +} + +function scaleToBridgeUnits(amount: string, scalingFactor: number): string { + if (scalingFactor === 0) return amount; + + const value = BigInt(amount); + + if (scalingFactor < 0) { + return (value * 10n ** BigInt(-scalingFactor)).toString(); + } + + const divisor = 10n ** BigInt(scalingFactor); + + // A SELL limitAmount is a *minimum* to receive, and Order units are integers: + // round up, so that scaling back at settlement never lands below the amount + // the user asked for. + return ((value + divisor - 1n) / divisor).toString(); +} diff --git a/src/methods/delta/helpers/orders.ts b/src/methods/delta/helpers/orders.ts index f5cda0964..8b59977c0 100644 --- a/src/methods/delta/helpers/orders.ts +++ b/src/methods/delta/helpers/orders.ts @@ -453,15 +453,47 @@ function getAuctionTokenAddresses( }; } +/** + * @description Picks the received amount denominated in the auction's `output` + * token. On a crosschain order that token lives on the destination chain, so the + * destination leg is read; otherwise the origin leg is. Falls back to the legacy + * `receivedAmount`, which reports whichever leg matches the order and so is + * denominated in the same token either way. + */ +function getReceivedAmountOnOutputSide( + tx: DeltaTransaction, + crosschain: boolean +): string | null { + const onOutputLeg = crosschain + ? tx.destinationReceivedAmount + : tx.originReceivedAmount; + + return onOutputLeg ?? tx.receivedAmount; +} + /** * @description Aggregates transaction amounts into total spent (src) and * received (dest) values. - */ -function getTransactionAmounts(transactions: DeltaTransaction[]) { + * + * `destAmount` is denominated in the auction's `output` token, so pass + * `crosschain` to read the leg that token sits on — mirroring how the server + * derives `output.executedAmount`. Omit it and the legacy `receivedAmount` is + * summed, whose leg depends on the order. + */ +function getTransactionAmounts( + transactions: DeltaTransaction[], + options?: { crosschain: boolean } +) { const { srcAmount, destAmount } = transactions.reduce( - (acc, { spentAmount, receivedAmount }) => ({ - srcAmount: acc.srcAmount + BigInt(spentAmount ?? 0), - destAmount: acc.destAmount + BigInt(receivedAmount ?? 0), + (acc, tx) => ({ + srcAmount: acc.srcAmount + BigInt(tx.spentAmount ?? 0), + destAmount: + acc.destAmount + + BigInt( + (options + ? getReceivedAmountOnOutputSide(tx, options.crosschain) + : tx.receivedAmount) ?? 0 + ), }), { srcAmount: 0n, destAmount: 0n } ); @@ -549,7 +581,9 @@ function getAuctionAmounts( return { expected, minimal }; } - const txAmounts = getTransactionAmounts(auction.transactions); + const txAmounts = getTransactionAmounts(auction.transactions, { + crosschain: isOrderCrosschain(order), + }); const executed = { srcAmount: getExecutedAmount(auction.input, txAmounts.srcAmount), diff --git a/src/methods/delta/types.ts b/src/methods/delta/types.ts index f16f3e1c1..885d14bc2 100644 --- a/src/methods/delta/types.ts +++ b/src/methods/delta/types.ts @@ -186,9 +186,33 @@ export type DeltaTransaction = { destinationTx: string | null; /** @description Filled percent of the slice (0–100). */ filledPercent: number; + /** + * @description `order.srcToken` taken from the owner on the origin chain by + * `originTx` — the same leg, chain and token decimals as `originReceivedAmount`. + */ spentAmount: string | null; + /** + * @description Which leg this reports depends on the order: the destination leg + * for bridge fills, the origin leg otherwise. Unlike `destinationReceivedAmount` + * it is not gated on the bridge having filled, so on a bridge order it can carry + * a destination amount the provider recorded while the leg was still in flight. + * Kept as-is for existing integrators — prefer the explicit + * `originReceivedAmount` / `destinationReceivedAmount` pair. + */ receivedAmount: string | null; - /** @description ISO datetime string. */ + /** + * @description `order.destToken` delivered on the origin chain by `originTx` — + * the same leg, chain and token decimals as `spentAmount`. + */ + originReceivedAmount: string | null; + /** + * @description `bridge.outputToken` delivered on `bridge.destinationChainId`, + * already scaled by `bridge.scalingFactor`. `null` on same-chain fills, which + * have no destination leg, and on bridge fills whose destination leg is still + * in flight. + */ + destinationReceivedAmount: string | null; + /** @description ISO datetime string of origin Tx. */ timestamp: string | null; }; diff --git a/tests/auctionAmounts.test.ts b/tests/auctionAmounts.test.ts new file mode 100644 index 000000000..ae8428816 --- /dev/null +++ b/tests/auctionAmounts.test.ts @@ -0,0 +1,115 @@ +import { OrderHelpers } from '../src'; +import type { DeltaAuction, DeltaTransaction } from '../src/methods/delta/types'; + +const { getAuctionAmounts, getTransactionAmounts } = OrderHelpers.getters; + +const USDC_MAINNET = '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48'; +const USDC_ARBITRUM = '0xaf88d065e77c8cc2239327c5edb3a432268e5831'; + +// Deliberately different so a test can tell which leg was summed. The fixtures +// below let the legacy `receivedAmount` disagree with the explicit pair, which +// a real payload would not: the point is to pin *which field is authoritative*, +// not to reproduce a server response. +const ORIGIN_LEG = '1000000000000000000'; +const DESTINATION_LEG = '999000'; + +function tx(overrides: Partial = {}): DeltaTransaction { + return { + originTx: '0xorigin', + destinationTx: '0xdestination', + filledPercent: 100, + spentAmount: '5000000', + receivedAmount: ORIGIN_LEG, + originReceivedAmount: ORIGIN_LEG, + destinationReceivedAmount: DESTINATION_LEG, + timestamp: null, + ...overrides, + }; +} + +describe('getTransactionAmounts leg selection', () => { + test('reads the destination leg when crosschain', () => { + expect( + getTransactionAmounts([tx()], { crosschain: true }).destAmount + ).toEqual(DESTINATION_LEG); + }); + + test('reads the origin leg when same-chain', () => { + expect( + getTransactionAmounts([tx({ destinationReceivedAmount: null })], { + crosschain: false, + }).destAmount + ).toEqual(ORIGIN_LEG); + }); + + test('sums across transactions without mixing legs', () => { + expect( + getTransactionAmounts([tx(), tx()], { crosschain: true }).destAmount + ).toEqual((BigInt(DESTINATION_LEG) * 2n).toString()); + }); + + test('falls back to receivedAmount when the specific leg is absent', () => { + expect( + getTransactionAmounts([tx({ destinationReceivedAmount: null })], { + crosschain: true, + }).destAmount + ).toEqual(ORIGIN_LEG); + }); + + test('sums the legacy receivedAmount when no leg is given', () => { + expect(getTransactionAmounts([tx()]).destAmount).toEqual(ORIGIN_LEG); + }); + + test('always sums spentAmount for srcAmount', () => { + expect( + getTransactionAmounts([tx(), tx()], { crosschain: true }).srcAmount + ).toEqual('10000000'); + }); +}); + +function auction(crosschain: boolean): DeltaAuction { + return { + status: 'COMPLETED', + side: 'SELL', + transactions: [tx()], + input: { chainId: 1, token: USDC_MAINNET, amount: '5000000' }, + output: { + chainId: crosschain ? 42161 : 1, + token: crosschain ? USDC_ARBITRUM : USDC_MAINNET, + expectedAmount: DESTINATION_LEG, + minAmount: DESTINATION_LEG, + // null so the sum over transactions is what gets reported + executedAmount: null, + }, + order: { + kind: 0, + srcAmount: '5000000', + destAmount: DESTINATION_LEG, + bridge: { destinationChainId: crosschain ? 42161 : 0 }, + }, + } as unknown as DeltaAuction; +} + +describe('getAuctionAmounts executed destAmount', () => { + test('reports the destination leg for a bridge order', () => { + expect(getAuctionAmounts(auction(true)).executed?.destAmount).toEqual( + DESTINATION_LEG + ); + }); + + test('reports the origin leg for a same-chain order', () => { + expect(getAuctionAmounts(auction(false)).executed?.destAmount).toEqual( + ORIGIN_LEG + ); + }); + + test('prefers the executedAmount baked onto the output side', () => { + const base = auction(true); + const amounts = getAuctionAmounts({ + ...base, + output: { ...base.output, executedAmount: '424242' } as never, + }); + + expect(amounts.executed?.destAmount).toEqual('424242'); + }); +}); diff --git a/tests/limitAmount.test.ts b/tests/limitAmount.test.ts new file mode 100644 index 000000000..76fab5037 --- /dev/null +++ b/tests/limitAmount.test.ts @@ -0,0 +1,423 @@ +import { + constructBuildDeltaOrder, + constructBuildExternalDeltaOrder, + constructBuildTWAPDeltaOrder, +} from '../src'; +import type { FetcherFunction, FetcherPostInput } from '../src/types'; +import { toOrderLimitAmount } from '../src/methods/delta/helpers/limitAmount'; +import type { DeltaRoute } from '../src/methods/delta/types'; + +const USDC_MAINNET = { + chainId: 1, + address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', +} as const; +const USDC_ARBITRUM = { + chainId: 42161, + address: '0xaf88d065e77c8cc2239327c5edb3a432268e5831', +} as const; + +const step = (token: { chainId: number; address: string }, amount: string) => ({ + input: { token, amount, amountUSD: '0' }, + output: { token, amount, amountUSD: '0' }, +}); + +function makeRoute(scalingFactor: number | null): DeltaRoute { + return { + origin: step(USDC_MAINNET, '1000000'), + destination: step( + scalingFactor === null ? USDC_MAINNET : USDC_ARBITRUM, + '1000000' + ), + bridge: + scalingFactor === null + ? null + : { + protocol: 'Across', + estimatedTimeMs: 1000, + tags: [], + contractParams: { + protocolSelector: '0x00000000', + outputToken: USDC_ARBITRUM.address, + scalingFactor, + protocolData: '0x', + }, + }, + } as DeltaRoute; +} + +/** Mirrors the scaling the settlement contract applies on the destination chain. */ +function scaleBack( + orderAmount: string | undefined, + scalingFactor: number +): bigint { + if (orderAmount === undefined) throw new Error('expected a scaled amount'); + + const value = BigInt(orderAmount); + return scalingFactor < 0 + ? value / 10n ** BigInt(-scalingFactor) + : value * 10n ** BigInt(scalingFactor); +} + +describe('toOrderLimitAmount', () => { + test('same-chain route is returned unchanged', () => { + expect( + toOrderLimitAmount({ + limitAmount: '1000000000000000001', + route: makeRoute(null), + side: 'SELL', + }) + ).toEqual('1000000000000000001'); + }); + + test('BUY is returned unchanged — limitAmount bounds srcAmount', () => { + expect( + toOrderLimitAmount({ + limitAmount: '1000000000000000001', + route: makeRoute(12), + side: 'BUY', + }) + ).toEqual('1000000000000000001'); + }); + + test('scalingFactor 0 is returned unchanged', () => { + expect( + toOrderLimitAmount({ + limitAmount: '1000000000000000001', + route: makeRoute(0), + side: 'SELL', + }) + ).toEqual('1000000000000000001'); + }); + + test('negative scalingFactor multiplies exactly', () => { + expect( + toOrderLimitAmount({ + limitAmount: '1234567', + route: makeRoute(-6), + side: 'SELL', + }) + ).toEqual('1234567000000'); + }); + + test('positive scalingFactor divides, rounding up', () => { + expect( + toOrderLimitAmount({ + limitAmount: '1000000000000000001', + route: makeRoute(12), + side: 'SELL', + }) + // 1000000.000000000001 -> 1000001, NOT 1000000 + ).toEqual('1000001'); + }); + + test('positive scalingFactor leaves exact multiples alone', () => { + expect( + toOrderLimitAmount({ + limitAmount: '1000000000000000000', + route: makeRoute(12), + side: 'SELL', + }) + ).toEqual('1000000'); + }); + + test('handles amounts beyond Number.MAX_SAFE_INTEGER', () => { + expect( + toOrderLimitAmount({ + limitAmount: '123456789012345678901234567890', + route: makeRoute(-2), + side: 'SELL', + }) + ).toEqual('12345678901234567890123456789000'); + }); + + test('rounds up past 20 decimal places', () => { + // big.js truncates a quotient at Big.DP (20) before rounding, so the + // equivalent `.div(...).toFixed(0, Big.roundUp)` collapses this to '0' — + // a minimum-receive bound of zero, which accepts any output at all. + expect( + toOrderLimitAmount({ + limitAmount: '1', + route: makeRoute(21), + side: 'SELL', + }) + ).toEqual('1'); + }); + + test('an absent limitAmount stays absent', () => { + expect( + toOrderLimitAmount({ + limitAmount: undefined, + route: makeRoute(12), + side: 'SELL', + }) + ).toBeUndefined(); + }); + + test('zero stays zero', () => { + expect( + toOrderLimitAmount({ + limitAmount: '0', + route: makeRoute(12), + side: 'SELL', + }) + ).toEqual('0'); + }); + + describe.each([-18, -6, -1, 1, 6, 12, 18])( + 'round-trip, scalingFactor %i', + (scalingFactor) => { + test.each([ + '1', + '999999999999999999', + '1000000000000000000', + '1000000000000000001', + '31415926535897932384', + ])('scaling %s back never drops below it', (limitAmount) => { + const orderAmount = toOrderLimitAmount({ + limitAmount, + route: makeRoute(scalingFactor), + side: 'SELL', + }); + + expect(scaleBack(orderAmount, scalingFactor)).toBeGreaterThanOrEqual( + BigInt(limitAmount) + ); + }); + } + ); +}); + +/** + * Whether a bridge route converts at all is decided by `route.bridge` and `side`. + * When no conversion applies the amount is the caller's own string and is handed + * back untouched, not round-tripped through BigInt. These pin that boundary: a + * limit amount that comes back subtly rewritten on some routes and not others is + * the asymmetry this whole conversion exists to remove. + */ +describe('toOrderLimitAmount, routes where no conversion applies', () => { + const noConversion = [ + ['same-chain route, SELL', makeRoute(null), 'SELL'], + ['bridge route, BUY', makeRoute(12), 'BUY'], + ['same-chain route, BUY', makeRoute(null), 'BUY'], + ['bridge route with scalingFactor 0, SELL', makeRoute(0), 'SELL'], + ['bridge route with scalingFactor 0, BUY', makeRoute(0), 'BUY'], + ] as const; + + describe.each(noConversion)('%s', (_label, route, side) => { + test('returns the amount verbatim', () => { + expect( + toOrderLimitAmount({ limitAmount: '1000000', route, side }) + ).toEqual('1000000'); + }); + + test('does not normalize the amount', () => { + expect( + toOrderLimitAmount({ limitAmount: '0001000', route, side }) + ).toEqual('0001000'); + }); + + test('leaves an amount with a leading + alone', () => { + expect(toOrderLimitAmount({ limitAmount: '+1000', route, side })).toEqual( + '+1000' + ); + }); + }); + + test.each([-6, 12])( + 'the same amount is normalized once scalingFactor %i does apply', + (scalingFactor) => { + expect( + toOrderLimitAmount({ + limitAmount: '0001000', + route: makeRoute(scalingFactor), + side: 'SELL', + }) + ).not.toEqual('0001000'); + } + ); + + test('a SELL over a bridge route is the only case that converts', () => { + const limitAmount = '1000000000000000000'; + + const converted = toOrderLimitAmount({ + limitAmount, + route: makeRoute(12), + side: 'SELL', + }); + + expect(converted).not.toEqual(limitAmount); + expect(converted).toEqual('1000000'); + }); +}); + +describe('buildDeltaOrder limitAmount', () => { + function buildWithSpy() { + const sent: FetcherPostInput[] = []; + + const fetcher: FetcherFunction = async (params) => { + sent.push(params as FetcherPostInput); + return {} as never; + }; + + const { buildDeltaOrder } = constructBuildDeltaOrder({ + chainId: 1, + fetcher, + }); + + const sentBody = () => { + const [request] = sent; + if (!request) throw new Error('no request was sent'); + return request.data; + }; + + return { buildDeltaOrder, sentBody }; + } + + const owner = '0xac39b311dceb2a4b2f5d8461c1cdaf756f4f7ae9'; + + test('scales a SELL limitAmount on a bridge route', async () => { + const { buildDeltaOrder, sentBody } = buildWithSpy(); + + await buildDeltaOrder({ + owner, + route: makeRoute(12), + side: 'SELL', + limitAmount: '1000000000000000001', + }); + + expect(sentBody().limitAmount).toEqual('1000001'); + }); + + test('leaves a same-chain SELL limitAmount alone', async () => { + const { buildDeltaOrder, sentBody } = buildWithSpy(); + + await buildDeltaOrder({ + owner, + route: makeRoute(null), + side: 'SELL', + limitAmount: '1000000000000000001', + }); + + expect(sentBody().limitAmount).toEqual('1000000000000000001'); + }); + + test('leaves a BUY limitAmount alone on a bridge route', async () => { + const { buildDeltaOrder, sentBody } = buildWithSpy(); + + await buildDeltaOrder({ + owner, + route: makeRoute(12), + side: 'BUY', + limitAmount: '1000000000000000001', + }); + + expect(sentBody().limitAmount).toEqual('1000000000000000001'); + }); + + test('leaves a bridge-route limitAmount alone when scalingFactor is 0', async () => { + const { buildDeltaOrder, sentBody } = buildWithSpy(); + + await buildDeltaOrder({ + owner, + route: makeRoute(0), + side: 'SELL', + limitAmount: '1000000000000000001', + }); + + expect(sentBody().limitAmount).toEqual('1000000000000000001'); + }); + + test('sends no limitAmount when none was passed', async () => { + const { buildDeltaOrder, sentBody } = buildWithSpy(); + + await buildDeltaOrder({ + owner, + route: makeRoute(12), + side: 'SELL', + slippage: 50, + }); + + expect(sentBody().limitAmount).toBeUndefined(); + }); +}); + +// The build endpoint declares `limitAmount` only on the `Order` variant of its +// strict request schema, so the sibling builders must never put the key in the +// body — a re-added `limitAmount: params.limitAmount` would 400 at runtime. +describe('sibling builders send no limitAmount', () => { + function spy() { + const sent: FetcherPostInput[] = []; + + const fetcher: FetcherFunction = async (params) => { + sent.push(params as FetcherPostInput); + return {} as never; + }; + + const sentBody = () => { + const [request] = sent; + if (!request) throw new Error('no request was sent'); + return request.data as Record; + }; + + return { fetcher, sentBody }; + } + + const owner = '0xac39b311dceb2a4b2f5d8461c1cdaf756f4f7ae9'; + + test('buildExternalDeltaOrder omits the key entirely', async () => { + const { fetcher, sentBody } = spy(); + const { buildExternalDeltaOrder } = constructBuildExternalDeltaOrder({ + chainId: 1, + fetcher, + }); + + await buildExternalDeltaOrder({ + owner, + route: makeRoute(12), + side: 'SELL', + handler: '0x0000000000000000000000000000000000000001', + data: '0x', + }); + + expect(Object.keys(sentBody())).not.toContain('limitAmount'); + }); + + test('buildTWAPDeltaOrder omits the key entirely on a sell', async () => { + const { fetcher, sentBody } = spy(); + const { buildTWAPDeltaOrder } = constructBuildTWAPDeltaOrder({ + chainId: 1, + fetcher, + }); + + await buildTWAPDeltaOrder({ + owner, + route: makeRoute(12), + onChainOrderType: 'TWAPOrder', + interval: 60, + numSlices: 2, + totalSrcAmount: '2000000', + }); + + expect(Object.keys(sentBody())).not.toContain('limitAmount'); + }); + + test('buildTWAPDeltaOrder omits the key entirely on a buy', async () => { + const { fetcher, sentBody } = spy(); + const { buildTWAPDeltaOrder } = constructBuildTWAPDeltaOrder({ + chainId: 1, + fetcher, + }); + + await buildTWAPDeltaOrder({ + owner, + route: makeRoute(12), + onChainOrderType: 'TWAPBuyOrder', + interval: 60, + numSlices: 2, + totalDestAmount: '2000000', + maxSrcAmount: '2100000', + }); + + expect(Object.keys(sentBody())).not.toContain('limitAmount'); + }); +}); diff --git a/tsconfig.json b/tsconfig.json index 1d04e1e40..78da7908f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,6 +3,9 @@ "include": ["src", "types"], "compilerOptions": { "target": "es2020", + // viem's `ox` dep ships .ts sources that need es2022 lib features + // (String.replaceAll, Error `cause`); skipLibCheck only covers .d.ts. + "lib": ["es2022", "dom", "dom.iterable"], "module": "esnext", "resolveJsonModule": true, "moduleResolution": "node",