{"_id":"@skate-org/skate_amm_solana","_rev":"59-23ee24e497d6eff7c32e543e22010b20","name":"@skate-org/skate_amm_solana","dist-tags":{"latest":"1.2.27"},"versions":{"1.0.0":{"name":"@skate-org/skate_amm_solana","version":"1.0.0","author":"","license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.0","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"a6a525b26f97eba66a5d67bd5410b2839ba1b5b8","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.0.tgz","fileCount":21,"integrity":"sha512-YbhIFZVgI/7AE4vSwuw4rjSoR0n2PmEDnOk+n0dUODUGgx8v0lEX7wnJOeoy5guckioYiyCVOtiKmKW6LwAoeQ==","signatures":[{"sig":"MEYCIQDaBe0i2Z6d7DOpdYxePkbKlTPrwueMnY2Zlmq6fJRohAIhAMl8Qcl7ScCuZmdQAaDo/KrImNCHvPnJ6Voo+g4L61nt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149721},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"52bc1e999a5afc3eb957f7e3578f3c521649c10f","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.5.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"21.7.2","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.0_1743031242950_0.1615251969309599","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@skate-org/skate_amm_solana","version":"1.0.1","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.1","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"df63657d7c20fdbb64811bf8758e7696d0bf6db4","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.1.tgz","fileCount":22,"integrity":"sha512-OWXC54afkLoEDowJW8l9wqwfdyNaq43sCiWZqoy3shMjyGS9sKBzudKIP+4ZPTWnAZD0jC83NqzDeVCKvdBAjw==","signatures":[{"sig":"MEYCIQCinl/8UN/Lq3/Dr9uGzAGRbpoTxkXG9rQJQwUG76Hx5gIhAOinMgS6wJbQwvBzRcfhC4Zy7uQ6jjnz25c4xhgKvVxK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175412},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"bb6a7c7cb3f9e8d8d30b7c2496f127fd1b23de4c","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.5.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"21.7.2","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.1_1743551320189_0.43631373493012293","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@skate-org/skate_amm_solana","version":"1.0.2","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.2","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"b43dc4b010d5fec440051ed942eabbba021f1eb0","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.2.tgz","fileCount":22,"integrity":"sha512-kGZFhA3Pfuf2JoZbe6OMPn53lHB3dpf9bYF6AvmUf+GJVXaOZ30Mu8/QS39xauSdSFf8qQwqNQHK+SZz8rPbXg==","signatures":[{"sig":"MEQCIHy4VdhiwNPzu7aHi2qC7JQpuOSn7S5EYPAAR3iMin9yAiB3KcbNHOggukTUOmrPQDQP8OEo1LJF1/CIHvUG1U6QhA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175494},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"baaa1fccc275fdce9f8d24c29b1697a48e8b73f2","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.5.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"21.7.2","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.2_1743552287975_0.2717977974546879","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@skate-org/skate_amm_solana","version":"1.0.3","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.3","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"395d306b0c7a97db4e2d79e64117ff171207c866","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.3.tgz","fileCount":22,"integrity":"sha512-F/2a0KKejo/Nxqwz6r3EOrmgM6B7eA45UcxjskVHnsxIbYKl54XMLVo/zl+0fBosYHHYWaIIvblUyBmjmaDh/g==","signatures":[{"sig":"MEUCIFuAuntIE1y27Vjxh+8ZuWInvODLX7BOqoZpki5U6HiGAiEAotRDd6dg0CrW/Ci3Nkf3Xpax62v4nyp4Zy9YsydnjhA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175494},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4ddf837b9ccfcd561895d3a94a3e0ff645d27057","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.5.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"21.7.2","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.3_1743552524564_0.38559177254504196","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@skate-org/skate_amm_solana","version":"1.0.4","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.4","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"450c1fb1a373d64a99d5ba228557494c9b60270d","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.4.tgz","fileCount":22,"integrity":"sha512-065pSqmnj1gB0t+IsBk37AIWAjZQGPMEVx2MLMQIcfaV6tiroUw7RI/C6X6ONMHUIX+Gjjwhl4TrUey98zVM0A==","signatures":[{"sig":"MEYCIQDEAWBH5+sUq+g1FqfGlii4fVB/LGTIjug13wv6go0hywIhAIVGzSVSY0NJAOhmBPhcuYcApfHHJ7/EuVOrPHdkA7rN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":175759},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"350d5b5293d1e0aea4e3fef6d2b948b77196e603","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.5.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"21.7.2","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.4_1743664530427_0.2812699230789606","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@skate-org/skate_amm_solana","version":"1.0.5","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.5","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"c78521d9ce4d69a4e1b422d512b00f404f54f45e","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.5.tgz","fileCount":22,"integrity":"sha512-sqbS5OKsCoxTMtF0TgdiHuihPjdFzuTf9F2RuWlKbenjoBe5nC/lPwSjOm43VoMc2tPnTz0zOr8ciiqFJBIyKA==","signatures":[{"sig":"MEUCIFa8lcHhjPyIgybyhjI5wQYF5G21EJztMth/9vc+9DfoAiEA884R3ExRJM6JOp3M8ZYttdewnZ7i/kU8YQuuqqF+Wxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177266},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f7cb85cff5d361122a4582254f057791939236c3","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.5.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"21.7.2","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.5_1743755690521_0.45222363872377747","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@skate-org/skate_amm_solana","version":"1.0.6","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.6","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"3d7ecb143acad800ea01e2b3d2410e43dceddabd","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.6.tgz","fileCount":22,"integrity":"sha512-luR9MfboZlkvmrCvA1M6xa7XFCoRvhEd0uc4ACRAdoyiZ5uyZ5QGsvVc9F4hr9UQ9/HWukiRIwj+Dj0uJgGx1g==","signatures":[{"sig":"MEYCIQDONTRGidY1oEETft04VjJVYZjtoXzJLUrfDGFX/nRbcQIhAMlbnovmCjGn4Xaxog0Pl4UM02Pq1Aqszm+OMc33vC2O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":182505},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f7cb85cff5d361122a4582254f057791939236c3","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.5.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"21.7.2","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.6_1744006679905_0.09046662383513193","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@skate-org/skate_amm_solana","version":"1.0.7","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.7","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"3b6974c6654e680f7a5e0323609d92f654458379","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.7.tgz","fileCount":22,"integrity":"sha512-QhcAL7eZCkvB60DL9CEpov/yHDg2JRZek7CLmAurWsmjzTYw8VfEwHzcp/EYlbnefYYo/JrwOmxoDkCz6D3xfg==","signatures":[{"sig":"MEUCIQCVG9Xz9GmSsTqhgCIiWf8X5ZDMe2BRKmxglsRo0d8xTQIgVfMLoq1TpdYkn5ORfAZ6nI71zpovHLZFDsesQYK4h4o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180037},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4a964f3f18180af20f8eefa66f08e891ae1a87d8","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.5.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"21.7.2","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.7_1744154145877_0.6630472693026073","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@skate-org/skate_amm_solana","version":"1.0.8","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.8","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"7396dcb0598a19d2acc012498b086e8b65b77c4b","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.8.tgz","fileCount":22,"integrity":"sha512-6XBkK5GWHwuntIAarIsy9rFiyzjgDJ55t25jy3DtKeZs7QSkexdiG4arISdaJb15EKG1uAmBYkkFz7+JPQkAKg==","signatures":[{"sig":"MEUCIQCZBY/kc7fmWUIfirkV3whwvMIxq2MzaoHcRl5DNsmWpAIgFQZyflhzmiu+VfkUZLjKoH3+CZxyjkrzMjisOIDHVJk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180185},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"6a8e7a5ca92770e8a4c5fb07061931bb22070aaa","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.5.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"21.7.2","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.8_1744196016249_0.00005624454805430723","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"@skate-org/skate_amm_solana","version":"1.0.9","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.9","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"651203b53c017c9b3b03d2dae9a323abe36bba34","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.9.tgz","fileCount":22,"integrity":"sha512-DRQxTbVdrRE40KecjL1Lw+eCFEyO+8iuerTjpJMN5IJw4kyh/BTnukMDFNKxR7WUzSBr2CM0Ncg019Mybdm6ng==","signatures":[{"sig":"MEUCIQC+ElcJpntLBwXrSbOtStmT3rCXKjuR5Y4eguTakXGOvgIgOI5+tbgcSfL4p9tGnONQ9TkYj9Aql9neK3CzGsDmIas=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184456},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"90b6480214ba9828b003c69f24c98d14b5a93bd9","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.5.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"21.7.2","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.9_1745454686436_0.8694424966040359","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"@skate-org/skate_amm_solana","version":"1.0.10","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.10","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"a4aa5270544bfde9ed3cd5bbf9d2e9ea78bbc480","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.10.tgz","fileCount":22,"integrity":"sha512-Dk6doNkzKtjt5SmkZL9ykxIc0PqvqLj6hred3WOWZlo1axQvA4tqWXI85+04S5lEPFIBPceTA0TmN4vpFvkyUw==","signatures":[{"sig":"MEUCIQC1jBXY+HJElj5NH7nIrT3Y837LGsrfds94Dh0bjCL2sgIgTbmYa8NMozc44KZ+v/G1pUCxxozgWYvtZjMxrVoV0z4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189744},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"cbb9ca2ff4d4ad9957fa87cabfb10e44ec17b97a","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.5.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"21.7.2","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.10_1745458373615_0.5933575023326607","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"@skate-org/skate_amm_solana","version":"1.0.11","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.11","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"89465eb719eee5910c75040bc9d490d574a30ebd","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.11.tgz","fileCount":22,"integrity":"sha512-XUkrxxFW+yNP8JEPvN0eL+5j1kBOyz65+ZA0IQrE0MXZzE+uPZTeXhGs5d0IgoxNMQM7PRZLFrmCm3f0Zip54A==","signatures":[{"sig":"MEUCIQD+jlcrNSXhkTQDo1ugL26mR3VO/Re2MzCgc8VOKrRqxQIgfki0lRIy66eUljYWMtpSDUZTrOSmYOkwrz271A6qpDc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189743},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"cbb9ca2ff4d4ad9957fa87cabfb10e44ec17b97a","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.5.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"21.7.2","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.11_1745460948118_0.6637980947727748","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"@skate-org/skate_amm_solana","version":"1.0.12","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.12","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"f8182ce08ee4a9610a640c1997d01ac683a9259b","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.12.tgz","fileCount":22,"integrity":"sha512-B8jFpc/eWkP8cztQxWTcC30NWgHf/HM0ZeluaA4peGe0TYa/APs9Oph3HL7ZxnYPCOV1d+buLlNJran/GKl05w==","signatures":[{"sig":"MEQCIAD9wQTyCKBGe/CklgIYlzsnx6Crtdm74s4zA0zITKBVAiANf5UAovRNWRNP8w2cr9+k6F8quhPUUx/4JJ8XbqbdJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189662},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"cbb9ca2ff4d4ad9957fa87cabfb10e44ec17b97a","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.5.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"21.7.2","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.12_1745469151579_0.8241951945230397","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"@skate-org/skate_amm_solana","version":"1.0.13","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.13","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"eb375adead1a87f423c1c617ee3197921d7f9652","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.13.tgz","fileCount":22,"integrity":"sha512-E9ExPRwjd1NtOXv8dvSo4wHaUXjeVve7FPyTW8Cn2MTHk55SBHeNgz5iPiWUuOBDIwVBz9oyomLBBdWWoJHKvw==","signatures":[{"sig":"MEUCIDAOPUBHG++0JDWWpbHRx++/ZiWeC7mCRzZtvcQTcbhtAiEAtvLDP0tmeJ7pyR/jHO4FORNEvL6hWaYDuHO/Aufsq6g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189662},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"fd1affec85fe7cfde8177e102003b425cabe7ad6","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.5.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"21.7.2","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.13_1745489530646_0.4097045187549784","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"@skate-org/skate_amm_solana","version":"1.0.14","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.14","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"675e5d3e1f0e179945452561fb6358421e5c965c","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.14.tgz","fileCount":22,"integrity":"sha512-DM5I6SXHhDL6HSloI0+UB1efN2+ZcZ7MAF2Ma8P2Bg8nrCmu731YpiJHFP6NueQwaBSaU5SaToF/nQweO8nAkw==","signatures":[{"sig":"MEUCIQCqBSALhj/DV9jGSTY11uVsULfJRzIlU+MIA37XQMApDgIgDRakn1tH27xLL8Ftumt15g41XHMVvbTadOVT+NctL8I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195687},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"37ae72356b347e671acbd35d3754173820662f1a","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.14_1745563621235_0.38661951905566805","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"@skate-org/skate_amm_solana","version":"1.0.15","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.15","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"8c1e19fc6b13ab9481153ac3b2a56e599ae84276","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.15.tgz","fileCount":22,"integrity":"sha512-R7mlkiQiiXJD/aixpFnOYNyC94UMbjHfT50ns3WPZeK58MQudH7PkzNCdD1UZG2qCXC7PcL7yOpxwnFdFLl/Sw==","signatures":[{"sig":"MEYCIQCDpoyXrza3RGgppiqUdhdFtbiInIJth9gP7h31WQ98RAIhAMgWrSh/6HwQIzCRkh4fpd1RM63qAIPLL7nW+U7shKym","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196327},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"37ae72356b347e671acbd35d3754173820662f1a","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.15_1745881978830_0.6458370242119467","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"@skate-org/skate_amm_solana","version":"1.0.16","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.16","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"d32a8b7396a3839e7358bac159ecd1b1b5073511","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.16.tgz","fileCount":22,"integrity":"sha512-fNnGo7gx/Ex5a0VhS17E1lSv4oXTJE2RINEXyEImJ7YqsHfbQTmdHMXFcN+w2Pt/mv5U//7mpMO7BEnYOiM1lw==","signatures":[{"sig":"MEUCICkqy6r+uhfcEl16kukhGxLIijRoAX8S7IHL12RWnR1zAiEA3RQqGNTzOrYbGeWAxeOTyg/3G8nmXgQ32EKs1J5uQhM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196308},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e43c6eceb968de77c10783f19dec0c812965f2f6","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.16_1746188078191_0.7009788980981753","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"@skate-org/skate_amm_solana","version":"1.0.17","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.17","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"59c01c614428dffca45761d0d0580fd1908a8cf6","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.17.tgz","fileCount":22,"integrity":"sha512-k2hKyDgcw3lwfi6fl6WCT2I7L+Alzst5rnYHhJxvbMg/die2fYmA1VMepFmMCznE8KKFbTdp0SHCfiQKDV1lrA==","signatures":[{"sig":"MEQCIFMmwk6OZg3Ok3E1kW5dcgDmqHKYTQazGLII7G+nPlrhAiBoN8av3oKrqK/dCxp3lJWN4B181SqUbxFr7IBxBA2Prg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":196308},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"efaf7ee47e4f29f1f840c17d40f95ee5d0568f21","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.17_1746440550726_0.5701112709810954","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"@skate-org/skate_amm_solana","version":"1.0.18","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.18","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"655da2dbc6ba0b06615ed1ee5477bc6828dc0977","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.18.tgz","fileCount":22,"integrity":"sha512-Zwrmo+/+M28x9rXJsGTV102/bmAbXyToznboJRXZ5JYbycxIF9ApeneSZgHukDRs/8Y/oZ54CNF8tQxGmdQHEg==","signatures":[{"sig":"MEUCIQCcSkCTZRtWkhI+aGW1YbIOXU1h4H71nlZNrobTCYKQgwIgekVKxBrPD2e+7DrPf9AQMMJY3m+hb0iha6Eto+rCkQU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199959},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e409a7e0629d238d75bbb16252c72d2f427d99af","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.18_1746526879572_0.030601467995161613","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"@skate-org/skate_amm_solana","version":"1.0.19","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.19","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"86e3a8f20dcdef3a53c1976f04292dea7fbe1969","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.19.tgz","fileCount":22,"integrity":"sha512-UMC4mMsQgAHfL6yZMNOJiqt1XtTOwMi2WFw9FszLQVPJKQSM7jv22HXIweihleBA1wZxzFKOkqbKbfCKa+W9XA==","signatures":[{"sig":"MEQCIALvQYRbb5wHaJDWxQjxV3zJ7jj18RZ9C3BKyLE+rjcfAiAaHcJLz1i8yizXAXatlhWaQlcQSLgsVX75td4fn32E1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200045},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"022c99114caee54438e64476527a4622bcbeda1a","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.19_1746608016013_0.4821388339391466","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"@skate-org/skate_amm_solana","version":"1.0.20","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.20","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"7684680423d9986993be9004cb16fca9b93ce562","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.20.tgz","fileCount":22,"integrity":"sha512-NcWG9/I8RxAS5s9jHqFGzhUV0YpfJVrCvC6cSwR5hIwhRwz97ixyPlY259FZ14bxi7lwQlklVql0fA7eOKi+kA==","signatures":[{"sig":"MEYCIQDsaNVLSuAXcvYgqRjrk2K3Mx34Nc4FNYdd9xjf0Tw36wIhAL1sdj2sMBUwpTe7hSJPSv9HikDfOcGISYkogV/E0wo5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":202814},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"47953cf56ba320c321352e4bf0ea4422a9d13530","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.20_1747335946012_0.6260087647509449","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"@skate-org/skate_amm_solana","version":"1.0.21","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.21","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"c7ee987e747748e4556b5fe94a770f8555de986d","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.21.tgz","fileCount":22,"integrity":"sha512-Fc7eh+oDViIMjpWy7llUBUl3KDL7oKMFFYECQMMTvNebjFysTISyhcblyJJVrhufDmC5s4IS8CWrwOB6K6mLxw==","signatures":[{"sig":"MEUCIAHdNQGAInpXG/pmPc+kjtRtNO4Q8itmnkDVF7wUBWI/AiEA45QSEFOXjCQQJRmPaRSMt9DdQ4h1Tct9wm59RExT6BU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":203437},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"04a0a5199a58584dc37bede22ee987516e0fb423","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.21_1747487264998_0.32173425318110116","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"@skate-org/skate_amm_solana","version":"1.0.22","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.22","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"45c08bbeb6fb1d84e3fcfa02f5df706c585ddeec","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.22.tgz","fileCount":22,"integrity":"sha512-bU6bze6ZDPxAEq1GlIpZ1+LCr8QWzviK4a82Q5PnuRxXSUA7KObBO1yEE+D8QC25G2acssppS/8Vxv90rY04Mg==","signatures":[{"sig":"MEQCIB/a6xMZT+bsds+o5nqba+WYMr2HZvQ8OZ0vQG5t8F/fAiAUTZF8lJ7p1qkTft9L9v9mOZku5x+/otIDWCZ/l6YOYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204339},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a123857dfceaa08a0bdb0ac72db8942947b6a340","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.22_1747818839576_0.4399218955229496","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"@skate-org/skate_amm_solana","version":"1.0.23","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.23","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"efff7fd8588fa66a07872dd023d9dd2ea59cc2f3","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.23.tgz","fileCount":22,"integrity":"sha512-9krZPtJ7YnyGXhKFMA1RrFeBD4Qtxe6FRC5A3fnGy9RY403bSbT8H5Sw69ZJ9dbd3JrL/xWiXKh7P0vKaDOmfA==","signatures":[{"sig":"MEUCIQDvgD+t71QbPxUOKo5ynLf4rSlMMiV8FraGW6YPBvzfpAIgalHMqaBvZvnlL4Vr/2RIXWLUw9D2jcfSjowq7trAMnM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205247},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"47de4d11261942f4b125cdd292315bf3bb7c84a3","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.23_1749333138092_0.7577915594748594","host":"s3://npm-registry-packages-npm-production"}},"1.0.24":{"name":"@skate-org/skate_amm_solana","version":"1.0.24","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.24","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"558bc61ab3a8ecf7e9b107545e70abc626ae16ce","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.24.tgz","fileCount":22,"integrity":"sha512-rfzhL9ZHjj+zsS6/kDWswn6ei7qCERwvRQoCZGG5BiCF2oWNDIt/Z093eeBYqVCO27/rE0gaMDgyHqEaysZ5HA==","signatures":[{"sig":"MEYCIQDA8xk+tzKkIgaFg6yUo9zRpnJUYhLif3Tp5bNIoSW0JAIhAJvvDxVt9Se1wws+dbuEjLX/0l2U/hqF39NcOsoT7Cw5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206157},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2bb7bf9ac829e8b0af66557149d4ec460b5ea6ec","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.24_1749545307981_0.5742283858073878","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@skate-org/skate_amm_solana","version":"1.1.0","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.1.0","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"b7a60c3e819e885ebd511e30ae93dd26ba47f2b7","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.1.0.tgz","fileCount":24,"integrity":"sha512-p5CeFTiK/nEFNv73Gl1Pe3J0GCM37bw5F9hCW5FTMar5p4AmC4EM4D6wtvPhn6gCLF/+EEZpfuFfGXofzBVowA==","signatures":[{"sig":"MEUCIEobY1+lRHCF/+kGP2aix7+rpD7CWpKA9SJq6/f3VV1XAiEA9P562xLNXseUmCQ7KX0i5yQz1LQ1mnUCX0p8aAjLBE8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":489500},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"f9dec017e27f025a792cc60b76a2a9cbba4cc986","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","actor":{"name":"0xfzs","type":"user","email":"arpit.srivastava@rangeprotocol.com"},"email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.1.0_1750923941623_0.8214252239785127","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@skate-org/skate_amm_solana","version":"1.1.1","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.1.1","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"2a5df48d53f1ac05e50ce86b444648d9a7cd4faa","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.1.1.tgz","fileCount":24,"integrity":"sha512-c+/G6XEvzFChhWLiKVUvnmWeSEIadohTx6g8OB6VBqVPGoRjegNgrTrf5tHJGHFxkBkDIUd5grlWP7+YDfIhIg==","signatures":[{"sig":"MEUCIGD2Gcm3CjoVccchwNtmJBWHihs0Xb2J2xA5NDUS8LYlAiEA6S0G6IQUyyq6nI0lD3bSPKiOmpUYOx1SM4cJMkqjAqk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":487842},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"527174768f3de7edad5da2ab78130896437b2149","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","actor":{"name":"0xfzs","type":"user","email":"arpit.srivastava@rangeprotocol.com"},"email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.1.1_1751745519489_0.3971796459647503","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"@skate-org/skate_amm_solana","version":"1.0.25","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.25","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"c388e8dde9bba5d5d7756e2bedd47401779d1b6a","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.25.tgz","fileCount":24,"integrity":"sha512-aLU49DejjhSsXfeOCBxKuWfRDEnPXSHE95+8EgiCLxEEH4KaPAUb/SeEw+hcBZYnXHj+oBTo0rbwtWr19Z+68g==","signatures":[{"sig":"MEYCIQDF46lxKGuexoqU7nQCnsn0iGE/VUOZaIfRaSG3vkEv8gIhAPfDPG9pLcOmcsYiEWYUCpMlGzW2vdaG45WKoMMgx7iQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":449574},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"58346ad44ee4516dddcb765e1c8b795c815fa307","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","actor":{"name":"0xfzs","type":"user","email":"arpit.srivastava@rangeprotocol.com"},"email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.25_1751748516879_0.14718774336368368","host":"s3://npm-registry-packages-npm-production"}},"1.0.26":{"name":"@skate-org/skate_amm_solana","version":"1.0.26","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.0.26","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"5e59843a39d6b2e98df14533e42e4040c2c01e38","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.0.26.tgz","fileCount":24,"integrity":"sha512-YySlUNIIi0BmN7hoZOWHWRZyt2gj1BKbHpbvHI7fbsibDHUXLrR5qEAH9/AmcLjxnKNsKl527GSM8f5qGToEGg==","signatures":[{"sig":"MEUCIQDczf6NOVQ6Qk4nvJRaHMpUfVwh1k2o+Ys7rgERpOvWKwIgXLPEYM57+lH0Z0aHofj4s53qfsX/yp2md2G6NVxmW0E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":461230},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"93b47dccac55e71e3a4ef8f530e95db59e848be8","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.0.26_1752635443818_0.5676594399735502","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@skate-org/skate_amm_solana","version":"1.1.2","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.1.2","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"e6a3bf93b47666f184099fa4dcdd97ac39d0d544","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.1.2.tgz","fileCount":24,"integrity":"sha512-5FefgwSnyUiWQghZx7l210sqI8Q3NvURv8rXMcWSJaALBGNso/Kc0VRh2/S1aZeU74cNI/V8wL9hGVnhA/H7Zw==","signatures":[{"sig":"MEUCIQDFEaX4tbeq9hei1Mog7PNQpqqq5lXRAyYrzfnvHCNMoQIgUWuMH0i2bUUrY2wIDFQumZ7M4YCWpWrvtK9JFWJosIY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":487842},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"7ca80a8520d277c8dd92b63ab17b791937c3ee87","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.1.2_1753096829038_0.18296553373443936","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@skate-org/skate_amm_solana","version":"1.1.3","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.1.3","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"475c5ddf814400cf83283ba2174a1073c19266d6","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.1.3.tgz","fileCount":24,"integrity":"sha512-Wnxuy/0pcUY7C0jdTht8RSyVZyAPgaDt6Xbk3EDZXk8bRWNTB9vMKKI9go5CsCfCEctjGEnWqpYjJ+HLowhQbg==","signatures":[{"sig":"MEQCIGYY7ulaqZMBJJOOKrcmASpODjVCuLHkdm16ZboOpbkZAiBZKm3KVWPbxsKIOYjgFccor/HIXxeQ+xYvISNbum8Fcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500881},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b49f31c70517a71705b4bcc3983df147a414d7ac","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.1.3_1753159893403_0.8923398787608181","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@skate-org/skate_amm_solana","version":"1.1.4","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.1.4","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"b5de31bbf1614ba3631e459578dd3002981607ff","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.1.4.tgz","fileCount":24,"integrity":"sha512-3KW7XvvDf9ILshpI+RGGA4b51XbM5RSoQ//Rr3bJj1zTG2mdHxvbf11w+Ml4iuJe16DLNw8TvttysWjfE1RMXg==","signatures":[{"sig":"MEUCIQCEx3YfiafnfY6zKt5lT2PR85tA9yTpj0vsHGj5dTrWuQIgPPqGnENasHXTPtlqAqangdd+CUwqIClVo8paz4PuYrc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":503483},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e21fd6832aa6f16784e11c0c507f4d54169111f2","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.1.4_1756154602668_0.9075565067098961","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@skate-org/skate_amm_solana","version":"1.2.0","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.0","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"baa990acc40ef8307dac68086b97d01b550cb464","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.0.tgz","fileCount":28,"integrity":"sha512-70AOnuFSr0jmxWuUQ+Ww9EBzJQe2PqhMTAFMTPQmjpKiyeweqVEmZPEfmUK2gFboIncAhzulUaiCkqXiv+bidA==","signatures":[{"sig":"MEUCIQDm+lARcrq5AvWz1c/NW7YS5tVYkentwCd6gvN+RNtrNgIgCOrNWDTqULJs4EPqas/F3WMDOHV43raTnLCoOWRnl3g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":545824},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d00d3848678a8d912ecd18ff0c5057e34de639f4","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.0_1758007698295_0.4760080193165537","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@skate-org/skate_amm_solana","version":"1.2.1","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.1","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"14637802c22cbbf425c8e2b1ade12e880d2c51b1","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.1.tgz","fileCount":28,"integrity":"sha512-JJNckGCUQ6TODLHN5iVp6CeqsT6gZ3suCzS8f0fyEDiMhVnQvYoWkSFUJnYthWL+QcUPdY+MPIkB74PsXdoC1Q==","signatures":[{"sig":"MEUCIQD7SD5ZwJZqHwliigYQz09PmWpGqapaNKrPEGp2+qjwxAIgXbfRPf/D5tiPFXYOEIRairp/Jn5wPXO7PCBaRhgZoPA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":551242},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"12f9a40a134600748c6892fa8e44105ddde2b54f","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.1_1758056051889_0.27507070021064317","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@skate-org/skate_amm_solana","version":"1.2.2","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.2","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"4cde48c8cebad14e3245282406e87ff82eba4320","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.2.tgz","fileCount":28,"integrity":"sha512-Er5cJoS1n9OdG2y4/1vI8hsm60aUR7aC8SZx35gaddFcjZWN7cJRiwxbhB4YOp81mQjm6fUXsebwJjJmUgJQsw==","signatures":[{"sig":"MEYCIQDSQ6HAttip/5sler3EW313C0OIDvOdmRJ7+fCIn7HN2wIhAP1U1QBOFSJdqRllkoKkIhCdOP5mSMeWwcVpfsFFv2Nh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":551241},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8e1e0427232b33b7079dd93b4b08ce52ea4e977c","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.2_1758060752538_0.6319110492866538","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@skate-org/skate_amm_solana","version":"1.2.3","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.3","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"5062c3ded6fbf25e2f41f40f1585ed78f02983e0","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.3.tgz","fileCount":28,"integrity":"sha512-jyOpBLai9Ni0C6gcC7hAFH3oD001xP2IBJCUhKwEyOMNWXGyKwi5bwjab/rrqVckh+oI/i1+QTS0rrsxOR+b/g==","signatures":[{"sig":"MEUCIQCtHsgcDpAu8JkPXb/yuSbyXk3a9iXPFKArZP4PpIbj8QIgXd/RgX2BmInFKmkwbQLh6xNqx2wVJNqsdw+1B20e3Do=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":551241},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8e1e0427232b33b7079dd93b4b08ce52ea4e977c","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.3_1758061634286_0.9518104454064658","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@skate-org/skate_amm_solana","version":"1.2.4","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.4","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"bd6574fbeee6efea633b5c4ba2d7bf033cc5a8dc","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.4.tgz","fileCount":28,"integrity":"sha512-ycjNARTTTRYWfEhAyRK43H1fUOQ5l+NJVOXqhshuuPrKVDnp7n9b8rF2IEKL+3rFKBL/2luCGWm8qMr/4zKLbw==","signatures":[{"sig":"MEUCIQDoMe6FG2ulVlykgTgIMfSoRTrbY5b07ef1ON7h3k6H8gIgKbVxHnE0KTs9z6+MzT6SH1vZ+UohDnmg3hGJODcuA9E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":551309},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"5df3515808437ba4b69ee2278b0ae0fed3162a70","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.4_1758140960475_0.43949252657354254","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@skate-org/skate_amm_solana","version":"1.2.5","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.5","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"96e71cb145e3d423ea522bd84038f223888d942e","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.5.tgz","fileCount":28,"integrity":"sha512-8Q1IkDN0Pi8CXUt4kmXWp9kP0WwMP9B+hTVC5Al/B3blL2VrJBmWB4hCqJ+jKPfC8TNwbN76AGRKX9fOqNC6Xg==","signatures":[{"sig":"MEUCIQC/8iYNQJyXrQEIwBlT+kupv/ScnxcbM4nFR9p02RECkAIgCgWiMRVDwhLf8NVG5u6/ax3r1dj+hdvKFtGDQsarihQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":551345},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"030fb5dd8e6705938e8d43a7eac2902397aa3e71","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.5_1758142241185_0.3600230479381028","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@skate-org/skate_amm_solana","version":"1.2.6","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.6","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"21b2064a0950d37459a42c60fc78650c81f17707","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.6.tgz","fileCount":28,"integrity":"sha512-VNKsmeuo5VTE7OfPUpDWPYZZo+6Vcio1tx4cYGtCDgf/h9rTonTX1rO4I0XX8dTR9AgnwR/hCdt8kThabZ3Y5g==","signatures":[{"sig":"MEYCIQCPExWZXlgHCLUsjvw7IFJ15yRxKhANgKqKTJ4JA/hHVgIhAPVdUz+GFVS3Y0LJUwK+2IyBE+b9+QDIl4NDK/zDd7Ug","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":552109},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"b38770444eac6d056dfb973fce0a5edb8b4edf23","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.6_1758192591965_0.32928708509557714","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"@skate-org/skate_amm_solana","version":"1.2.7","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.7","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"c72105257bbd77894660c06aeec3764347f07283","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.7.tgz","fileCount":28,"integrity":"sha512-cAC0f3ZiQppAAXrYBPDAzYcijsDD/LlEL5trQOf+ilJKKNVkTbi76uF57jQzsNYQCCMfaPiTBezhVwLbX/Y+GA==","signatures":[{"sig":"MEUCIG+LGejRokTDwSOPNpyXPszmQqHo7dSC5RhruWkozKDZAiEAz2ZGg7Ly92GSKlxSY60MAFlu4RPk4KFSvMyzXZrtwms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":552171},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d8a6b6275da8b421bc729cb583b744bc6538bbae","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.7_1759898775017_0.37594883939276147","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"@skate-org/skate_amm_solana","version":"1.2.8","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.8","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"f5429dc483e7b690d9dcb0327bf602377df99a24","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.8.tgz","fileCount":28,"integrity":"sha512-94ItJndfLlJDJPaled2Espi5BNmcDftYQNzIJFx2I6+m4vDMRbDWIk8QylQ47pXDCQaDN5RcK50ickUdVlBz5Q==","signatures":[{"sig":"MEUCIQD+VzQRiU96ATxB4ksWLoFQMZJShi7tu0eMLCYbzeH5pAIgdw246m+eOTnHEeTII4tX1RZsd432KHVhWhW+Or15JYs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":552285},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"c19e79949540daf0f2ee44e3d061f1c034a62b9c","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"10.9.2","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"23.11.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.8_1759899189280_0.4156942637959937","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"@skate-org/skate_amm_solana","version":"1.2.9","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.9","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"0af71f9d35515b9ee904c601f23575a7b7662b18","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.9.tgz","fileCount":28,"integrity":"sha512-WYg+Mj06A97IW2uhlXTL3DQsc5+FnKBoVUZEsTEmNdQYjTquVOj6xozggHODzmPnG5lIcJaIgoO8nwFih1RKBg==","signatures":[{"sig":"MEQCIA1p6PgPfW+rh9rwPGMDdgbS1hSjP7rj3PCwIwgHkIP0AiB9f1XQek67+MFN4VFvXp6n3IXdySPdGAkdkXWaT7iknQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":555312},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"95e3542e92a680f0477a2179c7e222be56f60c4b","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.9_1760390441030_0.2516410434383516","host":"s3://npm-registry-packages-npm-production"}},"1.2.10":{"name":"@skate-org/skate_amm_solana","version":"1.2.10","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.10","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"f6a72e2bc55fdaf81c46f260a8022308cbda47d6","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.10.tgz","fileCount":28,"integrity":"sha512-+iXDgxDnROp0cStDLLFZD2UHRW+TWMkzzAAB9VKuXfkgTMW+WHep2YczL5YmKK5GyKqwHjedBdaXvmGIZr/V6A==","signatures":[{"sig":"MEQCIHGkAd3q2zp5q37uFlBihTfsUcPQDcFDJtDIPNC+Ou+IAiBir2rVaedB2Dg1ADDwXyAMEVqSIX5J+dVpyBAimSKhcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":555176},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"1e8885f0e0ea24484728cba7739169b2be8ffecb","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.10_1760402746360_0.11125440979962398","host":"s3://npm-registry-packages-npm-production"}},"1.2.11":{"name":"@skate-org/skate_amm_solana","version":"1.2.11","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.11","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"1c3ad9f1140aefed637b2961f000ebb6a84ab6e8","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.11.tgz","fileCount":28,"integrity":"sha512-Dh4hrShmLBRzZ/02HB/mktHv/6IAWVOxnPD2bjnmi7WwU1r7wCOqrvd55Vvy701giLajbeuZEkCWFDrXzZhKeA==","signatures":[{"sig":"MEUCIGgSYlU5wdZEg0UAOP8hF4hw7Ggh3jnKQIJ1kQ7jZJtLAiEAgsW7nTAiN2yoInolDpeEZ4sGSEBfs6XAxfghVpe7nxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":564397},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"5b68c83533099c35d9d8eaf7f1b862c0043f80a4","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.11_1760692435809_0.7604277625423606","host":"s3://npm-registry-packages-npm-production"}},"1.2.12":{"name":"@skate-org/skate_amm_solana","version":"1.2.12","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.12","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"19eb9de014bb821d2b6206e313bb53e6b5b1f9e3","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.12.tgz","fileCount":28,"integrity":"sha512-BNI83HDaAORYHvrX9Z2qqkrEH0LwU0qRbC9SeRlLHN/QWDfKoVcGcplUuVdjXivwrGzIyslmmMpBpxOj+Ftxdg==","signatures":[{"sig":"MEQCIAIEgPuqcdRIh0djK59N/VpGdSUAsXxTBz9kCQz8IzeOAiBFAG8maNZHwO2iBrJCksVjkVVyYs6o8bIAZBkykfX2iQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":564408},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"5b68c83533099c35d9d8eaf7f1b862c0043f80a4","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.12_1760698878823_0.031193674966321305","host":"s3://npm-registry-packages-npm-production"}},"1.2.13":{"name":"@skate-org/skate_amm_solana","version":"1.2.13","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.13","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"f4e5d34cf626836f20bb4678386f28fd7021aa17","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.13.tgz","fileCount":28,"integrity":"sha512-I7gFMKS63cdpSwgwKo+mg9MjMhXBjr3W37Mhi+T9TCktuzRe0VnIePKxz2x2mbW98LRDETGusUZNROEP0syryA==","signatures":[{"sig":"MEYCIQDZPoPuCy4zu534kT0aidnErn/SPTRQgv6FHeiioUxAYQIhALbrD56BabeY5DLcWXB3jMsFb+dLIuwG5ItRuj//fwWc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":584378},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"501c0618f3984ae08a60faf832ecab5a59a4a365","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.13_1760733963789_0.9805270573134117","host":"s3://npm-registry-packages-npm-production"}},"1.2.14":{"name":"@skate-org/skate_amm_solana","version":"1.2.14","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.14","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"db6bc832735d662eb780fc4a5972a1b1cb1d4e5f","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.14.tgz","fileCount":28,"integrity":"sha512-ph5spUzKRnbVc0lRt/Vh3eTNhslS4aLCobX1P0F4jthw0iZ4SLglvr65m8T2fEF7beY23MhDH0ct9kEHrgo+oA==","signatures":[{"sig":"MEYCIQChbQA1QeCGMBaR2hx10I8nYF235ec7JWMG/5uF00icdAIhAILM1g9DA/3WyiE/+oqJDe8SODf6+4+PxJGZ0ez41U4y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":653105},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"8d6986b7c4957b1a4c220a4efb3b45a9d8919085","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.14_1761135133687_0.395739639953713","host":"s3://npm-registry-packages-npm-production"}},"1.2.16":{"name":"@skate-org/skate_amm_solana","version":"1.2.16","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.16","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"d0286613ee8acbcd2e9d0ed9618de6071a270e86","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.16.tgz","fileCount":28,"integrity":"sha512-6luSk/KSzZLuf1nW9AKlqrKfn2bANlaS9DFx8V7aQXGFJe45K7BZLk+pAX2nwPF+ebBNR2tHbsYnV6GL1lFAwQ==","signatures":[{"sig":"MEUCID8qaybmbiNDoTv+m3VnNErmWp14DeBkya6t8WtFSP4zAiEA0JPd/UTtb51gko0y7OVjS3TxWsIR2gXOml/6CUctY4Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":653936},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"41a7c1f790588766b088a884faca886689399385","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.16_1762402462069_0.25771128232029694","host":"s3://npm-registry-packages-npm-production"}},"1.2.17":{"name":"@skate-org/skate_amm_solana","version":"1.2.17","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.17","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"2590d8899b6a0d6beb5380933a00bc7f91c16e48","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.17.tgz","fileCount":28,"integrity":"sha512-uB2g01eBHPLI9+apTOSaWPamMXKdOlYJqlYaqbqaVlu99vZpGNj6OzczJlrnvZ66pDsdP3Il4tnUjTzKrrtbkA==","signatures":[{"sig":"MEUCIQChINRVvse79o3xVW6Kus9s075MwHM285eurR9SE1q2WQIgFLUrCUVnAa53Qf+dlauYwb7H2VdEqOmc0UlJ5dw0CDU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":653936},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"460c23ab946134d6d23a26629cc47d012a84043e","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.17_1762491007257_0.41375532617570765","host":"s3://npm-registry-packages-npm-production"}},"1.2.18":{"name":"@skate-org/skate_amm_solana","version":"1.2.18","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.18","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"69996c5fcf34fa2a48b6eab0f660c3c8965b78d1","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.18.tgz","fileCount":28,"integrity":"sha512-nIg09BDYWJzMihfOV+S5fp2OgZmBCb9iQp4Yjwd0PUgHtoVaAiF5C7giglwMhzdhQlaUB6lTGyZmLFRAuPlN6w==","signatures":[{"sig":"MEUCIBa1jPjy41DTVoT9eyrfr2lpq9184n0Jk9DSLa+H20YvAiEAtRe9DbJdwIWHVHarsoEjmzP/P8UABltBW241j4nIyEA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":653958},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"ac647a8251d423c0328ab05649842c4747af5451","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.18_1762968563112_0.3597036263971152","host":"s3://npm-registry-packages-npm-production"}},"1.2.19":{"name":"@skate-org/skate_amm_solana","version":"1.2.19","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.19","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"3ede1f35f40b7c1bf34fbe40d600853dae1d24ea","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.19.tgz","fileCount":28,"integrity":"sha512-HvIUvHWoHMPWXDNdeEPCK1cBZg8F3nx/K0LffAhgTujpbo0xNtAO9vsOsgSv7V3dqFngfWM2dm1neDDWtsyISQ==","signatures":[{"sig":"MEQCIEKsGKlS8nrKaevOL+DWgDwWiS9cPCWZVt3hGyCQRvwCAiBjl3mDw2NUqUaB3J75ICHtFKuN9p9WWkLPCGnnYKt5gQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":655857},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2fc3a3a011f36d16e983b541d28503f00414a301","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.19_1763442521915_0.4415980524513863","host":"s3://npm-registry-packages-npm-production"}},"1.2.20":{"name":"@skate-org/skate_amm_solana","version":"1.2.20","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.20","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"97a5b22418bbdf0d441681fe4721502b291581db","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.20.tgz","fileCount":32,"integrity":"sha512-ZNfiLPE2p/xAbdEsW7NMCDjs8ie4LSTNr2zrGMvBmEy8xzgDb9gDgWsVYtwb67U7f+CuA5j1PvQvaM+fbmuUmg==","signatures":[{"sig":"MEQCIFJYX9b4HYapmVTJrsYL+/u93zk9kR8Y1M+jlB6no47ZAiAM5RJALWDCSe3Vjr5n+RDMooucVhbL9S/eTqgKtphPOw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":678617},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"2ef6d3d02352c8745a3e27d84d244623f147a73e","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.20_1764100445636_0.7499579502855307","host":"s3://npm-registry-packages-npm-production"}},"1.2.21":{"name":"@skate-org/skate_amm_solana","version":"1.2.21","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.21","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"}],"dist":{"shasum":"8b337ce856f66b5d8e418811197f1193bff7d960","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.21.tgz","fileCount":32,"integrity":"sha512-RujN01Cyyzmm0OuahEr2Tf0dgbXk2pOBADnyDQwtEsP5xvmTA7LzJyvDma7ncgWE3h2ypeFLIrsiQhMPfNSmZg==","signatures":[{"sig":"MEQCIELzhQw0nNFabk4cspCvOUa5gOymZhEdNL6IG/uK8N1wAiA25rpo7z6QVoN+5rQ8KAKXUeeEfxrtxP/A1p5KIZedxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":678233},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"7d0b98f77591eec651b589a498bb813f1619acef","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit.srivastava@rangeprotocol.com"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.28.0","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.21_1764833964397_0.10479426251241497","host":"s3://npm-registry-packages-npm-production"}},"1.2.22":{"name":"@skate-org/skate_amm_solana","version":"1.2.22","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.22","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit@skatechain.org"}],"dist":{"shasum":"5735cd8f7b37b85d8d9e80668681fd496182023f","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.22.tgz","fileCount":38,"integrity":"sha512-5MsHm9F3uGfjZqMOVkikvT22cnVPzPMNpKvYy6rMGKE7VX8Oglt4VK3SDFpWL9NjQcEwuaqgnPz5gGtQyGxq5Q==","signatures":[{"sig":"MEUCIQDuwVsRBPZX9TrixRX0vNOggmdQk1oRHGxX4IMmtqohRgIgJ+gq0EN2ThkDcrpms1WknVNAFTzqyY6oRdGhs7tlouU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":920349},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"a097bd7ec058bfac32a719070a83587717a72d78","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit@skatechain.org"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.30.1","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.22_1767898024177_0.8411416664208604","host":"s3://npm-registry-packages-npm-production"}},"1.2.23":{"name":"@skate-org/skate_amm_solana","version":"1.2.23","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.23","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit@skatechain.org"}],"dist":{"shasum":"71b85b6e9ecba366e6098c987846cc3f51545811","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.23.tgz","fileCount":38,"integrity":"sha512-WUiJBztGmgtbWRKEbktq1RRZnVst1ogOOEQDGFokM+tIoNP0q7K2zMIsRmKUDWP9Pz80tuMkwxY5nIzdLYHPoA==","signatures":[{"sig":"MEYCIQCjdAYRWuf4PrWwBI1hXD88jnICtmgvyYTm/CJFgfYftwIhAISdX4IJXjgnU/L+QvUNUOrjVO9nsbXyXIV4W93Mx/fB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":920341},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"7baa94b7c765d5dd2c790175517ee559018de019","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit@skatechain.org"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.30.1","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.23_1767937366074_0.6157019828406307","host":"s3://npm-registry-packages-npm-production"}},"1.2.24":{"name":"@skate-org/skate_amm_solana","version":"1.2.24","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.24","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit@skatechain.org"}],"dist":{"shasum":"fea4e48b2109b1033db6e875f47066e60ed7149d","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.24.tgz","fileCount":40,"integrity":"sha512-vzFjEu7CLhoqavTjBqDruLXrCSFSKOEN5RYl/ekoBLvNQhvegeF0wQjXGIne3Yhlf40HnJsXBN98+0KnYIiv1g==","signatures":[{"sig":"MEQCIHw1HDYVW+JFp8ktQJNUl/NV9bhlJXL1OSsR8MgpcqyZAiAEZOARAE6EOyWu1Jr9vl2rqfeWtPxy5O9oQY6e1fdWPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":934147},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"cb23a833bc003de20041c81815849eae4d22ce73","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit@skatechain.org"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.30.1","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.24_1771883419516_0.4180478250047952","host":"s3://npm-registry-packages-npm-production"}},"1.2.25":{"name":"@skate-org/skate_amm_solana","version":"1.2.25","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.25","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit@skatechain.org"}],"dist":{"shasum":"adbaf62e1da715fe9cd6d172f8c2ef255660893c","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.25.tgz","fileCount":40,"integrity":"sha512-U1RU2LmbbsEJAK2xOP6J/zLcmMtj0PEcAQZ4Ix/nuO43AY3rmW57B4IciHx0rWhuQ3WmDE0GHcl14n8jYmWybQ==","signatures":[{"sig":"MEQCIGR8s67c0PZeMl3VbGfDZsKWjnOaaoTTlSnr6II2abFRAiB0QxkiFz8HhOzptdeeeErXc/F7RPY9kZu7q5Qn6yPvNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":934195},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"cb23a833bc003de20041c81815849eae4d22ce73","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit@skatechain.org"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.30.1","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.25_1771923431081_0.8793992983044401","host":"s3://npm-registry-packages-npm-production"}},"1.2.26":{"name":"@skate-org/skate_amm_solana","version":"1.2.26","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","_id":"@skate-org/skate_amm_solana@1.2.26","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit@skatechain.org"}],"dist":{"shasum":"5c1dd2fe0334746502d062fd762da3b13051479b","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.26.tgz","fileCount":40,"integrity":"sha512-IznYJP7X8a0SSFJ4D77+fUrm3HxYIdNCsi37sXEewHZjng8hJgxMYAkkUyT5mr21Vbbl7/QX0D6gyqqZAzft0g==","signatures":[{"sig":"MEQCIAmvBolXQHmsCHnrNioLAzhasGfD599d4SgA51WzOBm5AiA5WbSZomhxL/xa8najIOY9B/BzgGka8gen/jGk+usQrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":934165},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"cb23a833bc003de20041c81815849eae4d22ce73","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","publish":"npm run build && npm publish --access public"},"_npmUser":{"name":"0xfzs","email":"arpit@skatechain.org"},"_npmVersion":"11.6.0","description":"Solana AMM implementation for Skate","directories":{},"_nodeVersion":"24.9.0","dependencies":{"@solana/web3.js":"^1.98.0","@coral-xyz/anchor":"^0.30.1","@solana/spl-token":"^0.4.13"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^16.4.7","typescript":"^5.8.2","@types/node":"^22.13.13"},"_npmOperationalInternal":{"tmp":"tmp/skate_amm_solana_1.2.26_1771924189906_0.30798428899994246","host":"s3://npm-registry-packages-npm-production"}},"1.2.27":{"name":"@skate-org/skate_amm_solana","version":"1.2.27","description":"Solana AMM implementation for Skate","main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","publish":"npm run build && npm publish --access public","test":"echo \"Error: no test specified\" && exit 1"},"keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","devDependencies":{"@types/node":"^22.13.13","dotenv":"^16.4.7","typescript":"^5.8.2"},"dependencies":{"@coral-xyz/anchor":"^0.30.1","@solana/spl-token":"^0.4.13","@solana/web3.js":"^1.98.0"},"_id":"@skate-org/skate_amm_solana@1.2.27","gitHead":"5644adb3ffc1b05c987e82578bd48bb4fe9da7a7","_nodeVersion":"24.9.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-tXpGtZglRI8MZOeq+VA+hF3Ew4762M9sEmFbIL84jJtwD4xf7UDbt9qmAWy6tjTw5eSuPy43Wno5h1bb2GGvdA==","shasum":"bc6bd879f5999706250939afd7637def8402e965","tarball":"https://registry.npmjs.org/@skate-org/skate_amm_solana/-/skate_amm_solana-1.2.27.tgz","fileCount":40,"unpackedSize":935060,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDWRqERkG3pMY2xPD9YOna4CckgjVWMM2ZdytRg2W4/qwIhALtrHC5bNnAh6wR6c3SAKTb5Va/KpCzTLdK9kLl6SAwj"}]},"_npmUser":{"name":"0xfzs","email":"arpit@skatechain.org"},"directories":{},"maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit@skatechain.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/skate_amm_solana_1.2.27_1775111580553_0.12396077438580577"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-26T23:20:42.828Z","modified":"2026-04-02T06:33:00.872Z","1.0.0":"2025-03-26T23:20:43.174Z","1.0.1":"2025-04-01T23:48:40.377Z","1.0.2":"2025-04-02T00:04:48.146Z","1.0.3":"2025-04-02T00:08:44.753Z","1.0.4":"2025-04-03T07:15:30.762Z","1.0.5":"2025-04-04T08:34:50.716Z","1.0.6":"2025-04-07T06:18:00.084Z","1.0.7":"2025-04-08T23:15:46.057Z","1.0.8":"2025-04-09T10:53:36.416Z","1.0.9":"2025-04-24T00:31:26.671Z","1.0.10":"2025-04-24T01:32:53.919Z","1.0.11":"2025-04-24T02:15:48.380Z","1.0.12":"2025-04-24T04:32:31.766Z","1.0.13":"2025-04-24T10:12:10.858Z","1.0.14":"2025-04-25T06:47:01.431Z","1.0.15":"2025-04-28T23:12:59.014Z","1.0.16":"2025-05-02T12:14:38.371Z","1.0.17":"2025-05-05T10:22:30.900Z","1.0.18":"2025-05-06T10:21:19.808Z","1.0.19":"2025-05-07T08:53:36.181Z","1.0.20":"2025-05-15T19:05:46.205Z","1.0.21":"2025-05-17T13:07:45.203Z","1.0.22":"2025-05-21T09:13:59.745Z","1.0.23":"2025-06-07T21:52:18.300Z","1.0.24":"2025-06-10T08:48:28.153Z","1.1.0":"2025-06-26T07:45:41.792Z","1.1.1":"2025-07-05T19:58:39.667Z","1.0.25":"2025-07-05T20:48:37.066Z","1.0.26":"2025-07-16T03:10:44.022Z","1.1.2":"2025-07-21T11:20:29.232Z","1.1.3":"2025-07-22T04:51:33.577Z","1.1.4":"2025-08-25T20:43:22.854Z","1.2.0":"2025-09-16T07:28:18.478Z","1.2.1":"2025-09-16T20:54:12.098Z","1.2.2":"2025-09-16T22:12:32.731Z","1.2.3":"2025-09-16T22:27:14.520Z","1.2.4":"2025-09-17T20:29:20.654Z","1.2.5":"2025-09-17T20:50:41.364Z","1.2.6":"2025-09-18T10:49:52.142Z","1.2.7":"2025-10-08T04:46:15.263Z","1.2.8":"2025-10-08T04:53:09.559Z","1.2.9":"2025-10-13T21:20:41.253Z","1.2.10":"2025-10-14T00:45:46.575Z","1.2.11":"2025-10-17T09:13:56.006Z","1.2.12":"2025-10-17T11:01:19.062Z","1.2.13":"2025-10-17T20:46:04.005Z","1.2.14":"2025-10-22T12:12:13.990Z","1.2.16":"2025-11-06T04:14:22.315Z","1.2.17":"2025-11-07T04:50:07.453Z","1.2.18":"2025-11-12T17:29:23.282Z","1.2.19":"2025-11-18T05:08:42.155Z","1.2.20":"2025-11-25T19:54:05.850Z","1.2.21":"2025-12-04T07:39:24.594Z","1.2.22":"2026-01-08T18:47:04.332Z","1.2.23":"2026-01-09T05:42:46.239Z","1.2.24":"2026-02-23T21:50:19.688Z","1.2.25":"2026-02-24T08:57:11.232Z","1.2.26":"2026-02-24T09:09:50.125Z","1.2.27":"2026-04-02T06:33:00.725Z"},"author":{"name":"Arpit Srivastava","email":"arpit@skatechain.org"},"license":"ISC","keywords":["skate","solana","blockchain","amm","defi","cryptocurrency","trading","swap"],"description":"Solana AMM implementation for Skate","maintainers":[{"name":"skate_phil","email":"philho.dev@outlook.com"},{"name":"0xfzs","email":"arpit@skatechain.org"}],"readme":"# Skate SDK - Solana AMM Integration Guide\n\nA powerful SDK for interacting with Solana AMM (Automated Market Maker) pools. This SDK provides a simple interface for common operations like adding liquidity, swapping tokens, and burning liquidity.\n\n## Table of Contents\n\n- [Skate SDK - Solana AMM Integration Guide](#skate-sdk---solana-amm-integration-guide)\n  - [Table of Contents](#table-of-contents)\n  - [Installation](#installation)\n  - [Setup](#setup)\n  - [Basic Usage](#basic-usage)\n    - [1. Initialize the SDK](#1-initialize-the-sdk)\n    - [2. Configure Token Pair](#2-configure-token-pair)\n    - [3. Fetching Pool Data](#3-fetching-pool-data)\n    - [4. Fetching Raw Account Data](#4-fetching-raw-account-data)\n  - [Address Conversion](#address-conversion)\n    - [Converting Solana Addresses](#converting-solana-addresses)\n    - [Converting Ethereum Addresses](#converting-ethereum-addresses)\n    - [Using in Swap Operations](#using-in-swap-operations)\n  - [Client-Side Operations](#client-side-operations)\n    - [Adding Liquidity (Mint)](#adding-liquidity-mint)\n    - [Increasing Liquidity](#increasing-liquidity)\n    - [Increasing Liquidity](#increasing-liquidity-1)\n    - [Swapping Tokens](#swapping-tokens)\n    - [Burning Liquidity](#burning-liquidity)\n    - [Decreasing Liquidity](#decreasing-liquidity)\n    - [Removing Staged Assets](#removing-staged-assets)\n  - [Gateway Operations](#gateway-operations)\n    - [Settling Mint](#settling-mint)\n    - [Settling Swap](#settling-swap)\n    - [Settling Burn](#settling-burn)\n    - [Settling Staged Amounts](#settling-staged-amounts)\n    - [Transferring to User](#transferring-to-user)\n  - [Important Notes](#important-notes)\n  - [Error Handling](#error-handling)\n  - [Example Usage](#example-usage)\n    - [Keypair Setup](#keypair-setup)\n    - [Running Examples](#running-examples)\n    - [Backend/Frontend Swap Simulation (`serialize-swap`)](#backendfrontend-swap-simulation-serialize-swap)\n\n## Installation\n\n```bash\nnpm install @skate-org/skate_amm_solana\n```\n\n## Setup\n\n1.  **RPC URLs**: Ensure you have the correct Solana RPC URLs for the desired networks (e.g., mainnet-beta, devnet, or custom testnets like Eclipse). Store these securely, potentially in a `.env` file:\n\n    ```env\n    # Example for Eclipse Testnet\n    RPC_URL_902=your_eclipse_rpc_url_here\n    # Example for Solana Devnet (if using ChainId.SOLANA for testing)\n    RPC_URL_901=your_solana_devnet_rpc_url_here\n    ```\n\n2.  **Environment**: The SDK distinguishes between `staging` and `production` environments, which primarily affects which program ID is used and how configuration data is structured. You'll select the environment when initializing the SDK.\n\n3.  **Validation Constants**: The SDK provides important constants for validation and proper usage:\n    - `VmType.SVM` (3) - Use this for Solana Virtual Machine type instead of magic numbers\n    - `MIN_TICK_SQRT_PRICE` and `MAX_TICK_SQRT_PRICE` - Use these for price limits in swaps\n    - `base58ToEthBytes32()` - Use this function to convert Solana addresses to bytes32 format for recipient parameters\n    - `ethToBytes32()` - Use this function to convert Ethereum addresses to bytes32 format for recipient parameters\n\n## Basic Usage\n\n### 1. Initialize the SDK\n\nImport the necessary components and initialize the `SkateSDK` with your connection, environment, and wallet.\n\n```typescript\nimport { Connection, Keypair } from \"@solana/web3.js\";\nimport { Wallet } from \"@coral-xyz/anchor\";\nimport { SkateSDK, Environment } from \"@skate-org/skate_amm_solana\";\n\nconst connection = new Connection(process.env.RPC_URL_902!, \"confirmed\"); // Use the appropriate RPC URL\n\n// Create wallet from keypair\nconst keypair = Keypair.generate(); // or load from file\nconst wallet = new Wallet(keypair);\n\n// Initialize for STAGING environment\nconst sdkStaging = new SkateSDK(connection, Environment.STAGING, wallet);\n\n// Or initialize for PRODUCTION environment\nconst sdkProduction = new SkateSDK(connection, Environment.PRODUCTION, wallet);\n```\n\nThe `Environment` enum determines which program ID (`PROGRAM_ID_STAGING` or `PROGRAM_ID_PRODUCTION`) the SDK instance will interact with. The `Wallet` parameter is required for SDK initialization.\n\n### 2. Configure Token Pair\n\nThe SDK uses a structured configuration object (`CONFIG`) accessed by Chain ID, Environment, and Token Pair.\n\n```typescript\nimport {\n  CONFIG,\n  ChainId,\n  TokenPair,\n  Environment,\n  TokenPairConfig,\n} from \"@skate-org/skate_amm_solana\";\n\n// Example: Using WETH/TETH pool configuration on Eclipse chain for STAGING\nconst chainId = ChainId.ECLIPSE;\n// ensure the environment corresponds to the environment initialised with the sdk\nconst environment = Environment.STAGING;\nconst tokenPair = TokenPair.WETH_TETH;\n\nconst poolConfig: TokenPairConfig | undefined =\n  CONFIG[chainId]?.[environment]?.[tokenPair];\n\nconsole.log(\n  `Using pool: ${poolConfig.description} in ${environment} on chain ${chainId}`\n);\n```\n\nAvailable chain IDs:\n\n- `ChainId.SOLANA` (901)\n- `ChainId.ECLIPSE` (902)\n- `ChainId.SOON` (903)\n\nAvailable environments:\n\n- `Environment.STAGING`\n- `Environment.PRODUCTION`\n\n**Note:** Ensure the `poolConfig` you use corresponds to the `Environment` you initialized the SDK with.\n\n### 3. Fetching Pool Data\n\nTo get detailed information about a specific pool (for the environment the SDK is configured for), including token balances, use `fetchPeripheryPoolData`. You must provide the `TokenPairConfig` for the specific chain and environment you're interested in.\n\n```typescript\nimport {\n  TokenPairConfig,\n  SkateSDK,\n  PeripheryPoolDetails,\n} from \"@skate-org/skate_amm_solana\";\n\nasync function getPoolDetails(poolConfig: TokenPairConfig, sdk: SkateSDK) {\n  try {\n    const poolDetails: PeripheryPoolDetails = await sdk.fetchPeripheryPoolData(\n      poolConfig\n    );\n\n    console.log(\"Pool Details:\", poolDetails);\n\n    // Example field access\n    console.log(\"Manager:\", poolDetails.manager.toBase58());\n    console.log(\n      \"Token 0 Balance:\",\n      poolDetails.poolToken0Balance.uiAmountString\n    );\n    console.log(\"Token 0 PDA:\", poolDetails.poolToken0Pda.toBase58());\n  } catch (error) {\n    console.error(\"Failed to fetch pool data:\", error);\n    throw error;\n  }\n}\n\n// Example usage\nawait getPoolDetails(poolConfig, sdkProduction);\n```\n\nThe `fetchPeripheryPoolData` function returns a `PeripheryPoolDetails` object containing:\n\n- All fields from `PeripheryPoolData` (like `manager`, `token0`, `token1`, `fee`, `description`, `stagedToken0Amount`, `stagedToken1Amount`, etc.)\n- `poolToken0Balance`: A `TokenAmount` object representing the balance of the pool's token 0 account.\n- `poolToken1Balance`: A `TokenAmount` object representing the balance of the pool's token 1 account.\n- `poolToken0Pda`: The `PublicKey` of the pool's token 0 account PDA.\n- `poolToken1Pda`: The `PublicKey` of the pool's token 1 account PDA.\n\n### 4. Fetching Raw Account Data\n\nIf you need the raw, deserialized data directly from the on-chain accounts without the extra balance fetching included in `fetchPeripheryPoolData`, you can use:\n\n- **`fetchPoolAccount(poolConfig)`**: Fetches the raw `PeripheryPool` account data.\n- **`fetchUserDataAccount(poolConfig, userPublicKey)`**: Fetches the raw `UserDataAccount` data for a specific user and pool.\n\n```typescript\nimport {\n  TokenPairConfig,\n  SkateSDK,\n  PeripheryPoolData,\n  UserDataAccountData,\n} from \"@skate-org/skate_amm_solana\";\nimport { PublicKey } from \"@solana/web3.js\";\n\n// Fetch raw pool account\nasync function getRawPoolAccount(poolConfig: TokenPairConfig, sdk: SkateSDK) {\n  try {\n    const poolAccount: PeripheryPoolData | null = await sdk.fetchPoolAccount(\n      poolConfig\n    );\n    if (poolAccount) {\n      console.log(\"Raw Pool Account Data:\", poolAccount);\n    } else {\n      console.log(\"Pool account not found.\");\n    }\n  } catch (error) {\n    console.error(\"Failed to fetch raw pool account:\", error);\n  }\n}\n\n// Fetch user-specific account data\nasync function getUserData(\n  poolConfig: TokenPairConfig,\n  userPublicKey: PublicKey,\n  sdk: SkateSDK\n) {\n  try {\n    const userData: UserDataAccountData | null = await sdk.fetchUserDataAccount(\n      poolConfig,\n      userPublicKey\n    );\n    if (userData) {\n      console.log(\"User Data Account:\", userData);\n    } else {\n      console.log(\"User data account not found (likely not initialized).\");\n    }\n  } catch (error) {\n    console.error(\"Failed to fetch user data account:\", error);\n  }\n}\n\n// Example usage\nawait getRawPoolAccount(poolConfig, sdkProduction);\nawait getUserData(poolConfig, userPublicKey, sdkProduction);\n```\n\n### Whitelisting a Pool in ActionBox\n\nManagers (the ActionBox master signer) can ensure a pool is whitelisted before using the periphery program:\n\n```typescript\nconst { instruction, alreadyWhitelisted, nextWhitelist } =\n  // Whitelists the pool authority PDA derived from the pool config\n  await sdk.getWhitelistPoolInActionBoxIx(poolConfig);\n\n// If alreadyWhitelisted is false, include `instruction` in a transaction signed by the master/manager.\n```\n\nYou can also inspect the current ActionBox state directly:\n\n```typescript\nconst actionBoxState = await sdk.fetchActionBoxState();\nconsole.log(actionBoxState.whitelist.map((pk) => pk.toBase58()));\n```\n\n## Address Conversion\n\nThe Skate AMM SDK requires recipient addresses to be in bytes32 format (`0x` + 64 hex characters) for cross-chain operations. The SDK provides helper functions to convert different address formats:\n\n### Converting Solana Addresses\n\nUse `base58ToEthBytes32()` to convert Solana addresses (base58 format) to bytes32:\n\n```typescript\nimport { base58ToEthBytes32 } from \"@skate-org/skate_amm_solana\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nconst solanaAddress = new PublicKey(\"9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM\");\nconst bytes32Address = base58ToEthBytes32(solanaAddress.toBase58());\nconsole.log(bytes32Address); // \"0x0000000000000000000000009wzdxwbbmkg8ztbnmquxvqrayrzdsgydlvl9zytawwm\"\n```\n\n### Converting Ethereum Addresses\n\nUse `ethToBytes32()` to convert Ethereum addresses (hex format) to bytes32:\n\n```typescript\nimport { ethToBytes32 } from \"@skate-org/skate_amm_solana\";\n\nconst ethAddress = \"0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6\";\nconst bytes32Address = ethToBytes32(ethAddress);\nconsole.log(bytes32Address); // \"0x000000000000000000000000742d35cc6634c0532925a3b8d4c9db96c4b4d8b6\"\n\n// Also works with addresses without 0x prefix\nconst ethAddressNoPrefix = \"742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6\";\nconst bytes32Address2 = ethToBytes32(ethAddressNoPrefix);\nconsole.log(bytes32Address2); // Same result as above\n```\n\n### Using in Swap Operations\n\n```typescript\nimport { SkateSDK, base58ToEthBytes32, ethToBytes32, ChainId, VmType } from \"@skate-org/skate_amm_solana\";\n\n// ✅ CORRECT: Same-chain swap (Solana to Solana)\nconst sameChainSwapIx = await sdk.getSwapIx(\n  poolConfig,\n  ChainId.SOLANA, // Same as source chain\n  base58ToEthBytes32(userPublicKey.toBase58()), // Solana recipient\n  VmType.SVM,\n  true,\n  SwapAmount.normalized(0.01),\n  \"4295128740\", // ⚠️ Use appropriate price limit, NOT constants\n  SwapAmount.native(0.15, 6),\n  Buffer.from([]),\n  userPublicKey,\n  userPublicKey,\n  deadline\n);\n\n// ✅ CORRECT: Cross-chain swap (Solana to Ethereum)\nconst crossChainSwapIx = await sdk.getSwapIx(\n  poolConfig,\n  ChainId.ETHEREUM, // Destination chain\n  ethToBytes32(\"0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6\"), // Ethereum recipient\n  VmType.EVM,\n  true,\n  SwapAmount.normalized(0.01),\n  \"4295128740\", // ⚠️ Use appropriate price limit for cross-chain too\n  SwapAmount.native(0.15, 6),\n  Buffer.from([]),\n  userPublicKey,\n  userPublicKey,\n  deadline\n);\n```\n\n## Client-Side Operations\n\nAs a client/user, you only need to implement the following operations:\n\n1. Adding liquidity (mint)\n2. Increasing liquidity\n3. Swap tokens\n4. Burn liquidity\n5. Decreasing liquidity\n6. Remove staged assets (after burn or failed mint)\n\nThe settlement operations (settle-mint, settle-swap, settle-burn) are handled by the gateway service and don't need to be implemented on the client side. These are usually executed server-side by the pool/gateway operator and not the end-user.\n\n### Adding Liquidity (Mint)\n\nTo add liquidity to a pool, you need to:\n\n1. Create a mint transaction\n2. Submit the transaction\n\n```typescript\nimport {\n  Keypair,\n  Transaction,\n  sendAndConfirmTransaction,\n  Connection,\n  ComputeBudgetProgram,\n} from \"@solana/web3.js\";\nimport { SkateSDK, TokenPairConfig, NORMALIZED_DECIMALS } from \"@skate-org/skate_amm_solana\";\nimport { BN } from \"@coral-xyz/anchor\";\n\n// Step 1: Load private key from env\nconst secretKeyBase58 = process.env.PRIVATE_KEY!;\nconst privateKeyUint8 = bs58.decode(secretKeyBase58);\nconst userKeypair = Keypair.fromSecretKey(privateKeyUint8);\nconst userPublicKey = userKeypair.publicKey;\nconst DECIMAL_MULTIPLIER = 10 ** NORMALIZED_DECIMALS; // Use NORMALIZED_DECIMALS for client operations\n\nconsole.log(\"Keypair successfully created.\");\nconsole.log(\"Public Key:\", userPublicKey.toBase58());\n\n// Step 2: Create mint instructions\nconst mintIx: TransactionInstruction[] = await sdkProduction.getMintIx(\n  poolConfig, // Token pair configuration\n  -100, // tickLower\n  100, // tickUpper\n  new BN(0.0001 * DECIMAL_MULTIPLIER), // Amount of token0\n  new BN(0.0001 * DECIMAL_MULTIPLIER), // Amount of token1\n  new BN(0), // Min token0 (slippage protection)\n  new BN(0), // Min token1 (slippage protection)\n  userPublicKey, // Liquidity provider's public key\n  userPublicKey, // Payer (can be different from user)\n  new BN(Math.floor(Date.now() / 1000)).add(new BN(60 * 10)) // ⚠️ Deadline in SECONDS (Unix timestamp)\n);\n\n// Step 3: Build transaction with compute budget and priority fee\nconst mintTx = new Transaction();\n\n// Add priority fee for Solana\nif (CHAIN_ID === ChainId.SOLANA) {\n  const priorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({\n    microLamports: SOLANA_PRIORITY_FEE_MICRO_LAMPORTS,\n  });\n  mintTx.add(priorityFeeIx);\n}\n\n// Add compute budget\nmintTx.add(ComputeBudgetProgram.setComputeUnitLimit({ units: 400000 }));\n\n// Add mint instructions\nmintTx.add(...mintIx);\n\n// Step 4: Send transaction\nawait sendAndConfirmTransaction(connection, mintTx, [userKeypair]);\nconsole.log(\n  `View your position on https://api.amm.skatechain.org/position/nft/${chainId}/${userPublicKey}`\n);\n```\n\n### Increasing Liquidity\n\nTo increase liquidity for an existing position:\n\n1. Find the NFT \"tokenId\" field on https://api.amm.skatechain.org/position/nft/<chain-id>/<your_address>\n2. Create an increase liquidity transaction\n3. Submit the transaction\n\n```typescript\nimport { Transaction, sendAndConfirmTransaction, ComputeBudgetProgram } from \"@solana/web3.js\";\nimport { BN } from \"@coral-xyz/anchor\";\nimport { NORMALIZED_DECIMALS } from \"@skate-org/skate_amm_solana\";\n\nconst DECIMAL_MULTIPLIER = 10 ** NORMALIZED_DECIMALS;\n\n// Step 1: Create increase liquidity instructions\nconst increaseIx: TransactionInstruction[] = await sdk.getIncreaseLiquidityIx(\n  poolConfig, // Token pair configuration\n  \"22\", // tokenId - The NFT token ID of the position\n  new BN(0.01 * DECIMAL_MULTIPLIER), // Amount of token0 to add\n  new BN(0.01 * DECIMAL_MULTIPLIER), // Amount of token1 to add\n  new BN(0), // Minimum amount of token0 to receive (slippage protection)\n  new BN(0), // Minimum amount of token1 to receive (slippage protection)\n  userPublicKey, // Public key of the user adding liquidity\n  userPublicKey, // Payer (can be different from user)\n  new BN(Math.floor(Date.now() / 1000)).add(new BN(60 * 10)) // ⚠️ Deadline in SECONDS (Unix timestamp)\n);\n\n// Step 2: Build transaction\nconst increaseTx = new Transaction();\n\n// Add priority fee for Solana\nif (CHAIN_ID === ChainId.SOLANA) {\n  const priorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({\n    microLamports: SOLANA_PRIORITY_FEE_MICRO_LAMPORTS,\n  });\n  increaseTx.add(priorityFeeIx);\n}\n\n// Add compute budget\nincreaseTx.add(ComputeBudgetProgram.setComputeUnitLimit({ units: 400000 }));\n\n// Add increase liquidity instructions\nincreaseTx.add(...increaseIx);\n\n// Step 3: Submit transaction\nawait sendAndConfirmTransaction(connection, increaseTx, [userKeypair]);\n```\n\n### Increasing Liquidity\n\nTo increase liquidity for an existing position:\n1. Create an increase liquidity transaction\n2. Submit the transaction\n\n```typescript\nimport { Transaction, sendAndConfirmTransaction, ComputeBudgetProgram } from \"@solana/web3.js\";\nimport { BN } from \"@coral-xyz/anchor\";\nimport { NORMALIZED_DECIMALS } from \"@skate-org/skate_amm_solana\";\n\nconst DECIMAL_MULTIPLIER = 10 ** NORMALIZED_DECIMALS;\n\n// Step 1: Create increase liquidity transaction\nconst increaseIx: TransactionInstruction[] = await sdk.getIncreaseLiquidityIx(\n  poolConfig, // Token pair configuration\n  \"22\", // tokenId - The NFT token ID of the position\n  new BN(0.000013 * DECIMAL_MULTIPLIER), // Amount of token0 to add\n  new BN(0.000013 * DECIMAL_MULTIPLIER), // Amount of token1 to add\n  new BN(0), // Minimum amount of token0 to receive (slippage protection)\n  new BN(0), // Minimum amount of token1 to receive (slippage protection)\n  userPublicKey, // Public key of the user\n  userPublicKey, // Payer (can be different from user)\n  new BN(Math.floor(Date.now() / 1000)).add(new BN(60 * 10)) // ⚠️ Deadline in SECONDS (Unix timestamp)\n);\n\n// Step 2: Build transaction\nconst increaseTx = new Transaction();\n\n// Add priority fee for Solana\nif (CHAIN_ID === ChainId.SOLANA) {\n  const priorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({\n    microLamports: SOLANA_PRIORITY_FEE_MICRO_LAMPORTS,\n  });\n  increaseTx.add(priorityFeeIx);\n}\n\n// Add compute budget\nincreaseTx.add(ComputeBudgetProgram.setComputeUnitLimit({ units: 400000 }));\n\n// Add increase liquidity instructions\nincreaseTx.add(...increaseIx);\n\n// Step 3: Submit transaction\nawait sendAndConfirmTransaction(connection, increaseTx, [userKeypair]);\n```\n\n### Swapping Tokens\n\nTo perform a token swap:\n\n1. Create a swap transaction\n2. Submit the transaction\n\n> **Important:** Please read the [Important Notes](#important-notes) section at the bottom of this README before integrating swaps in your own code. It contains crucial information on decimal handling, recipient address conversion, and price limit selection.\n\n#### Same-Chain Swap (Recommended for Testing)\n\n```typescript\nimport {\n  ComputeBudgetProgram,\n  Transaction,\n  sendAndConfirmTransaction,\n} from \"@solana/web3.js\";\nimport { ChainId, VmType, SwapAmount, base58ToEthBytes32 } from \"@skate-org/skate_amm_solana\";\nimport { BN } from \"@coral-xyz/anchor\";\n\nconst SOLANA_PRIORITY_FEE_MICRO_LAMPORTS = 100000; // Example priority fee\n\n// ✅ CORRECT: Same-chain swap (Solana to Solana)\nconst swapIx: TransactionInstruction[] = await sdk.getSwapIx(\n  poolConfig, // Token pair configuration\n  ChainId.SOLANA, // destChainId - Same as source chain\n  base58ToEthBytes32(userKeypair.publicKey.toBase58()), // recipientBytes32 - Solana recipient\n  VmType.SVM, // destVmType - Solana Virtual Machine type (3)\n  true, // zeroForOne - Direction: true for token0 to token1, false for token1 to token0\n  SwapAmount.normalizedWithValidation(0.0001, \"swap input amount\"), // ⚠️ Uses NORMALIZED_DECIMALS (10^6)\n  \"4295128740\", // ⚠️ CRITICAL: Use appropriate price limit, NOT constants (causes 100% slippage)\n  SwapAmount.nativeWithValidation(0.0001, poolConfig.decimal1, \"minimum output amount\"), // ⚠️ Uses native token decimals\n  Buffer.from([]), // extraData - Extra data for the swap (optional)\n  userKeypair.publicKey, // Public key of the user performing the swap\n  userKeypair.publicKey, // Payer (can be different from user)\n  new BN(Math.floor(Date.now() / 1000)).add(new BN(60 * 10)) // ⚠️ Deadline in SECONDS (Unix timestamp)\n);\n```\n\n#### Cross-Chain Swap\n\n```typescript\nimport { ChainId, VmType, SwapAmount, ethToBytes32, MIN_TICK_SQRT_PRICE } from \"@skate-org/skate_amm_solana\";\n\n// ✅ CORRECT: Cross-chain swap (Solana to Ethereum)\nconst crossChainSwapIx: TransactionInstruction[] = await sdk.getSwapIx(\n  poolConfig, // Token pair configuration\n  ChainId.ETHEREUM, // destChainId - Destination chain\n  ethToBytes32(\"0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6\"), // recipientBytes32 - Ethereum recipient\n  VmType.EVM, // destVmType - Ethereum Virtual Machine type\n  true, // zeroForOne - Direction: true for token0 to token1, false for token1 to token0\n  SwapAmount.normalizedWithValidation(0.0001, \"swap input amount\"), // ⚠️ Uses NORMALIZED_DECIMALS (10^6)\n  \"4295128740\", // ⚠️ Use appropriate price limit for cross-chain too\n  SwapAmount.nativeWithValidation(0.0001, poolConfig.decimal1, \"minimum output amount\"), // ⚠️ Uses native token decimals\n  Buffer.from([]), // extraData - Extra data for the swap (optional)\n  userKeypair.publicKey, // Public key of the user performing the swap\n  userKeypair.publicKey, // Payer (can be different from user)\n  new BN(Math.floor(Date.now() / 1000)).add(new BN(60 * 10)) // ⚠️ Deadline in SECONDS (Unix timestamp)\n);\n\n// Step 2: Build transaction\nconst swapTx = new Transaction();\n\n// Add compute budget first\nswapTx.add(ComputeBudgetProgram.setComputeUnitLimit({ units: 400000 }));\n\n// Add priority fee only for Solana\nif (CHAIN_ID === ChainId.SOLANA) {\n  const priorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({\n    microLamports: SOLANA_PRIORITY_FEE_MICRO_LAMPORTS,\n  });\n  swapTx.add(priorityFeeIx);\n}\n\n// Add swap instructions\nswapTx.add(...swapIx);\n\n// Step 3: Send transaction\nawait sendAndConfirmTransaction(connection, swapTx, [userKeypair]);\n```\n\n### Burning Liquidity\n\nTo remove liquidity from a pool:\n\n1. Create a burn transaction\n2. Submit the transaction\n\n```typescript\nimport { Transaction, sendAndConfirmTransaction, ComputeBudgetProgram } from \"@solana/web3.js\";\nimport { BN } from \"@coral-xyz/anchor\";\n\n// Step 1: Create burn instructions\nconst burnIx = await sdk.getBurnIx(\n  poolConfig, // Token pair configuration\n  new BN(0), // amount0Min - Minimum amount of token0 to receive (slippage protection)\n  new BN(0), // amount1Min - Minimum amount of token1 to receive (slippage protection)\n  \"2\", // tokenId - The NFT token ID of the position\n  userKeypair.publicKey, // Public key of the user burning liquidity\n  new BN(Math.floor(Date.now() / 1000)).add(new BN(60 * 10)) // ⚠️ Deadline in SECONDS (Unix timestamp)\n);\n\n// Step 2: Build transaction\nconst burnTx = new Transaction();\n\n// Add priority fee for Solana\nif (CHAIN_ID === ChainId.SOLANA) {\n  const priorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({\n    microLamports: SOLANA_PRIORITY_FEE_MICRO_LAMPORTS,\n  });\n  burnTx.add(priorityFeeIx);\n}\n\n// Add burn instruction\nburnTx.add(burnIx);\n\n// Step 3: Send transaction\nawait sendAndConfirmTransaction(connection, burnTx, [userKeypair]);\n```\n\n### Decreasing Liquidity\n\nTo decrease liquidity for an existing position:\n1. Create a decrease liquidity transaction\n2. Submit the transaction\n\n```typescript\nimport { Transaction, sendAndConfirmTransaction, ComputeBudgetProgram } from \"@solana/web3.js\";\nimport { BN } from \"@coral-xyz/anchor\";\n\n// Step 1: Create decrease liquidity transaction\nconst decreaseIx = await sdk.getDecreaseLiquidityIx(\n  poolConfig, // Token pair configuration\n  \"22\", // tokenId - The NFT token ID of the position\n  new BN(\"300\"), // Amount of liquidity to decrease\n  new BN(0), // Minimum amount of token0 to receive (slippage protection)\n  new BN(0), // Minimum amount of token1 to receive (slippage protection)\n  userPublicKey, // Public key of the user\n  new BN(Math.floor(Date.now() / 1000)).add(new BN(60 * 10)) // ⚠️ Deadline in SECONDS (Unix timestamp)\n);\n\n// Step 2: Build transaction\nconst decreaseTx = new Transaction();\n\n// Add priority fee for Solana\nif (CHAIN_ID === ChainId.SOLANA) {\n  const priorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({\n    microLamports: SOLANA_PRIORITY_FEE_MICRO_LAMPORTS,\n  });\n  decreaseTx.add(priorityFeeIx);\n}\n\n// Add compute budget\ndecreaseTx.add(ComputeBudgetProgram.setComputeUnitLimit({ units: 400000 }));\n\n// Add decrease liquidity instruction\ndecreaseTx.add(decreaseIx);\n\n// Step 3: Submit transaction\nawait sendAndConfirmTransaction(connection, decreaseTx, [userKeypair]);\n```\n\n### Removing Staged Assets\n\nAfter initiating a mint or burn, tokens might be held in a temporary staged state within the contract, associated with your user account. If a mint fails off-chain or after the burn delay passes, you can reclaim these staged assets.\n\n1. Create a remove staged assets transaction\n2. Submit the transaction\n\n```typescript\nimport {\n  Transaction,\n  sendAndConfirmTransaction,\n  Keypair,\n} from \"@solana/web3.js\";\n\n// Step 1: Create remove staged assets instructions\nconst removeStagedIx = await sdk.getRemoveStagedAssetsIx(\n  poolConfig,      // Token pair configuration\n  gatewayKeypair,  // Gateway keypair for signing\n  userPublicKey    // Public key of the user removing assets\n);\n\n// Step 2: Send transaction\nconst removeStagedTx = new Transaction().add(...removeStagedIx);\nawait sendAndConfirmTransaction(connection, removeStagedTx, [userKeypair]);\n```\n\n## Gateway Operations\n\nThese operations are handled by the gateway service and don't need to be implemented on the client side.\n\n### Settling Mint\n\n```typescript\nimport { Transaction, sendAndConfirmTransaction, ComputeBudgetProgram } from \"@solana/web3.js\";\nimport { BN } from \"@coral-xyz/anchor\";\n\n// Step 1: Create settle mint instructions\nconst settleMintIx = await sdk.getSettleMintIx(\n  poolConfig, // Token pair configuration\n  new BN(0.000001 * (10 ** poolConfig.decimal0)), // amount0ToSettle using token0 decimals\n  new BN(0.000001 * (10 ** poolConfig.decimal1)), // amount1ToSettle using token1 decimals\n  new BN(0.00001111011 * (10 ** 18)), // amount0ToTransfer using token0 decimals\n  new BN(0.00001111111 * (10 ** 18)), // amount1ToTransfer using token1 decimals\n  0, // taskId - Task identifier\n  gatewayKeypair, // Gateway keypair for signing\n  userKeypair.publicKey // Public key of the user who initiated the mint\n);\n\n// Step 2: Build transaction\nconst settleMintTx = new Transaction();\n\n// Add priority fee for Solana\nif (CHAIN_ID === ChainId.SOLANA) {\n  const priorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({\n    microLamports: SOLANA_PRIORITY_FEE_MICRO_LAMPORTS,\n  });\n  settleMintTx.add(priorityFeeIx);\n}\n\n// Add settle mint instructions\nsettleMintTx.add(...settleMintIx);\n\n// Step 3: Send transaction\nawait sendAndConfirmTransaction(connection, settleMintTx, [gatewayKeypair]);\n```\n\n### Settling Swap\n\n```typescript\nimport { Transaction, sendAndConfirmTransaction, ComputeBudgetProgram } from \"@solana/web3.js\";\nimport { BN } from \"@coral-xyz/anchor\";\n\n// Step 1: Create settle swap instructions\nconst settleSwapIx = await sdk.getSettleSwapIx(\n  poolConfig, // Token pair configuration\n  new BN(0), // kernelAmount0Recipient (18 decimals)\n  new BN(\"1000000000000\"), // kernelAmount1Recipient: 0.000001 * 10^18\n  new BN(\"1000000000000\"), // kernelAmount0User: 0.000001 * 10^18\n  new BN(0), // kernelAmount1User (18 decimals)\n  new BN(0.00000 * (10 ** poolConfig.decimal0)), // amount0ToSettle using token0 decimals\n  new BN(0.00000 * (10 ** poolConfig.decimal1)), // amount1ToSettle using token1 decimals\n  538767, // taskId - Task identifier\n  recipientKeypair.publicKey, // Recipient public key\n  gatewayKeypair, // Gateway keypair for signing\n  null, // Optional additional parameter\n  true // Boolean flag\n);\n\n// Step 2: Build transaction\nconst settleSwapTx = new Transaction();\n\n// Add priority fee for Solana\nif (CHAIN_ID === ChainId.SOLANA) {\n  const priorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({\n    microLamports: SOLANA_PRIORITY_FEE_MICRO_LAMPORTS,\n  });\n  settleSwapTx.add(priorityFeeIx);\n}\n\n// Add settle swap instructions\nsettleSwapTx.add(...settleSwapIx);\n\n// Step 3: Send transaction\nawait sendAndConfirmTransaction(connection, settleSwapTx, [gatewayKeypair]);\n```\n\n### Settling Burn\n\n```typescript\nimport { Transaction, sendAndConfirmTransaction, ComputeBudgetProgram } from \"@solana/web3.js\";\nimport { BN } from \"@coral-xyz/anchor\";\n\n// Step 1: Create settle burn instructions\nconst settleBurnIx = await sdk.getSettleBurnIx(\n  poolConfig, // Token pair configuration\n  new BN(0.0001 * (10 ** poolConfig.decimal0)), // amount0 using token0 decimals\n  new BN(0.0001 * (10 ** poolConfig.decimal1)), // amount1 using token1 decimals\n  1, // taskId - Task identifier\n  gatewayKeypair, // Gateway keypair for signing\n  userKeypair.publicKey // Public key of the user who initiated the burn\n);\n\n// Step 2: Build transaction\nconst settleBurnTx = new Transaction();\n\n// Add priority fee for Solana\nif (CHAIN_ID === ChainId.SOLANA) {\n  const priorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({\n    microLamports: SOLANA_PRIORITY_FEE_MICRO_LAMPORTS,\n  });\n  settleBurnTx.add(priorityFeeIx);\n}\n\n// Add settle burn instructions\nsettleBurnTx.add(...settleBurnIx);\n\n// Step 3: Send transaction\nawait sendAndConfirmTransaction(connection, settleBurnTx, [gatewayKeypair]);\n```\n\n### Settling Staged Amounts\n\nThis operation settles only the staged amounts in the `UserDataAccount` and `PeripheryPool` without performing any token transfers. Useful for adjusting internal balances after an off-chain event.\n\n```typescript\nimport { Transaction, sendAndConfirmTransaction, ComputeBudgetProgram } from \"@solana/web3.js\";\nimport { BN } from \"@coral-xyz/anchor\";\n\n// Step 1: Create settle instructions\nconst settleIx = await sdk.getSettleIx(\n  poolConfig, // Token pair configuration\n  new BN(0.000001 * (10 ** poolConfig.decimal0)), // amount0ToSettle\n  new BN(0.000001 * (10 ** poolConfig.decimal1)), // amount1ToSettle\n  1, // taskId - Task identifier\n  gatewayKeypair, // Gateway keypair for signing\n  userKeypair.publicKey // Public key of the user whose amounts are being settled\n);\n\n// Step 2: Build transaction\nconst settleTx = new Transaction();\n\n// Add priority fee for Solana\nif (CHAIN_ID === ChainId.SOLANA) {\n  const priorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({\n    microLamports: SOLANA_PRIORITY_FEE_MICRO_LAMPORTS,\n  });\n  settleTx.add(priorityFeeIx);\n}\n\n// Add settle instruction\nsettleTx.add(settleIx);\n\n// Step 3: Send transaction\nawait sendAndConfirmTransaction(connection, settleTx, [gatewayKeypair]);\n```\n\n### Transferring to User\n\nTransfers tokens directly from the pool to a specified user's associated token accounts without affecting staged amounts.\n\n```typescript\nimport { Transaction, sendAndConfirmTransaction, ComputeBudgetProgram } from \"@solana/web3.js\";\nimport { BN } from \"@coral-xyz/anchor\";\n\n// Step 1: Create transfer to user instructions\nconst transferToUserIx = await sdk.getTransferToUserIx(\n  poolConfig, // Token pair configuration\n  new BN(0.001 * (10 ** poolConfig.decimal0)), // Amount of token0 to transfer\n  new BN(0.001 * (10 ** poolConfig.decimal1)), // Amount of token1 to transfer\n  gatewayKeypair, // Gateway keypair for signing (caller)\n  userKeypair.publicKey // Public key of the user to receive tokens\n);\n\n// Step 2: Build transaction\nconst transferToUserTx = new Transaction();\n\n// Add priority fee for Solana\nif (CHAIN_ID === ChainId.SOLANA) {\n  const priorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({\n    microLamports: SOLANA_PRIORITY_FEE_MICRO_LAMPORTS,\n  });\n  transferToUserTx.add(priorityFeeIx);\n}\n\n// Add transfer instructions\ntransferToUserTx.add(...transferToUserIx);\n\n// Step 3: Send transaction\nawait sendAndConfirmTransaction(connection, transferToUserTx, [gatewayKeypair]);\n```\n\n### Initializing Dust Account\n\nDust accounts are used to track small amounts of tokens that accumulate during operations. Only managers can initialize dust accounts.\n\n```typescript\nimport { Transaction, sendAndConfirmTransaction, ComputeBudgetProgram } from \"@solana/web3.js\";\n\n// Step 1: Create dust initialization instructions\nconst initDustIx = await sdk.getInitDustIx(\n  poolConfig, // Token pair configuration\n  managerKeypair.publicKey // Manager's public key\n);\n\n// Step 2: Build transaction\nconst initDustTx = new Transaction();\n\n// Add priority fee for Solana\nif (CHAIN_ID === ChainId.SOLANA) {\n  const priorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({\n    microLamports: SOLANA_PRIORITY_FEE_MICRO_LAMPORTS,\n  });\n  initDustTx.add(priorityFeeIx);\n}\n\n// Add dust initialization instruction\ninitDustTx.add(initDustIx);\n\n// Step 3: Send transaction\nawait sendAndConfirmTransaction(connection, initDustTx, [managerKeypair]);\n```\n\n### Initializing Task Ledger\n\nThe task ledger is used to track and manage tasks across the system. Only managers can initialize task ledgers.\n\n```typescript\nimport { Transaction, sendAndConfirmTransaction, ComputeBudgetProgram, Keypair } from \"@solana/web3.js\";\n\n// Step 1: Create task ledger initialization instructions\nconst taskLedgerKeypair = Keypair.generate();\nconst initTaskLedgerIxs = await sdk.getCreateInitializeTaskLedgerIxs(\n  managerKeypair.publicKey, // Manager's public key\n  taskLedgerKeypair // Task ledger keypair\n);\n\n// Step 2: Build transaction\nconst initTaskLedgerTx = new Transaction();\n\n// Add priority fee for Solana\nif (CHAIN_ID === ChainId.SOLANA) {\n  const priorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({\n    microLamports: SOLANA_PRIORITY_FEE_MICRO_LAMPORTS,\n  });\n  initTaskLedgerTx.add(priorityFeeIx);\n}\n\n// Add task ledger initialization instructions\ninitTaskLedgerTx.add(...initTaskLedgerIxs);\n\n// Step 3: Send transaction\nawait sendAndConfirmTransaction(connection, initTaskLedgerTx, [managerKeypair, taskLedgerKeypair]);\n\nconsole.log(`Task Ledger initialized with public key: ${taskLedgerKeypair.publicKey.toBase58()}`);\n```\n\n### Updating Pool Configuration\n\nManagers can update various pool configuration parameters.\n\n```typescript\nimport { Transaction, sendAndConfirmTransaction, ComputeBudgetProgram } from \"@solana/web3.js\";\n\n// Step 1: Create pool config update instructions\nconst updateConfigIx = await sdk.getUpdatePoolConfigIx(\n  poolConfig, // Token pair configuration\n  newChainId, // New chain ID\n  null, // srcVmType (optional)\n  null, // description (optional)\n  null, // gateway (optional)\n  null, // kernelFactory (optional)\n  \"0x21527481C7683d6d1d3604bB99cb06e56ae81b40\", // kernelPool (optional)\n  managerKeypair.publicKey // Manager's public key\n);\n\n// Step 2: Build transaction\nconst updateConfigTx = new Transaction();\n\n// Add priority fee for Solana\nif (CHAIN_ID === ChainId.SOLANA) {\n  const priorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({\n    microLamports: SOLANA_PRIORITY_FEE_MICRO_LAMPORTS,\n  });\n  updateConfigTx.add(priorityFeeIx);\n}\n\n// Add pool config update instruction\nupdateConfigTx.add(updateConfigIx);\n\n// Step 3: Send transaction\nawait sendAndConfirmTransaction(connection, updateConfigTx, [managerKeypair]);\n\nconsole.log(`Pool configuration updated. Chain ID set to ${newChainId}.`);\n```\n\n## Important Notes\n\n1. **Runtime Validation & Error Prevention**:\n\n   The SDK includes comprehensive runtime validation to prevent common errors and save development time:\n\n   **VM Type Validation**:\n   - Use `VmType.SVM` (3) for Solana operations instead of magic numbers\n   - The SDK validates that `destVmType` is between 0-255\n   - Clear error messages guide you to use the correct enum values\n\n   **Recipient Address Validation**:\n   - Recipient addresses must be in bytes32 format (`0x` + 64 hex characters)\n   - Use `base58ToEthBytes32()` to convert Solana addresses to the required format\n   - Use `ethToBytes32()` to convert Ethereum addresses to the required format\n   - Examples: \n     - `base58ToEthBytes32(userKeypair.publicKey.toBase58())` for Solana addresses\n     - `ethToBytes32(\"0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6\")` for Ethereum addresses\n\n   **Price Limit Validation**:\n   - `sqrtPriceLimitX96` must be between `MIN_TICK_SQRT_PRICE` and `MAX_TICK_SQRT_PRICE`\n   - **⚠️ CRITICAL WARNING**: `MIN_TICK_SQRT_PRICE`/`MAX_TICK_SQRT_PRICE` constants cause 100% slippage in production!\n   - **For all swaps (same-chain and cross-chain)**: Use appropriate price limits based on current pool price (e.g., \"4295128740\")\n   - **Constants are strictly for development/testing only** - never use in production\n   - **Development/Testing**: Constants can be used for testing purposes only (e.g., `MIN_TICK_SQRT_PRICE`, `MAX_TICK_SQRT_PRICE`)\n   - **Why**: Constants represent absolute price limits that cause maximum slippage\n   - **Never use**: Constants in production as they cause 100% slippage losses\n\n   **Tick Range Validation** (for mint operations):\n   - `tickLower` must be less than `tickUpper`\n   - Both ticks must be integers within valid bounds (-887272 to 887272)\n   - The SDK validates these constraints before creating instructions\n\n   **Example Error Messages**:\n   ```typescript\n   // VM Type Error\n   Error: destVmType must be 0-255 (got 901). Did you pass ChainId instead of VmType? Use VmType.SVM (3) for Solana.\n\n   // Recipient Error  \n   Error: recipient must be in bytes32 format (0x followed by 64 hex characters). Got: \"invalid_address\". Use base58ToEthBytes32() for Solana addresses or ethToBytes32() for Ethereum addresses.\n\n   // Price Limit Error\n   Error: sqrtPriceLimitX96 must be between 4295128740 and 1461446703485210103287273052203988822378723970340. Got: \"invalid_price\". Use MIN_TICK_SQRT_PRICE for minimum price limit or MAX_TICK_SQRT_PRICE for maximum price limit.\n   ```\n\n2. **Decimal Handling**:\n\n   ⚠️ **CRITICAL WARNING: DECIMAL CONFUSION CAN CAUSE 1000x FUND LOSS** ⚠️\n   \n   **The Problem**: The SDK uses two different decimal systems that can cause 1000x errors:\n   - **Input amounts** (`amountSpecifiedNormalized`): Use `NORMALIZED_DECIMALS` (10^6)\n   - **Output amounts** (`minAmountOutOrMaxAmountInNative`): Use native token decimals (10^9 for SOL, 10^6 for USDC)\n   \n   **Real Example of What Can Go Wrong**:\n   ```typescript\n   // ❌ WRONG: This will try to swap 10 SOL instead of 0.01 SOL!\n   const amountIn = new BN(0.01 * 10 ** 9); // Used SOL's native decimals (10^9)\n   // SDK multiplies by 1000 internally (assumes normalized input)\n   // Result: 0.01 * 10^9 * 1000 = 10,000,000,000 lamports = 10 SOL\n   \n   // ✅ CORRECT: Use helper functions to prevent mistakes\n   import { SwapAmount } from \"@skate-org/skate_amm_solana\";\n   const amountIn = SwapAmount.normalized(0.01); // Uses 10^6\n   const minOut = SwapAmount.native(0.15, 6); // USDC has 6 decimals\n   ```\n\n   **Solution**: Use the new `SwapAmount` helper class to prevent decimal confusion:\n\n   - The SDK uses two types of decimal multipliers:\n     - `NORMALIZED_DECIMALS` (10^6) for input amounts in client-side operations (mint, increase-liquidity, swap, burn, decrease-liquidity).\n     - Actual token decimals (`10 ** poolConfig.decimal0` or `10 ** poolConfig.decimal1`) for settlement operations, minimum amount out/in calculations, and direct transfers.\n   - **Recommended Approach**: Use the new `SwapAmount` helper class to prevent decimal confusion:\n\n     ```typescript\n     import { SwapAmount, NORMALIZED_DECIMALS } from \"@skate-org/skate_amm_solana\";\n     \n     // ✅ SAFE: Use helper functions\n     const amountIn = SwapAmount.normalized(0.01); // Uses 10^6 for input amounts\n     const minAmountOut = SwapAmount.native(0.15, poolConfig.decimal1); // Uses native decimals for output amounts\n     \n     // ✅ SAFE: With validation (recommended for production)\n     const amountInValidated = SwapAmount.normalizedWithValidation(0.01, \"swap input amount\");\n     const minAmountOutValidated = SwapAmount.nativeWithValidation(0.15, poolConfig.decimal1, \"minimum output amount\");\n     \n     // ❌ DANGEROUS: Manual calculation (can cause 1000x errors)\n     const DECIMAL_MULTIPLIER = 10 ** NORMALIZED_DECIMALS; // 10^6\n     const amount = new BN(0.000013 * DECIMAL_MULTIPLIER) // Easy to get wrong!\n     ```\n\n   - Always ensure you're using the correct multiplier based on the operation type:\n     - Use `NORMALIZED_DECIMALS` for input amounts in `mint`, `increase-liquidity`, `swap`, `burn`, and `decrease-liquidity` operations.\n     - Use actual token decimals (`10 ** poolConfig.decimal0/1`) for minimum amount out/in in `swap`, minimum amounts in `mint`, `increase-liquidity`, `burn`, `decrease-liquidity`, and all settlement operations, including `transfer-to-user`.\n\n2. **Transaction Fees & Compute Units**:\n   - Include compute budget instructions (`ComputeBudgetProgram.setComputeUnitLimit`) for operations that require more compute units (like swaps/mints).\n   - **Solana Priority Fees**: For transactions on the Solana network (`ChainId.SOLANA`), it's often necessary to add a priority fee using `ComputeBudgetProgram.setComputeUnitPrice` to ensure timely processing, especially during periods of network congestion. This is generally **not** required for other chains like Eclipse.\n   \n   ```typescript\n   import { ComputeBudgetProgram } from \"@solana/web3.js\";\n   \n   const SOLANA_PRIORITY_FEE_MICRO_LAMPORTS = 100000; // Example priority fee\n   \n   // Create compute budget instruction\n   const computeBudgetIx = ComputeBudgetProgram.setComputeUnitLimit({\n     units: 400000\n   });\n   \n   // Create priority fee instruction\n   const priorityFeeIx = ComputeBudgetProgram.setComputeUnitPrice({\n     microLamports: SOLANA_PRIORITY_FEE_MICRO_LAMPORTS,\n   });\n   \n   // Build transaction\n   const transaction = new Transaction();\n   \n   // Add compute budget first\n   transaction.add(computeBudgetIx);\n   \n   // Add priority fee only for Solana\n   if (CHAIN_ID === ChainId.SOLANA) {\n     transaction.add(priorityFeeIx);\n   }\n   \n   // Add your instruction(s)\n   transaction.add(...yourInstructions);\n   ```\n3. **Gateway Operations**: Certain operations (mint, swap, burn) require a gateway to settle the transaction. Make sure you have access to a gateway service.\n\n4. **Environment Consistency**: Ensure the `Environment` used to initialize the `SkateSDK` matches the environment level used when accessing the `CONFIG` object to retrieve the `TokenPairConfig` passed into SDK methods. Mismatches will lead to errors (e.g., trying to interact with a staging pool using the production program ID).\n\n5. **Wallet Parameter**: The SDK now requires a `Wallet` parameter during initialization. This is used for signing transactions and must be provided when creating the SDK instance.\n\n6. **Manager Operations**: Some operations like pool initialization, dust account initialization, task ledger initialization, and pool configuration updates require manager privileges and should only be performed by authorized managers.\n\n7. **Error Handling**: The SDK provides comprehensive error handling with `PeripheryErrorCode` for better error recognition and handling. Use `getPeripheryError()` to extract meaningful error information from transaction failures.\n\n## Error Handling\n\nThe SDK provides comprehensive error handling to help you identify and respond to different types of errors.\n\n### Using getPeripheryError() for Contract Errors\n\nThe `getPeripheryError()` function extracts meaningful error information from transaction failures:\n\n```typescript\nimport { getPeripheryError, PeripheryErrorCode } from \"@skate-org/skate_amm_solana\";\n\ntry {\n  const swapIx = await sdk.getSwapIx(/* ... */);\n  const transaction = new Transaction().add(...swapIx);\n  await sendAndConfirmTransaction(connection, transaction, [keypair]);\n} catch (error) {\n  const peripheryError = getPeripheryError(error);\n  if (peripheryError) {\n    console.error(`Contract error: ${peripheryError.code} - ${peripheryError.message}`);\n    \n    // Handle specific errors\n    switch (peripheryError.code) {\n      case PeripheryErrorCode.InsufficientLiquidity:\n        console.log(\"Pool has insufficient liquidity - try smaller amount\");\n        break;\n      case PeripheryErrorCode.SlippageExceeded:\n        console.log(\"Slippage exceeded - increase tolerance\");\n        break;\n      case PeripheryErrorCode.DeadlineExceeded:\n        console.log(\"Transaction deadline exceeded - retry\");\n        break;\n    }\n  } else {\n    console.error(\"Non-contract error:\", error);\n  }\n}\n```\n\n### Common Error Scenarios\n\n```typescript\n// 1. Insufficient Liquidity\nif (peripheryError?.code === PeripheryErrorCode.InsufficientLiquidity) {\n  const smallerAmount = SwapAmount.normalized(0.001); // Reduce amount\n}\n\n// 2. Slippage Exceeded  \nif (peripheryError?.code === PeripheryErrorCode.SlippageExceeded) {\n  const higherSlippage = SwapAmount.native(0.05, 6); // Increase tolerance\n}\n\n// 3. Parameter Validation Errors (thrown before transaction)\ntry {\n  const swapIx = await sdk.getSwapIx(/* invalid parameters */);\n} catch (error) {\n  console.error(\"Parameter error:\", error.message);\n  // Fix: Use base58ToEthBytes32() for Solana addresses or ethToBytes32() for Ethereum addresses, SwapAmount helpers for amounts\n}\n```\n\n### Available Error Codes\n\n```typescript\nimport { PeripheryErrorCode } from \"@skate-org/skate_amm_solana\";\n\nPeripheryErrorCode.InsufficientLiquidity  // Pool doesn't have enough liquidity\nPeripheryErrorCode.SlippageExceeded       // Price moved beyond acceptable range\nPeripheryErrorCode.DeadlineExceeded       // Transaction took too long\nPeripheryErrorCode.InvalidTickRange       // Tick range is invalid\nPeripheryErrorCode.InvalidAmount          // Amount is zero or invalid\nPeripheryErrorCode.Unauthorized           // User doesn't have permission\n```\n\n## Example Usage\n\nThe repository includes a complete example (`example.ts`) that demonstrates various SDK operations.\n\n### Keypair Setup\n\nWhen running example.ts, the script manages three keypairs:\n\n- `user` - For user operations\n- `gateway` - For settlement operations\n- `manager` - For pool initialization\n\nThe keypairs are stored in a `keypairs` directory in your project root. If the directory or keypairs don't exist, the script will:\n\n1. Create a `keypairs` directory automatically\n2. Generate new keypairs for each role\n3. Save them as JSON files (user.json, gateway.json, manager.json)\n\nYou can either:\n\n- Let the script generate new keypairs automatically\n- Place your own keypair JSON files in the `keypairs` directory\n\n### Running Examples\n\nYou can run the example using:\n\n```bash\n# Ensure USE_STAGING_FLAG in example.ts is set as desired first\nts-node example.ts <command>\n```\n\nAvailable commands:\n\n- `init-pool` - Initialize pool (manager only, uses selected environment)\n- `init-tokens` - Initialize tokens (manager only, uses selected environment)\n- `init-dust` - Initialize dust account (manager only, uses selected environment)\n- `mint` - Mint liquidity (user, uses selected environment)\n- `increase-liquidity` - Increase liquidity for existing position (user, uses selected environment)\n- `decrease-liquidity` - Decrease liquidity for existing position (user, uses selected environment)\n- `swap` - Perform swap directly (user, uses selected environment)\n- `serialize-swap` - Simulate backend/frontend swap flow (user, uses selected environment)\n- `settle-mint` - Settle mint (gateway, uses selected environment)\n- `settle-swap` - Settle swap (gateway, uses selected environment)\n- `burn` - Burn liquidity (user, uses selected environment)\n- `settle-burn` - Settle burn (gateway, uses selected environment)\n- `settle` - Settle staged amounts without transfers (gateway, uses selected environment)\n- `update-pool-config` - Update pool configuration (manager, uses selected environment)\n- `init-task-ledger` - Initialize task ledger (manager, uses selected environment)\n- `fetch-pool` - Fetch and display data for the configured pool in the selected environment\n- `fetch-pool-account` - Fetch raw periphery pool account data\n- `fetch-user-data` - Fetch raw user data account for the specified user/pool\n- `fetch-dust` - Fetch dust account data for the pool\n- `log-all-pools` - Logs details for _all_ pools across _all_ configured chains and _both_ environments (staging & production)\n- `remove-staged` - Remove staged assets after delay (user, uses selected environment)\n- `remove-specific-staged` - Remove specific amounts of staged assets (gateway, uses selected environment)\n- `transfer-to` - Transfer tokens from pool to self (gateway, uses selected environment)\n- `transfer-to-user` - Transfer tokens from pool to a specified user (gateway, uses selected environment)\n- `print-config` - Print the CONFIG object to a JSON file\n- `help` - Show available commands\n\n### Backend/Frontend Swap Simulation (`serialize-swap`)\n\nThe `serialize-swap` command demonstrates a common web application flow:\n\n1.  **Backend Simulation**:\n\n    - Calls `sdk.getSwapIx` to generate the necessary swap instructions.\n    - Serializes these instructions into a JSON-friendly format (e.g., using base58 for keys and base64 for data).\n    - Logs the serialized data, simulating an API response to the frontend.\n\n2.  **Frontend Simulation**:\n    - Parses the serialized instructions received from the \"backend\".\n    - Deserializes them back into `TransactionInstruction` objects.\n    - Constructs a new `Transaction`.\n    - Adds necessary prerequisite instructions (like `ComputeBudgetProgram.setComputeUnitLimit` (if required)).\n    - Adds the deserialized swap instructions.\n    - **Crucially, sets the `feePayer`** for the transaction (e.g., the connected user's wallet).\n    - Fetches the `recentBlockhash`.\n    - Signs and sends the transaction using the designated `feePayer`'s keypair.\n\nThis example highlights how the SDK can be used in a backend to prepare instructions, while the frontend handles transaction finalization, fee payment, and signing.\n\n## Quick Reference\n\n### Common Import Patterns\n\n```typescript\n// Essential imports for most operations\nimport { \n  SkateSDK, \n  Environment, \n  ChainId, \n  TokenPair, \n  VmType,\n  SwapAmount,\n  MIN_TICK_SQRT_PRICE,\n  MAX_TICK_SQRT_PRICE,\n  base58ToEthBytes32,\n  ethToBytes32,\n  getPeripheryError,\n  PeripheryErrorCode\n} from \"@skate-org/skate_amm_solana\";\n```\n\n### Correct Parameter Usage\n\n```typescript\n// ✅ CORRECT: Same-chain swap with appropriate price limit\nconst sameChainSwapIx = await sdk.getSwapIx(\n  poolConfig,\n  ChainId.SOLANA, // Same as source chain\n  base58ToEthBytes32(userKeypair.publicKey.toBase58()), // ✅ Solana recipient\n  VmType.SVM, // ✅ Use enum, not magic number\n  true, // zeroForOne: true for token0→token1\n  SwapAmount.normalizedWithValidation(0.01, \"swap input amount\"), // ✅ Safe helper with validation\n  \"4295128740\", // ✅ Use appropriate price limit, NOT constants (causes 100% slippage)\n  SwapAmount.nativeWithValidation(0.15, poolConfig.decimal1, \"minimum output amount\"), // ✅ Safe helper with validation\n  Buffer.from([]),\n  userKeypair.publicKey,\n  userKeypair.publicKey,\n  new BN(Math.floor(Date.now() / 1000)).add(new BN(60 * 10)) // ⚠️ Deadline in SECONDS (Unix timestamp)\n);\n\n// ✅ CORRECT: Cross-chain swap with appropriate price limit\nconst crossChainSwapIx = await sdk.getSwapIx(\n  poolConfig,\n  ChainId.ETHEREUM, // Destination chain\n  ethToBytes32(\"0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6\"), // ✅ Ethereum recipient\n  VmType.EVM,\n  true, // zeroForOne: true for token0→token1\n  SwapAmount.normalizedWithValidation(0.01, \"swap input amount\"), // ✅ Safe helper with validation\n  \"4295128740\", // ✅ Use appropriate price limit for cross-chain too\n  SwapAmount.nativeWithValidation(0.15, poolConfig.decimal1, \"minimum output amount\"), // ✅ Safe helper with validation\n  Buffer.from([]),\n  userKeypair.publicKey,\n  userKeypair.publicKey,\n  new BN(Math.floor(Date.now() / 1000)).add(new BN(60 * 10)) // ⚠️ Deadline in SECONDS (Unix timestamp)\n);\n```\n\n### Validation Error Examples\n\nThe SDK will throw helpful errors if you use incorrect parameters:\n\n```typescript\n// This will throw: \"destVmType must be 0-255 (got 901). Did you pass ChainId instead of VmType?\"\nawait sdk.getSwapIx(poolConfig, CHAIN_ID, recipient, CHAIN_ID, ...);\n\n// This will throw: \"recipient must be in bytes32 format (0x followed by 64 hex characters)\"\nawait sdk.getSwapIx(poolConfig, CHAIN_ID, \"invalid_address\", VmType.SVM, ...);\n\n// This will throw: \"sqrtPriceLimitX96 must be between 4295128740 and 1461446703485210103287273052203988822378723970340\"\nawait sdk.getSwapIx(poolConfig, CHAIN_ID, recipient, VmType.SVM, true, amountIn, \"invalid_price\", ...);\n\n// This will throw: \"deadline must be in the future. Current time: 1703123456, Deadline: 1703120000\"\nawait sdk.getSwapIx(poolConfig, CHAIN_ID, recipient, VmType.SVM, true, amountIn, MIN_TICK_SQRT_PRICE, minAmountOut, Buffer.from([]), user, payer, new BN(1703120000));\n\n// This will show a warning: \"⚠️ WARNING: deadline 1703123456789 seems suspiciously large. Did you pass milliseconds instead of seconds?\"\nawait sdk.getSwapIx(poolConfig, CHAIN_ID, recipient, VmType.SVM, true, amountIn, MIN_TICK_SQRT_PRICE, minAmountOut, Buffer.from([]), user, payer, new BN(1703123456789));\n```\n\n### New Safety Features\n\n**Automatic Decimal Validation**:\n- The SDK now automatically validates amounts to prevent 1000x errors\n- Use `SwapAmount.normalizedWithValidation()` and `SwapAmount.nativeWithValidation()` for automatic warnings\n- Warnings appear in console when suspiciously large amounts are detected\n\n**Clear Parameter Names**:\n- `amountSpecifiedNormalized` - Makes it clear to use NORMALIZED_DECIMALS (10^6)\n- `minAmountOutOrMaxAmountInNative` - Makes it clear to use native token decimals\n- Old parameter names are deprecated but still work for backward compatibility\n\n**Sqrt Price Limit Safety**:\n- Only use `MIN_TICK_SQRT_PRICE` or `MAX_TICK_SQRT_PRICE` constants\n- Never use custom calculated values or hardcoded strings\n- The SDK validates that only these exact constants are used\n\n**Deadline Validation**:\n- **⚠️ CRITICAL**: Deadline must be in seconds (Unix timestamp), NOT milliseconds\n- **Common mistake**: Using `Date.now()` directly (returns milliseconds) instead of `Math.floor(Date.now() / 1000)` (returns seconds)\n- Automatic validation prevents past deadlines and suspiciously large values\n- **Correct format**: `new BN(Math.floor(Date.now() / 1000)).add(new BN(60 * 10))` for 10 minutes from now\n- **Wrong format**: `new BN(Date.now()).add(new BN(60 * 10))` (causes deadline to be 1000x too large)\n","readmeFilename":"readme.md"}