{"_id":"@bbachain/spl-token-swap","_rev":"4-2a5ae3df6a13a3bf8e274d0e6fcd76e3","name":"@bbachain/spl-token-swap","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@bbachain/spl-token-swap","version":"0.1.0","keywords":[],"author":{"name":"BBAChain Labs","email":"developers@bbachain.com"},"license":"Apache-2.0","_id":"@bbachain/spl-token-swap@0.1.0","maintainers":[{"name":"bbachain123","email":"bbachain123@gmail.com"},{"name":"peternock","email":"peternock195@gmail.com"},{"name":"bba-maintainer","email":"maintainer@bbachain.com"},{"name":"philipjames","email":"philip@btigroup.ee"}],"homepage":"https://github.com/bbachain/program-executor#readme","bugs":{"url":"https://github.com/bbachain/program-executor/issues"},"dist":{"shasum":"3b6f9c589d813074ba55561c0f148a9d36990cd6","tarball":"https://registry.npmjs.org/@bbachain/spl-token-swap/-/spl-token-swap-0.1.0.tgz","fileCount":29,"integrity":"sha512-HGrD3LmTd6iTyKmoWhL/ZRZVihlxLrYRSyZkFbktin+PVMMpcLIAMqykxLOfw3/Bbf1bOSPKu3gziMnCRxAoLg==","signatures":[{"sig":"MEUCIQCo6Uf+aB3C4e9DH2vLcr8HKLx+ZzK1kjNYg6SZVlTiVAIgQ3MuQVPUnvQgffnhSUIFdRY/a04KsSQ0qTKFfUzhcII=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":120497},"main":"dist/cjs/index.js","types":"dist/types/index.d.ts","module":"dist/esm/index.js","exports":{"import":"./dist/esm/index.js","require":"./dist/cjs/index.js"},"gitHead":"96f859081adb9dfb7a7492436cfb9e5ada0a844e","scripts":{"lint":"npm run pretty && eslint --max-warnings 0 .","test":"ts-node test/main.ts","build":"tsc -p tsconfig.json && tsc-esm -p tsconfig.json && tsc -p tsconfig.cjs.json","pretty":"prettier --check '{,???/**/}*.ts'","lint:fix":"npm run pretty:fix && eslint . --fix","postbuild":"echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json && echo '{\"type\":\"module\"}' > dist/esm/package.json","pretty:fix":"prettier --write '{,???/**/}*.ts'","build:program":"cargo build-bpf --manifest-path ../program/Cargo.toml","start-with-test-validator":"start-server-and-test 'solana-test-validator --bpf-program SwapD4hpSrcB23e4RGdXPBdNzgXoFGaTEa1ZwoouotX ../../target/deploy/spl_token_swap.so --reset --quiet' http://localhost:8899/health test"},"_npmUser":{"name":"philipjames","email":"philip@btigroup.ee"},"repository":{"url":"git+https://github.com/bbachain/program-executor.git","type":"git"},"_npmVersion":"8.19.4","description":"The Token-swap JavaScript library comprises:","directories":{},"sideEffects":false,"_nodeVersion":"16.20.2","dependencies":{"bn.js":"^5.1.3","@bbachain/web3.js":"^1.0.3","@bbachain/buffer-layout":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^7.9.0","ts-node":"^10.0.0","prettier":"^2.1.2","typescript":"^4.2.4","@types/bn.js":"^5.1.0","typescript-esm":"^2.0.0","@bbachain/spl-token":"^0.1.5","eslint-plugin-import":"^2.22.0","start-server-and-test":"^1.11.6"},"_npmOperationalInternal":{"tmp":"tmp/spl-token-swap_0.1.0_1747933308306_0.37288849635987975","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bbachain/spl-token-swap","version":"0.1.1","keywords":["bbachain","blockchain","token-swap","swap"],"author":{"name":"BBAChain Labs","email":"developers@bbachain.com"},"license":"Apache-2.0","_id":"@bbachain/spl-token-swap@0.1.1","maintainers":[{"name":"bbachain123","email":"bbachain123@gmail.com"},{"name":"peternock","email":"peternock195@gmail.com"},{"name":"bba-maintainer","email":"maintainer@bbachain.com"},{"name":"philipjames","email":"philip@btigroup.ee"}],"homepage":"https://github.com/bbachain/program-executor#readme","bugs":{"url":"https://github.com/bbachain/program-executor/issues"},"dist":{"shasum":"466bd02ce50f34e77d059cd714383f86c5adcff4","tarball":"https://registry.npmjs.org/@bbachain/spl-token-swap/-/spl-token-swap-0.1.1.tgz","fileCount":59,"integrity":"sha512-hK7oeCO/mWLRA90ZoYk/eBNtjnffreG4VCMgX+uSgsbib4kVmyD9VOM3Fa7b2WpPpStFUekedsobpfmZhcOVJw==","signatures":[{"sig":"MEUCIQCHY1cntpi9zXIJeUuaDdiKrw+p3Lrg00doQjnn0e07egIgPdV/S21wygeIs47QDjRDhuVPJ1H2wnnCHCQt/BnnXEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321609},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"bafeb9ac079c506cd3052c18e6c43ac6a37d205e","scripts":{"fix":"yarn fix:lint && yarn fix:prettier","lint":"eslint \"{src,test}/**/*.ts\" --format stylish","test":"cpr test/fixtures dist/test/fixtures -o && tape dist/test/*.js","build":"rimraf dist && tsc -p tsconfig.json","api:gen":"DEBUG='(solita|rustbin):(info|error)' solita","fix:lint":"yarn lint --fix","prettier":"prettier \"{src,test}/**/*.ts\" --check","build:docs":"typedoc","preversion":"yarn check:publish-ready","postpublish":"git push origin && git push origin --tags","postversion":"git add package.json && git commit -m \"chore: update $npm_package_name to v$npm_package_version\" && git tag $npm_package_name@$npm_package_version","fix:prettier":"prettier --write src/","prepublishOnly":"yarn check:publish-ready","check:publish-ready":"yarn build && yarn lint"},"_npmUser":{"name":"philipjames","actor":{"name":"philipjames","type":"user","email":"philip@btigroup.ee"},"email":"philip@btigroup.ee"},"repository":{"url":"git+https://github.com/bbachain/program-executor.git","type":"git"},"_npmVersion":"10.8.2","description":"JavaScript/TypeScript bindings for the Solana Program Library (SPL) Token Swap program.","directories":{},"_nodeVersion":"20.19.2","dependencies":{"bn.js":"^5.2.0","debug":"^4.3.4","@bbachain/beet":"^0.0.1","rpc-websockets":"7.11.0","@bbachain/web3.js":"^1.0.3","@bbachain/beet-bbachain":"^0.0.1","@bbachain/buffer-layout":"^1.0.0","@metaplex-foundation/cusper":"^0.0.2","@bbachain/buffer-layout-utils":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpr":"^3.0.1","spok":"^1.4.3","tape":"^5.5.3","eslint":"^8.3.0","rimraf":"^3.0.2","esbuild":"0.15.12","typedoc":"^0.23.16","prettier":"^2.5.1","typescript":"^4.9.3","@types/tape":"^4.13.2","@types/bn.js":"^5.1.1","@types/debug":"^4.1.7","esbuild-runner":"^2.2.1","supports-color":"^9.2.3","@msgpack/msgpack":"^2.8.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","@typescript-eslint/parser":"^5.44.0","@typescript-eslint/eslint-plugin":"^5.44.0"},"_npmOperationalInternal":{"tmp":"tmp/spl-token-swap_0.1.1_1751907742562_0.6826188167130218","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bbachain/spl-token-swap","version":"0.1.2","keywords":["token-swap","bbachain","blockchain","amm","swap"],"author":{"name":"BBAChain Labs","email":"developers@bbachain.com"},"license":"Apache-2.0","_id":"@bbachain/spl-token-swap@0.1.2","maintainers":[{"name":"bbachain123","email":"bbachain123@gmail.com"},{"name":"peternock","email":"peternock195@gmail.com"},{"name":"bba-maintainer","email":"maintainer@bbachain.com"},{"name":"philipjames","email":"philip@btigroup.ee"}],"homepage":"https://github.com/bbachain/program-executor#readme","bugs":{"url":"https://github.com/bbachain/program-executor/issues"},"dist":{"shasum":"1ff734231326cc8011e60f67d8a59d43919ed32b","tarball":"https://registry.npmjs.org/@bbachain/spl-token-swap/-/spl-token-swap-0.1.2.tgz","fileCount":2,"integrity":"sha512-cfcPlTf1pQc2v+2rHTqnwYinuhb0rJ40YjSVQu0iUhFrFnXajSvQd+xM7tSlB97PhrEM/1Up0Exl9cuvc22Ucw==","signatures":[{"sig":"MEYCIQCFA7djg2l71GiGerJPVYyShF4w7E0ZOD7M/4BgeCqLIwIhAOWSMOTx8UNDyS10mDa5+xJuEEvWDaopofER6DGyarjy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8221},"main":"dist/src/index.js","types":"dist/src/index.d.ts","gitHead":"95a6137ab3234fd4e709301dfd31050c9378c53b","scripts":{"fix":"yarn fix:lint && yarn fix:prettier","lint":"eslint \"{src,test,examples}/**/*.ts\" --format stylish","test":"cpr test/fixtures dist/test/fixtures -o && tape dist/test/*.js","build":"rimraf dist && tsc -p tsconfig.build.json","api:gen":"DEBUG='(solita|rustbin):(info|error)' solita","fix:lint":"yarn lint --fix","prettier":"prettier \"{src,test,examples}/**/*.ts\" --check","build:docs":"typedoc","preversion":"yarn check:publish-ready","postpublish":"git push origin && git push origin --tags","postversion":"git add package.json && git commit -m \"chore: update $npm_package_name to v$npm_package_version\" && git tag $npm_package_name@$npm_package_version","fix:prettier":"prettier --write src/ examples/","prepublishOnly":"yarn check:publish-ready","check:publish-ready":"yarn build && yarn lint","example:create-pool":"ts-node examples/create-liquidity-pool.ts"},"_npmUser":{"name":"philipjames","email":"philip@btigroup.ee"},"repository":{"url":"git+https://github.com/bbachain/program-executor.git","type":"git"},"_npmVersion":"10.8.2","description":"JavaScript/TypeScript bindings for the Solana Program Library (SPL) Token Swap program.","directories":{},"_nodeVersion":"20.19.2","dependencies":{"bn.js":"^5.2.0","debug":"^4.3.4","@bbachain/beet":"^0.0.1","rpc-websockets":"7.11.0","@bbachain/web3.js":"^1.0.3","@bbachain/spl-token":"^0.1.5","@bbachain/beet-bbachain":"^0.0.1","@bbachain/buffer-layout":"^1.0.0","@metaplex-foundation/cusper":"^0.0.2","@bbachain/buffer-layout-utils":"^1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"cpr":"^3.0.1","spok":"^1.4.3","tape":"^5.5.3","eslint":"^8.3.0","rimraf":"^3.0.2","esbuild":"0.15.12","ts-node":"^10.9.1","typedoc":"^0.23.16","prettier":"^2.5.1","typescript":"^4.9.3","@types/tape":"^4.13.2","@types/bn.js":"^5.1.1","@types/debug":"^4.1.7","esbuild-runner":"^2.2.1","supports-color":"^9.2.3","@msgpack/msgpack":"^2.8.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","@typescript-eslint/parser":"^5.44.0","@typescript-eslint/eslint-plugin":"^5.44.0"},"_npmOperationalInternal":{"tmp":"tmp/spl-token-swap_0.1.2_1752349394404_0.9222067254508581","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@bbachain/spl-token-swap","version":"0.1.3","author":{"name":"BBAChain Labs","email":"developers@bbachain.com"},"repository":{"type":"git","url":"git+https://github.com/bbachain/program-executor.git"},"license":"Apache-2.0","keywords":["token-swap","bbachain","blockchain","amm","swap"],"publishConfig":{"access":"public"},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"import":"./dist/index.js","require":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"check:publish-ready":"yarn build && yarn lint","preversion":"yarn check:publish-ready","postversion":"git add package.json && git commit -m \"chore: update $npm_package_name to v$npm_package_version\" && git tag $npm_package_name@$npm_package_version","prepublishOnly":"yarn check:publish-ready","postpublish":"git push origin && git push origin --tags","build:docs":"typedoc","build":"rimraf dist && tsc -p tsconfig.build.json","api:gen":"DEBUG='(solita|rustbin):(info|error)' solita","test":"cpr test/fixtures dist/test/fixtures -o && tape dist/test/*.js","example:create-pool":"ts-node examples/create-liquidity-pool.ts","lint":"eslint \"{src,test,examples}/**/*.ts\" --format stylish","fix:lint":"yarn lint --fix","prettier":"prettier \"{src,test,examples}/**/*.ts\" --check","fix:prettier":"prettier --write src/ examples/","fix":"yarn fix:lint && yarn fix:prettier"},"dependencies":{"@bbachain/beet":"^0.0.1","@bbachain/beet-bbachain":"^0.0.1","@bbachain/buffer-layout":"^1.0.0","@bbachain/buffer-layout-utils":"^1.0.0","@bbachain/web3.js":"^1.0.3","@bbachain/spl-token":"^0.1.5","@metaplex-foundation/cusper":"^0.0.2","bn.js":"^5.2.0","debug":"^4.3.4","rpc-websockets":"7.11.0"},"devDependencies":{"@msgpack/msgpack":"^2.8.0","@types/bn.js":"^5.1.1","@types/debug":"^4.1.7","@types/tape":"^4.13.2","@typescript-eslint/eslint-plugin":"^5.44.0","@typescript-eslint/parser":"^5.44.0","cpr":"^3.0.1","esbuild":"0.15.12","esbuild-runner":"^2.2.1","eslint":"^8.3.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","prettier":"^2.5.1","rimraf":"^3.0.2","spok":"^1.4.3","supports-color":"^9.2.3","tape":"^5.5.3","ts-node":"^10.9.1","typedoc":"^0.23.16","typescript":"^4.9.3"},"_id":"@bbachain/spl-token-swap@0.1.3","gitHead":"53d1312b3968aad1eb5a5e6e9f7b17077a025cd7","description":"JavaScript/TypeScript bindings for the Solana Program Library (SPL) Token Swap program.","bugs":{"url":"https://github.com/bbachain/program-executor/issues"},"homepage":"https://github.com/bbachain/program-executor#readme","_nodeVersion":"20.19.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-qvaMjkZp8OJXOWGDKoVAte80jnzJhJ2IjdL30wLjeKJx2AxS9FXzCb9C9NQtVXgQJjnwnYKwr6/o56ft8csACg==","shasum":"f0de5fb4189993469a8e207eeec3cf80aa470af1","tarball":"https://registry.npmjs.org/@bbachain/spl-token-swap/-/spl-token-swap-0.1.3.tgz","fileCount":56,"unpackedSize":294021,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFezDoykjcvFUnpUh4gbD3IUeyYkOfOlLoqnT6c8HdEhAiEA5yDb9IFPYtiUiIhrD+qnGnzzuzV6Bg2tMT34n4JfXSM="}]},"_npmUser":{"name":"philipjames","email":"philip@btigroup.ee"},"directories":{},"maintainers":[{"name":"bbachain123","email":"bbachain123@gmail.com"},{"name":"peternock","email":"peternock195@gmail.com"},{"name":"bba-maintainer","email":"maintainer@bbachain.com"},{"name":"philipjames","email":"philip@btigroup.ee"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/spl-token-swap_0.1.3_1752350336354_0.8183581629303953"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-22T17:01:48.222Z","modified":"2025-07-12T19:58:56.778Z","0.1.0":"2025-05-22T17:01:48.495Z","0.1.1":"2025-07-07T17:02:22.767Z","0.1.2":"2025-07-12T19:43:14.585Z","0.1.3":"2025-07-12T19:58:56.547Z"},"bugs":{"url":"https://github.com/bbachain/program-executor/issues"},"author":{"name":"BBAChain Labs","email":"developers@bbachain.com"},"license":"Apache-2.0","homepage":"https://github.com/bbachain/program-executor#readme","keywords":["token-swap","bbachain","blockchain","amm","swap"],"repository":{"type":"git","url":"git+https://github.com/bbachain/program-executor.git"},"description":"JavaScript/TypeScript bindings for the Solana Program Library (SPL) Token Swap program.","maintainers":[{"name":"bbachain123","email":"bbachain123@gmail.com"},{"name":"peternock","email":"peternock195@gmail.com"},{"name":"bba-maintainer","email":"maintainer@bbachain.com"},{"name":"philipjames","email":"philip@btigroup.ee"}],"readme":"# Token Swap JS Bindings\n\nJavaScript/TypeScript bindings for the Solana Program Library (SPL) Token Swap program.\n\n## Installation\n\n```bash\nnpm install @bbachain/spl-token-swap\n```\n\n## Usage\n\n### Creating a Token Swap\n\n```typescript\nimport { \n  TokenSwap, \n  createInitializeInstruction,\n  CurveType,\n  Fees,\n  SwapCurve \n} from '@bbachain/spl-token-swap';\nimport { Connection, PublicKey, Transaction } from '@bbachain/web3.js';\n\n// Define fees structure\nconst fees: Fees = {\n  tradeFeeNumerator: BigInt(25),        // 0.25% trade fee\n  tradeFeeDenominator: BigInt(10000),\n  ownerTradeFeeNumerator: BigInt(5),    // 0.05% owner fee\n  ownerTradeFeeDenominator: BigInt(10000),\n  ownerWithdrawFeeNumerator: BigInt(0),\n  ownerWithdrawFeeDenominator: BigInt(0),\n  hostFeeNumerator: BigInt(0),\n  hostFeeDenominator: BigInt(0),\n};\n\n// Define swap curve (constant product like Uniswap)\nconst swapCurve: SwapCurve = {\n  curveType: CurveType.ConstantProduct,\n  calculator: new Array(32).fill(0), // 32 bytes for curve parameters\n};\n\n// Create initialize instruction\nconst initializeIx = createInitializeInstruction(\n  {\n    tokenSwap: tokenSwapAccount,\n    authority: swapAuthority,\n    tokenA: tokenAAccount,\n    tokenB: tokenBAccount,\n    poolMint: poolMint,\n    feeAccount: feeAccount,\n    destination: destinationAccount,\n    tokenProgram: TOKEN_PROGRAM_ID,\n  },\n  { fees, swapCurve }\n);\n```\n\n### Performing a Swap\n\n```typescript\nimport { createSwapInstruction } from '@bbachain/spl-token-swap';\n\nconst swapIx = createSwapInstruction(\n  {\n    tokenSwap: tokenSwapAccount,\n    authority: swapAuthority,\n    userTransferAuthority: userAuthority,\n    source: userSourceAccount,\n    swapSource: poolTokenAAccount,\n    swapDestination: poolTokenBAccount,\n    destination: userDestinationAccount,\n    poolMint: poolMint,\n    feeAccount: feeAccount,\n    tokenProgram: TOKEN_PROGRAM_ID,\n    hostFeeAccount: hostFeeAccount, // Optional\n  },\n  {\n    amountIn: BigInt(1000000),      // 1 token (6 decimals)\n    minimumAmountOut: BigInt(950000), // Minimum 0.95 tokens out (slippage protection)\n  }\n);\n```\n\n### Adding Liquidity\n\n```typescript\nimport { createDepositAllTokenTypesInstruction } from '@bbachain/spl-token-swap';\n\nconst depositIx = createDepositAllTokenTypesInstruction(\n  {\n    tokenSwap: tokenSwapAccount,\n    authority: swapAuthority,\n    userTransferAuthority: userAuthority,\n    sourceA: userTokenAAccount,\n    sourceB: userTokenBAccount,\n    intoA: poolTokenAAccount,\n    intoB: poolTokenBAccount,\n    poolMint: poolMint,\n    poolAccount: userPoolAccount,\n    tokenProgram: TOKEN_PROGRAM_ID,\n  },\n  {\n    poolTokenAmount: BigInt(1000000),     // Pool tokens to mint\n    maximumTokenAAmount: BigInt(1000000), // Max token A to deposit\n    maximumTokenBAmount: BigInt(1000000), // Max token B to deposit\n  }\n);\n```\n\n### Removing Liquidity\n\n```typescript\nimport { createWithdrawAllTokenTypesInstruction } from '@bbachain/spl-token-swap';\n\nconst withdrawIx = createWithdrawAllTokenTypesInstruction(\n  {\n    tokenSwap: tokenSwapAccount,\n    authority: swapAuthority,\n    userTransferAuthority: userAuthority,\n    poolMint: poolMint,\n    source: userPoolAccount,\n    fromA: poolTokenAAccount,\n    fromB: poolTokenBAccount,\n    userAccountA: userTokenAAccount,\n    userAccountB: userTokenBAccount,\n    feeAccount: feeAccount,\n    tokenProgram: TOKEN_PROGRAM_ID,\n  },\n  {\n    poolTokenAmount: BigInt(1000000),    // Pool tokens to burn\n    minimumTokenAAmount: BigInt(950000), // Min token A to receive\n    minimumTokenBAmount: BigInt(950000), // Min token B to receive\n  }\n);\n```\n\n### Reading Token Swap State\n\n```typescript\nconst connection = new Connection('https://api.mainnet-beta.solana.com');\n\n// Load token swap account\nconst tokenSwap = await TokenSwap.fromAccountAddress(\n  connection,\n  tokenSwapAccount\n);\n\nconsole.log('Token A:', tokenSwap.tokenA.toBase58());\nconsole.log('Token B:', tokenSwap.tokenB.toBase58());\nconsole.log('Pool Mint:', tokenSwap.poolMint.toBase58());\nconsole.log('Trade Fee:', tokenSwap.fees.tradeFeeNumerator.toString(), '/', tokenSwap.fees.tradeFeeDenominator.toString());\nconsole.log('Curve Type:', tokenSwap.swapCurve.curveType);\n```\n\n## Types\n\n### CurveType\n\n```typescript\nenum CurveType {\n  ConstantProduct = 0, // x * y = k (like Uniswap)\n  ConstantPrice = 1,   // Fixed exchange rate\n  Stable = 2,          // StableSwap curve\n  Offset = 3,          // Offset curve\n}\n```\n\n### Fees\n\n```typescript\ntype Fees = {\n  tradeFeeNumerator: bigint;       // Trade fee numerator\n  tradeFeeDenominator: bigint;     // Trade fee denominator\n  ownerTradeFeeNumerator: bigint;  // Owner fee numerator\n  ownerTradeFeeDenominator: bigint; // Owner fee denominator\n  ownerWithdrawFeeNumerator: bigint; // Owner withdraw fee numerator\n  ownerWithdrawFeeDenominator: bigint; // Owner withdraw fee denominator\n  hostFeeNumerator: bigint;        // Host fee numerator\n  hostFeeDenominator: bigint;      // Host fee denominator\n};\n```\n\n## Error Handling\n\nThe library includes comprehensive error types that match the Rust program:\n\n```typescript\nimport { \n  ExceededSlippageError,\n  InvalidInputError,\n  CalculationFailureError,\n  errorFromCode \n} from '@bbachain/spl-token-swap';\n\ntry {\n  // Transaction execution\n} catch (error) {\n  const programError = errorFromCode(error.code);\n  if (programError instanceof ExceededSlippageError) {\n    console.log('Swap failed due to slippage');\n  }\n}\n```\n\n## Program Address\n\nThe Token Swap program ID: `SwapD4hpSrcB23e4RGdXPBdNzgXoFGaTEa1ZwoouotX`\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}