{"_id":"@animeswap.org/sui-v1-sdk","_rev":"1-da26be1e7a1842803038d1cc532ab335","name":"@animeswap.org/sui-v1-sdk","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.1":{"name":"@animeswap.org/sui-v1-sdk","version":"0.0.1","description":"SDK for use any functions of AnimeSwap v1 Protocol","repository":{"type":"git","url":"git+https://github.com/AnimeSwap/sui-v1-sdk.git"},"license":"GPL-3.0-or-later","keywords":["animeswap","defi","swap","sui","v1","sdk"],"engines":{"node":">=16.0.0"},"main":"./dist/tsc/main.js","types":"./dist/tsc/main.d.ts","scripts":{"lint":"eslint src/ --ext .js,.jsx,.ts,.tsx","test":"jest","clean":"rm -rf dist build package","ts-node":"ts-node","docs":"typedoc --entryPoints src/main.ts","build":"tsc -p tsconfig.json","build-all":"yarn clean && yarn build"},"devDependencies":{"@types/jest":"^29.2.4","@types/node":"^18.11.10","@typescript-eslint/eslint-plugin":"^5.45.0","@typescript-eslint/parser":"^5.45.0","esbuild":"^0.15.18","eslint":"^8.29.0","jest":"29.3.1","ts-jest":"^29.0.3","ts-node":"^10.9.1","typedoc":"^0.23.21","typescript":"^4.9.3"},"dependencies":{"@mysten/sui.js":"^0.32.2","decimal.js":"^10.4.3"},"gitHead":"1ba7eff230abf98858a776a38ae971d71294710c","bugs":{"url":"https://github.com/AnimeSwap/sui-v1-sdk/issues"},"homepage":"https://github.com/AnimeSwap/sui-v1-sdk#readme","_id":"@animeswap.org/sui-v1-sdk@0.0.1","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-wUCGVLbrHDePKdyoGnetqxvYchHUq5D/J7sdGY6aX0Vp/TPx5kxFvBHUK0MIDgyVIlTOVaL3HKFG8G+JTwVMCg==","shasum":"434c89116dbbe6a26578ecfaa34a18014db7df68","tarball":"https://registry.npmjs.org/@animeswap.org/sui-v1-sdk/-/sui-v1-sdk-0.0.1.tgz","fileCount":24,"unpackedSize":100201,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFx4QE2sldMozarH/4zZ0RIY6mvDjMk22HmgH9Z6blGlAiAaCwlpnx3tjM0YGYAn5/eAcdFGufmWL6LvSw9j40HSGQ=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUn2oACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpPRQ/9EjNpndfaPL+npcGqUN1OwZ4Ww3KqtCGvq+wQYfyU9nN6eny6\r\nACND1dpVijY6//Gc1z/6YQDg+Gdb4emGf0bzcmu4SXcZ8svyyP17H3DAf5A6\r\ntLkbinPtl9Tkrdsc4Yg76qBvQ7tQAG/MFtszJ9ikvpAQxLNM+xh0ZPUCwZ31\r\nbH4bT0ChVvhL4aNDuOayUWespO5Kdv+gQR0HKC40bRgO9vPcdGHAAOcoExSJ\r\nYFKK+wqjBqLZw9HJh0WSqSxaPL2lx/lK92ZddzuyHh290ZP7cs/oE/ddaJ+/\r\nSwu1bN/qFiILNAJjy232Eo9rIA3LTFK7cyP4iA3f2YqRL8oay0Fz1CfrxBAZ\r\nXGbBa1YTqkyCaVHG0DwO7Mw9zcS4GyvmjQ5XMBHPy8bKnNk6k/iGZtn5e9NS\r\nub8n2mLza0aGhk35Vrwj2EY4/7v9eFLmkE/ohSzygMIjZp8KF8q1+qdoKRze\r\nLfdNkTnFXg3s5y2bYCF31yi8iYEcPMjWpP0uFDxZi3X/p60BiR3hG4+3MaYD\r\naiCbWdaUX3Am32zCHCQNyDOSIkawk5tI1S8gih/rf9+y3el6b7hZQQFD5qOm\r\nbzi/Viw5v1UTriolTYy6/siz8IwylIlwfG1Pe+lVhv+BXxPO67WZtFf+KpA6\r\n1K0pgOpoJXITYimU4qP+33pzj/IKxr+wuj4=\r\n=6rQt\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"azard5","email":"weilunxiong@qq.com"},"directories":{},"maintainers":[{"name":"azard5","email":"weilunxiong@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sui-v1-sdk_0.0.1_1683127720645_0.7795231336580828"},"_hasShrinkwrap":false},"1.0.0":{"name":"@animeswap.org/sui-v1-sdk","version":"1.0.0","description":"SDK for use any functions of AnimeSwap v1 Protocol","repository":{"type":"git","url":"git+https://github.com/AnimeSwap/sui-v1-sdk.git"},"license":"GPL-3.0-or-later","keywords":["animeswap","defi","swap","sui","v1","sdk"],"engines":{"node":">=16.0.0"},"main":"./dist/tsc/main.js","types":"./dist/tsc/main.d.ts","scripts":{"lint":"eslint src/ --ext .js,.jsx,.ts,.tsx","test":"jest","clean":"rm -rf dist build package","ts-node":"ts-node","docs":"typedoc --entryPoints src/main.ts","build":"tsc -p tsconfig.json","build-all":"yarn clean && yarn build"},"devDependencies":{"@types/jest":"^29.2.4","@types/node":"^18.11.10","@typescript-eslint/eslint-plugin":"^5.45.0","@typescript-eslint/parser":"^5.45.0","esbuild":"^0.15.18","eslint":"^8.29.0","jest":"29.3.1","ts-jest":"^29.0.3","ts-node":"^10.9.1","typedoc":"^0.23.21","typescript":"^4.9.3"},"dependencies":{"@mysten/sui.js":"^0.33.0","decimal.js":"^10.4.3"},"gitHead":"73880517d9a810857b92754607c90f65d09e5d47","bugs":{"url":"https://github.com/AnimeSwap/sui-v1-sdk/issues"},"homepage":"https://github.com/AnimeSwap/sui-v1-sdk#readme","_id":"@animeswap.org/sui-v1-sdk@1.0.0","_nodeVersion":"18.15.0","_npmVersion":"9.5.0","dist":{"integrity":"sha512-cunFFX8EPmTv0Fvp6Js14Z9OU8RRo5Q7iiSVE4F6WL51UbjLGHRldcQ7oeUaGPVWf+dYp6uxROUxYEQez2ZOcw==","shasum":"d3c59f5508bda58f9224eef19c5a9b0013deaa57","tarball":"https://registry.npmjs.org/@animeswap.org/sui-v1-sdk/-/sui-v1-sdk-1.0.0.tgz","fileCount":69,"unpackedSize":215522,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDD+x8Z1VQrIt5c6YL/BAGkWLdkNFTWtHbivTZ/dfq5awIhAKRHMJn7Zou1QucVqMSv1qxbtHGF2NUd3cFaDcz9CfY5"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkUornACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmrbeBAAomipYqTBjWyWs0PgL7o8f4TJgF/qX4+2ntEg5UGFVkUXxbZi\r\nm4Cml+PT8d2YAguP7FPM6tb1PK0J5FwDENfbJ2p2hLazVFq2KM99GKM4tBu/\r\nq9Gy115WBdVkdf47GtQyYzq/2MIALrfWNsNlrFVcAXYy7ELGMVS+QVdbEI2e\r\n1k5gZ+wnUgZM7zi9bQxNlyZiHO/S1KywKhj9ziAraS9+DBE3YtUImT393w/4\r\n40SsJPcBXyA4zvwe8Dm93+9yVMP4pfbb6c6pAiJ5IdJ+9pDAbJsvrTDzkw1Q\r\nHrMzTO1HIGv8zTsjNOcTLV7oGhpOtnzo0paUC5bNt+1cjccaJ0GU+jfWs/xM\r\n/yqzBDDCDWXkC6dFp5u42CVvt4FhrUYcZmFz5If6JJzt/7CPTCm2ni9k4lY2\r\nemATUKZcZSYN1W7T9HOL0JfEkH86Pp0+QI5OhxJHr26H4XKj7jAQkyAQaHTh\r\nQ8rr1SIhcyRtI4DSivkJSJl/kgq8OJ3gDx3pu4A6pNXUztr5uxqr0UE8hPrD\r\nS4FlLJD2b63pA+yLSqbWIXukMWoN5/3vQHf6KO0ALy0eWz2sB7wFuu80eEEQ\r\nKOJ8SFgy/NpYmVn6Zvv4aq9CVoIVHTunnTlwT3aov/tyam8k1fzRcXHC+U/L\r\ncaZAfByWeYaRbTAsQmWm7N/2RjVU59fsx5M=\r\n=uI9R\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"azard5","email":"weilunxiong@qq.com"},"directories":{},"maintainers":[{"name":"azard5","email":"weilunxiong@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sui-v1-sdk_1.0.0_1683131111296_0.9567028887596891"},"_hasShrinkwrap":false}},"time":{"created":"2023-05-03T15:28:40.592Z","0.0.1":"2023-05-03T15:28:40.809Z","modified":"2023-05-03T16:25:11.617Z","1.0.0":"2023-05-03T16:25:11.491Z"},"maintainers":[{"name":"azard5","email":"weilunxiong@qq.com"}],"description":"SDK for use any functions of AnimeSwap v1 Protocol","homepage":"https://github.com/AnimeSwap/sui-v1-sdk#readme","keywords":["animeswap","defi","swap","sui","v1","sdk"],"repository":{"type":"git","url":"git+https://github.com/AnimeSwap/sui-v1-sdk.git"},"bugs":{"url":"https://github.com/AnimeSwap/sui-v1-sdk/issues"},"license":"GPL-3.0-or-later","readme":"# AnimeSwap Sui v1 Protocol SDK\n\nThe typescript SDK for [AnimeSwap](https://animeswap.org) Sui v1 protocol.\n\n* [SDK documents](https://docs.animeswap.org/docs/sdk)\n* [Contracts documents](https://docs.animeswap.org/docs/contracts/Sui/contracts)\n\n# Installation\n\n    yarn add \"@animeswap.org/sui-v1-sdk\"\n\n# Usage Example\n### Init SDK\n```typescript\nimport SDK, { NetworkType } from '@animeswap.org/sui-v1-sdk';\n\nconst sdk = new SDK(NetworkType.Testnet)\n```\n\n### Is pair exist\n```typescript\n(async () => {\n  const SUI = '0x2::sui::SUI'\n  const BTC = '0x16fe2df00ea7dde4a63409201f7f4e536bde7bb7335526a35d05111e68aa322c::TestCoinsV1::BTC'\n\n  const output = await sdk.swap.isPairExist(SUI, BTC)\n})()\n```\n\n### Add liquidity rate calculation and txb.\n\nIf pair not exists, tx will create pair first\n\n```typescript\n(async () => {\n  const SUI = '0x2::sui::SUI'\n  const BTC = '0x16fe2df00ea7dde4a63409201f7f4e536bde7bb7335526a35d05111e68aa322c::TestCoinsV1::BTC'\n  const walletAddress = '0xdeadbeef'\n\n  const isPairExist = await sdk.swap.isPairExist(SUI, BTC)\n\n  if (isPairExist) {\n    // Add liqudity with a given rate\n    const amountIn = 1e8\n    const output = await sdk.swap.addLiquidityRates({\n      coinX: SUI,\n      coinY: BTC,\n      fixedCoin: 'X', // 'X' | 'Y'\n      amount: amountIn,  // fixedCoin amount\n    })\n\n    /**\n      output type:\n      {\n        amount: Decimal\n        coinXDivCoinY: Decimal\n        coinYDivCoinX: Decimal\n        shareOfPool: Decimal\n      }\n    */\n\n    const txb = sdk.swap.addLiquidityPayload({\n      address::walletAddress\n      coinX: SUI,\n      coinY: BTC,\n      amountX: amountIn,\n      amountY: output.amount,\n      slippage: 0.05, // 5%\n    })\n\n    /**\n      output type: txb\n    */\n  } else {\n    // Create pair and add initial liquidity\n    const txb = sdk.swap.addLiquidityPayload({\n      address::walletAddress\n      coinX: SUI,\n      coinY: BTC,\n      amountX: 1e8, // any amount you want\n      amountY: 1e7, // any amount you want\n      slippage: 0.05, // 5%\n    })\n\n    /**\n      output type: txb\n    */\n  }\n})()\n```\n\n### Remove liquidity rate calculation and txb for existed pairs\n```typescript\n(async () => {\n  const SUI = '0x2::sui::SUI'\n  const BTC = '0x16fe2df00ea7dde4a63409201f7f4e536bde7bb7335526a35d05111e68aa322c::TestCoinsV1::BTC'\n  const walletAddress = '0xdeadbeef'\n  const lpAmount = 1e6\n\n  const output = await sdk.swap.removeLiquidityRates({\n    coinX: SUI,\n    coinY: BTC,\n    amount: lpAmount,  // lp amount\n  });\n\n  /**\n    output type:\n    {\n      amountX: Decimal\n      amountY: Decimal\n    }\n   */\n\n  const txPayload = sdk.swap.removeLiquidityPayload({\n    address: walletAddress,\n    coinX: SUI,\n    coinY: BTC,\n    amount: lpAmount,\n    amountXDesired: output.amountX,\n    amountYDesired: output.amountY,\n    slippage: 0.05, // 5%\n    deadline: 30,   // 30 seconds\n  })\n\n  /**\n    output type: txb\n   */\n})()\n```\n\n### Swap (exact in) rate calculation and txb.\n\nSwap exact coin to coin mode\n\n```typescript\n(async () => {\n  const SUI = '0x2::sui::SUI'\n  const BTC = '0x16fe2df00ea7dde4a63409201f7f4e536bde7bb7335526a35d05111e68aa322c::TestCoinsV1::BTC'\n  const walletAddress = '0xdeadbeef'\n  const aptosAmount = 1e6\n\n  const trades = await sdk.route.getRouteSwapExactCoinForCoin({\n    fromCoin: SUI,\n    toCoin: BTC,\n    amount: aptosAmount,\n  });\n  if (trades.length == 0) throw(\"No route error\")\n  const bestTrade = trades[0]\n  /**\n    bestTrade type:\n    {\n      coinPairList: LiquidityPoolResource[]\n      amountList: string[]\n      coinTypeList: string[]\n      priceImpact: Decimal\n    }\n   */\n\n  const output = sdk.route.swapExactCoinForCoinPayload({\n    address: walletAddress,\n    trade: bestTrade,\n    slippage: 0.05,   // 5%\n  })\n\n  /**\n    output type: txb\n   */\n})()\n```\n\n### Swap (exact out) rate calculation and txb.\n\nSwap coin to exact coin mode\n\n```typescript\n(async () => {\n  const SUI = '0x2::sui::SUI'\n  const BTC = '0x16fe2df00ea7dde4a63409201f7f4e536bde7bb7335526a35d05111e68aa322c::TestCoinsV1::BTC'\n  const walletAddress = '0xdeadbeef'\n  const btcAmount = 1e6\n\n  const trades = await sdk.route.getRouteSwapCoinForExactCoin({\n    fromCoin: SUI,\n    toCoin: BTC,\n    amount: btcAmount,\n  });\n  if (trades.length == 0) throw(\"No route error\")\n  const bestTrade = trades[0]\n  /**\n    bestTrade type:\n    {\n      coinPairList: LiquidityPoolResource[]\n      amountList: string[]\n      coinTypeList: string[]\n      priceImpact: Decimal\n    }\n   */\n\n  const output = sdk.route.swapCoinForExactCoinPayload({\n    address: walletAddress,\n    trade: bestTrade,\n    slippage: 0.05,   // 5%\n  })\n\n  /**\n    output type: txb\n   */\n})()\n```\n\n### Get all LPCoin by address\n```typescript\n(async () => {\n  const queryAddress = '0xA11ce'\n  const output = await sdk.swap.getAllLPCoinResourcesByAddress(queryAddress)\n\n  /**\n    output type:\n    [{\n      coinX: AptosResourceType\n      coinY: AptosResourceType\n      lpCoin: AptosResourceType\n      value: string\n    }]\n   */\n})()\n```\n\n### Get LPCoin amount\n```typescript\n(async () => {\n  const SUI = '0x2::sui::SUI'\n  const BTC = '0x16fe2df00ea7dde4a63409201f7f4e536bde7bb7335526a35d05111e68aa322c::TestCoinsV1::BTC'\n  const queryAddress = '0xA11ce'\n\n  const output = await sdk.swap.getLPCoinAmount({\n    address: queryAddress,\n    coinX: SUI,\n    coinY: BTC,\n  })\n\n  /**\n    output type:\n    {\n      coinX: AptosResourceType\n      coinY: AptosResourceType\n      lpCoin: AptosResourceType\n      value: string\n    }\n   */\n})()\n```\n","readmeFilename":"README.md"}