{"_id":"@cetusprotocol/cetus-zap-sdk","_rev":"3-0fea022d859200d434edcddeac7b927d","name":"@cetusprotocol/cetus-zap-sdk","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.1":{"name":"@cetusprotocol/cetus-zap-sdk","version":"0.0.1","keywords":[],"author":{"name":"test"},"license":"Apache-2.0","_id":"@cetusprotocol/cetus-zap-sdk@0.0.1","maintainers":[{"name":"cetusprotocol","email":"hello@cetus.zone"}],"dist":{"shasum":"5803a767158766324fe7f275f3d9f526629881c2","tarball":"https://registry.npmjs.org/@cetusprotocol/cetus-zap-sdk/-/cetus-zap-sdk-0.0.1.tgz","fileCount":15,"integrity":"sha512-Wh7w7XFpVyKRTy8ob10h6sC2sANgFs4pLGVk/gkWOfF1XBdKuOwENR4Y9/7N/J4q1SBo1WQunvb+1X2BYkG+tA==","signatures":[{"sig":"MEYCIQDt1O/Yh2XvyRM+ErMtUSxWvGwL7TSkljYU1p9kYntgTAIhAKyqryjdjKIMHNxMj4/h8Ik8DqFs0fNF/PJaTaWH3Qx8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":671705},"main":"dist/index.js","module":"dist/index.mjs","gitHead":"d7d5ab9fb7a42cb91f82ed8962ecc15febce90e1","scripts":{"test":"jest","build":"rm -rf dist/ && tsc","prepare":"husky install","lint:fix":"eslint src/*.ts src/**/*.ts --fix","testbuild":"tsc","build:tsup":"npm run build:clean && npm run _build:node","_build:node":"tsup --format cjs,esm --dts","build:clean":"rm -rf dist","publish:test":"node version.js && npm publish --tag experimental"},"typings":"dist/index.d.ts","_npmUser":{"name":"cetusprotocol","email":"hello@cetus.zone"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.2","description":"Zap SDK","directories":{},"lint-staged":{"src/**.{ts,js}":"eslint --fix","src/*/**.{ts,js}":"eslint --fix"},"_nodeVersion":"22.14.0","dependencies":{"axios":"^1.4.0","bn.js":"^5.2.1","dotenv":"^16.4.5","js-sha3":"^0.8.0","js-base64":"^3.7.4","tweetnacl":"^1.0.3","decimal.js":"^10.4.1","superstruct":"^1.0.3","@types/bn.js":"^5.1.1","tiny-invariant":"^1.1.0","@suchipi/femver":"^1.0.0","isomorphic-fetch":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","tsup":"^6.6.2","husky":"^8.0.1","eslint":"^8.23.0","esbuild":"^0.24.2","ts-jest":"^29.0.0","prettier":"^2.7.1","typescript":"^5.7.3","@mysten/bcs":"^0.11.1","@mysten/sui":"^1.8.0","@types/jest":"^29.0.0","bip39-light":"^1.0.7","lint-staged":"^13.0.3","@commitlint/cli":"^17.1.2","@types/lossless-json":"^1.0.1","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","@pythnetwork/pyth-sui-js":"^2.1.0","@typescript-eslint/parser":"^5.36.1","eslint-config-airbnb-base":"^15.0.0","@cetusprotocol/aggregator-sdk":"^0.4.3","@commitlint/config-conventional":"^17.1.0","@typescript-eslint/eslint-plugin":"^5.36.1","@cetusprotocol/cetus-periphery-sdk":"0.0.0-experimental-20250314151138"},"peerDependencies":{"@mysten/bcs":">=0.8.1","@mysten/sui":">=1.1.2","@cetusprotocol/aggregator-sdk":">=0.4.3","@cetusprotocol/cetus-sui-clmm-sdk":">=5.3.3","@cetusprotocol/cetus-periphery-sdk":">=3.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cetus-zap-sdk_0.0.1_1743478187675_0.5826170031819262","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@cetusprotocol/cetus-zap-sdk","version":"0.0.2","keywords":[],"author":{"name":"test"},"license":"Apache-2.0","_id":"@cetusprotocol/cetus-zap-sdk@0.0.2","maintainers":[{"name":"cetusprotocol","email":"hello@cetus.zone"}],"dist":{"shasum":"12c4b38ad0367ee8d223d443ce08a65e0c3bafc9","tarball":"https://registry.npmjs.org/@cetusprotocol/cetus-zap-sdk/-/cetus-zap-sdk-0.0.2.tgz","fileCount":15,"integrity":"sha512-Nxsr45UHLUwF78O9LSoi2TXoNTDWSNPTFKE1M9Y6qFkjz/B73cvVz/i2JGc7JACkc4+Mb6AAlExBi6fQUpJV7A==","signatures":[{"sig":"MEQCIAPfG1WUuMbu3vv0IExJjUCE7Nkf4vsMGaeZ5/Kr/uZvAiAYRKOjAXT32eI39aZIWOaZ1C2+Ij7WosMunTG18Oe2pg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":673411},"main":"dist/index.js","module":"dist/index.mjs","gitHead":"ee34de3201e8f360002a3708b474c92517ac6543","scripts":{"test":"jest","build":"rm -rf dist/ && tsc","prepare":"husky install","lint:fix":"eslint src/*.ts src/**/*.ts --fix","testbuild":"tsc","build:tsup":"npm run build:clean && npm run _build:node","_build:node":"tsup --format cjs,esm --dts","build:clean":"rm -rf dist","publish:test":"node version.js && npm publish --tag experimental"},"typings":"dist/index.d.ts","_npmUser":{"name":"cetusprotocol","email":"hello@cetus.zone"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"","type":"git"},"_npmVersion":"10.9.2","description":"Zap SDK","directories":{},"lint-staged":{"src/**.{ts,js}":"eslint --fix","src/*/**.{ts,js}":"eslint --fix"},"_nodeVersion":"22.14.0","dependencies":{"axios":"^1.4.0","bn.js":"^5.2.1","dotenv":"^16.4.5","js-sha3":"^0.8.0","js-base64":"^3.7.4","tweetnacl":"^1.0.3","decimal.js":"^10.4.1","superstruct":"^1.0.3","@types/bn.js":"^5.1.1","tiny-invariant":"^1.1.0","@suchipi/femver":"^1.0.0","isomorphic-fetch":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.0.0","tsup":"^6.6.2","husky":"^8.0.1","eslint":"^8.23.0","esbuild":"^0.24.2","ts-jest":"^29.0.0","prettier":"^2.7.1","typescript":"^5.7.3","@mysten/bcs":"^0.11.1","@mysten/sui":"^1.8.0","@types/jest":"^29.0.0","bip39-light":"^1.0.7","lint-staged":"^13.0.3","@commitlint/cli":"^17.1.2","@types/lossless-json":"^1.0.1","eslint-plugin-import":"^2.26.0","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","@pythnetwork/pyth-sui-js":"^2.1.0","@typescript-eslint/parser":"^5.36.1","eslint-config-airbnb-base":"^15.0.0","@cetusprotocol/aggregator-sdk":"^0.4.3","@commitlint/config-conventional":"^17.1.0","@typescript-eslint/eslint-plugin":"^5.36.1","@cetusprotocol/cetus-periphery-sdk":"0.0.0-experimental-20250314151138"},"peerDependencies":{"@mysten/bcs":">=0.8.1","@mysten/sui":">=1.1.2","@cetusprotocol/aggregator-sdk":">=0.4.3","@cetusprotocol/cetus-sui-clmm-sdk":">=5.3.3","@cetusprotocol/cetus-periphery-sdk":">=3.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cetus-zap-sdk_0.0.2_1743489371603_0.832959717500316","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@cetusprotocol/cetus-zap-sdk","version":"0.0.3","description":"Zap SDK","typings":"dist/index.d.ts","main":"dist/index.js","module":"dist/index.mjs","scripts":{"test":"jest","lint:fix":"eslint src/*.ts src/**/*.ts --fix","build":"rm -rf dist/ && tsc","testbuild":"tsc","prepare":"husky install","build:tsup":"npm run build:clean && npm run _build:node","build:clean":"rm -rf dist","_build:node":"tsup --format cjs,esm --dts","publish:test":"node version.js && npm publish --tag experimental"},"repository":{"type":"git","url":""},"keywords":[],"author":{"name":"test"},"license":"Apache-2.0","devDependencies":{"@cetusprotocol/aggregator-sdk":"^0.4.3","@cetusprotocol/cetus-periphery-sdk":"0.0.0-experimental-20250314151138","@commitlint/cli":"^17.1.2","@commitlint/config-conventional":"^17.1.0","@pythnetwork/pyth-sui-js":"^2.1.0","@mysten/bcs":"^0.11.1","@mysten/sui":"^1.8.0","@types/jest":"^29.0.0","@types/lossless-json":"^1.0.1","@typescript-eslint/eslint-plugin":"^5.36.1","@typescript-eslint/parser":"^5.36.1","bip39-light":"^1.0.7","esbuild":"^0.24.2","eslint":"^8.23.0","eslint-config-airbnb-base":"^15.0.0","eslint-config-prettier":"^8.5.0","eslint-plugin-import":"^2.26.0","eslint-plugin-prettier":"^4.2.1","husky":"^8.0.1","jest":"^29.0.0","lint-staged":"^13.0.3","prettier":"^2.7.1","ts-jest":"^29.0.0","tsup":"^6.6.2","typescript":"^5.7.3"},"dependencies":{"@suchipi/femver":"^1.0.0","@types/bn.js":"^5.1.1","axios":"^1.4.0","bn.js":"^5.2.1","decimal.js":"^10.4.1","dotenv":"^16.4.5","isomorphic-fetch":"^3.0.0","js-base64":"^3.7.4","js-sha3":"^0.8.0","superstruct":"^1.0.3","tiny-invariant":"^1.1.0","tweetnacl":"^1.0.3"},"peerDependencies":{"@mysten/bcs":">=0.8.1","@mysten/sui":">=1.1.2","@cetusprotocol/aggregator-sdk":">=0.4.3","@cetusprotocol/cetus-periphery-sdk":">=3.5.0","@cetusprotocol/cetus-sui-clmm-sdk":">=5.3.3"},"lint-staged":{"src/**.{ts,js}":"eslint --fix","src/*/**.{ts,js}":"eslint --fix"},"commitlint":{"extends":["@commitlint/config-conventional"]},"_id":"@cetusprotocol/cetus-zap-sdk@0.0.3","gitHead":"cb1888466bcca4497c205fbd97607b086a5b539d","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-qSChJOSCR+MJfuIEJb/5/gd9drEywL538dbl7N/0Ri85t1w6uN9dJX7MG6J881P3v70DIIHa1ijtDUozoFziXQ==","shasum":"f7384403cfef712d0536cffc1f17b51ed490d1ed","tarball":"https://registry.npmjs.org/@cetusprotocol/cetus-zap-sdk/-/cetus-zap-sdk-0.0.3.tgz","fileCount":15,"unpackedSize":675960,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID55aE956BZLGdSYoGWdGO2t5YcObiUe8IsXT/OcUBseAiBDp+H83o9wwmUxFKbW6ua8UJI3aKT9FsatahCvKpX2tQ=="}]},"_npmUser":{"name":"cetusprotocol","email":"hello@cetus.zone"},"directories":{},"maintainers":[{"name":"cetusprotocol","email":"hello@cetus.zone"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cetus-zap-sdk_0.0.3_1743593891424_0.7009266251720827"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-01T03:29:47.594Z","modified":"2025-04-02T11:38:11.827Z","0.0.1":"2025-04-01T03:29:47.933Z","0.0.2":"2025-04-01T06:36:12.055Z","0.0.3":"2025-04-02T11:38:11.652Z"},"author":{"name":"test"},"license":"Apache-2.0","keywords":[],"repository":{"type":"git","url":""},"description":"Zap SDK","maintainers":[{"name":"cetusprotocol","email":"hello@cetus.zone"}],"readme":"## Zap Operations\nThe SDK provides a Zap module for specialized liquidity operations with different modes to suit various trading strategies.\n\n### Common Parameters\n- `pool_id`: The ID of the liquidity pool\n- `tick_lower` & `tick_upper`: Price range boundaries for the position\n- `current_sqrt_price`: Current square root price of the pool\n- `slippage`: Maximum acceptable price slippage (e.g., 0.01 for 1%)\n- `coin_type_a` & `coin_type_b`: Coin type identifiers for the trading pair\n- `coin_decimal_a` & `coin_decimal_b`: Decimal places for each coin type\n\n### 1. Deposit Operations\n\n#### Mode-Specific Parameters\n1. **FixedOneSide**\n   - `fixed_amount`: Fixed amount to deposit\n   - `fixed_coin_a`: Boolean indicating whether to fix coin A (true) or coin B (false)\n\n2. **FlexibleBoth**\n   - `coin_amount_a`: Amount of coin A to deposit\n   - `coin_amount_b`: Amount of coin B to deposit\n\n3. **OnlyCoinA/OnlyCoinB**\n   - `coin_amount`: Amount of single coin to deposit\n\n#### Usage Example\n```typescript\n// Initialize SDK and get pool information\nconst sdk = buildSdk(SdkEnv.mainnet)\nconst pool = await sdk.CetusClmmSDK.Pool.getPool(poolId)\n\n// Pre-calculate deposit amounts (example: FixedOneSide mode)\nconst result = await sdk.Zap.preCalculateDepositAmount(\n    {\n        pool_id: poolId,\n        tick_lower,\n        tick_upper,\n        current_sqrt_price: pool.current_sqrt_price.toString(),\n        slippage: 0.01,\n    },\n    {\n        mode: 'FixedOneSide',\n        fixed_amount: toDecimalsAmount(1, 6).toString(),\n        fixed_coin_a: false,\n    }\n)\n\n// Build and send transaction\nconst tx = await sdk.Zap.buildDepositPayload({\n    deposit_obj: result,\n    pool_id: poolId,\n    coin_type_a: pool.coinTypeA,\n    coin_type_b: pool.coinTypeB,\n    tick_lower,\n    tick_upper,\n    slippage: 0.01,\n    pos_obj: {                    // Optional: Add to existing position\n        pos_id: positionId,\n        collect_fee: false,\n        collect_rewarder_types: [],\n    }\n})\n\n// Simulate or send the transaction\nconst simResult = await sdk.FullClient.sendSimulationTransaction(tx, address)\n// const txResult = await sdk.FullClient.sendTransaction(sendKeyPair, tx)\n```\n\n### 2. Withdraw Operations\nWithdrawals require an existing position in the pool.\n\n#### Mode-Specific Parameters\n1. **FixedOneSide**\n   - `fixed_amount`: Fixed amount to withdraw\n   - `fixed_coin_a`: Boolean indicating whether to withdraw coin A (true) or coin B (false)\n\n2. **OnlyCoinA/OnlyCoinB**\n   - `burn_liquidity`: Amount of liquidity to burn\n   - `available_liquidity`: Total available liquidity in the position\n\n#### Usage Example\n```typescript\n// Get pool and position information\nconst pool = await sdk.CetusClmmSDK.Pool.getPool(poolId)\nconst position = await sdk.CetusClmmSDK.Position.getPositionById(positionId)\n\nif (!pool || !position) {\n    throw new Error('Pool or Position not found')\n}\n\n// Pre-calculate withdrawal (example: OnlyCoinA mode)\nconst result = await sdk.Zap.preCalculateWithdrawAmount({\n    mode: 'OnlyCoinA',\n    pool_id: poolId,\n    tick_lower: position.tick_lower_index,\n    tick_upper: position.tick_upper_index,\n    current_sqrt_price: pool.current_sqrt_price.toString(),\n    burn_liquidity: '200000',\n    available_liquidity: position.liquidity.toString(),\n    coin_type_a: pool.coinTypeA,\n    coin_type_b: pool.coinTypeB,\n    coin_decimal_a: 6,\n    coin_decimal_b: 9,\n})\n\n// Build and send transaction\nconst tx = await sdk.Zap.buildWithdrawPayload({\n    withdraw_obj: result,\n    pool_id: poolId,\n    pos_id: positionId,\n    close_pos: false,             // Whether to close the position\n    collect_fee: true,            // Whether to collect accumulated fees\n    collect_rewarder_types: [],   // Types of rewards to collect\n    coin_type_a: pool.coinTypeA,\n    coin_type_b: pool.coinTypeB,\n    tick_lower: position.tick_lower_index,\n    tick_upper: position.tick_upper_index,\n    slippage: 0.01,\n})\n\n// Simulate or send the transaction\nconst simResult = await sdk.FullClient.sendSimulationTransaction(tx, address)\n// const txResult = await sdk.FullClient.sendTransaction(sendKeyPair, tx)\n```\n```","readmeFilename":"README.md"}