@allbridge/bridge-core-sdk 3.32.1 → 3.33.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/browser/index.js +2 -2
  2. package/dist/browser/index.js.map +4 -4
  3. package/dist/cjs/index.js +2 -2
  4. package/dist/cjs/index.js.map +4 -4
  5. package/dist/esm/index.js +2 -2
  6. package/dist/esm/index.js.map +4 -4
  7. package/dist/src/client/core-api/api-client-caching.d.ts +2 -0
  8. package/dist/src/client/core-api/api-client-caching.js +2 -0
  9. package/dist/src/client/core-api/api-client-caching.js.map +1 -1
  10. package/dist/src/client/core-api/api-client.d.ts +5 -0
  11. package/dist/src/client/core-api/api-client.js +2 -0
  12. package/dist/src/client/core-api/api-client.js.map +1 -1
  13. package/dist/src/client/core-api/core-api-mapper.d.ts +15 -0
  14. package/dist/src/client/core-api/core-api-mapper.js +15 -0
  15. package/dist/src/client/core-api/core-api-mapper.js.map +1 -1
  16. package/dist/src/client/core-api/core-api.model.d.ts +30 -0
  17. package/dist/src/client/core-api/core-api.model.js +4 -0
  18. package/dist/src/client/core-api/core-api.model.js.map +1 -1
  19. package/dist/src/client/core-api/core-client-base.d.ts +9 -0
  20. package/dist/src/client/core-api/core-client-base.js +3 -0
  21. package/dist/src/client/core-api/core-client-base.js.map +1 -1
  22. package/dist/src/client/core-api/core-client-filtered.d.ts +16 -0
  23. package/dist/src/client/core-api/core-client-filtered.js +4 -0
  24. package/dist/src/client/core-api/core-client-filtered.js.map +1 -1
  25. package/dist/src/client/core-api/core-client-pool-info-caching.d.ts +13 -0
  26. package/dist/src/client/core-api/core-client-pool-info-caching.js +7 -0
  27. package/dist/src/client/core-api/core-client-pool-info-caching.js.map +1 -1
  28. package/dist/src/exceptions/exceptions.d.ts +4 -0
  29. package/dist/src/exceptions/exceptions.js +4 -0
  30. package/dist/src/exceptions/exceptions.js.map +1 -1
  31. package/dist/src/index.d.ts +46 -28
  32. package/dist/src/index.js +17 -86
  33. package/dist/src/index.js.map +1 -1
  34. package/dist/src/models/index.d.ts +2 -1
  35. package/dist/src/models/index.js.map +1 -1
  36. package/dist/src/services/bridge/alg/index.d.ts +1 -0
  37. package/dist/src/services/bridge/alg/index.js +1 -0
  38. package/dist/src/services/bridge/alg/index.js.map +1 -1
  39. package/dist/src/services/bridge/evm/index.d.ts +2 -0
  40. package/dist/src/services/bridge/evm/index.js +2 -0
  41. package/dist/src/services/bridge/evm/index.js.map +1 -1
  42. package/dist/src/services/bridge/index.d.ts +4 -2
  43. package/dist/src/services/bridge/index.js +7 -45
  44. package/dist/src/services/bridge/index.js.map +1 -1
  45. package/dist/src/services/bridge/models/bridge.d.ts +1 -0
  46. package/dist/src/services/bridge/models/bridge.js.map +1 -1
  47. package/dist/src/services/bridge/models/bridge.model.d.ts +14 -6
  48. package/dist/src/services/bridge/models/bridge.model.js.map +1 -1
  49. package/dist/src/services/bridge/raw-bridge-transaction-builder.d.ts +6 -0
  50. package/dist/src/services/bridge/raw-bridge-transaction-builder.js +3 -2
  51. package/dist/src/services/bridge/raw-bridge-transaction-builder.js.map +1 -1
  52. package/dist/src/services/bridge/sol/bridge-tx-service.d.ts +2 -0
  53. package/dist/src/services/bridge/sol/bridge-tx-service.js +1 -0
  54. package/dist/src/services/bridge/sol/bridge-tx-service.js.map +1 -1
  55. package/dist/src/services/bridge/sol/index.d.ts +2 -0
  56. package/dist/src/services/bridge/sol/index.js +1 -0
  57. package/dist/src/services/bridge/sol/index.js.map +1 -1
  58. package/dist/src/services/bridge/spender.d.ts +4 -0
  59. package/dist/src/services/bridge/spender.js +45 -0
  60. package/dist/src/services/bridge/spender.js.map +1 -0
  61. package/dist/src/services/bridge/srb/index.d.ts +2 -0
  62. package/dist/src/services/bridge/srb/index.js +2 -0
  63. package/dist/src/services/bridge/srb/index.js.map +1 -1
  64. package/dist/src/services/bridge/stx/index.d.ts +1 -0
  65. package/dist/src/services/bridge/stx/index.js +1 -0
  66. package/dist/src/services/bridge/stx/index.js.map +1 -1
  67. package/dist/src/services/bridge/sui/index.d.ts +1 -0
  68. package/dist/src/services/bridge/sui/index.js +1 -0
  69. package/dist/src/services/bridge/sui/index.js.map +1 -1
  70. package/dist/src/services/bridge/trx/index.d.ts +2 -0
  71. package/dist/src/services/bridge/trx/index.js +2 -0
  72. package/dist/src/services/bridge/trx/index.js.map +1 -1
  73. package/dist/src/services/bridge/utils.d.ts +4 -0
  74. package/dist/src/services/bridge/utils.js +1 -0
  75. package/dist/src/services/bridge/utils.js.map +1 -1
  76. package/dist/src/services/index.d.ts +25 -2
  77. package/dist/src/services/index.js +17 -2
  78. package/dist/src/services/index.js.map +1 -1
  79. package/dist/src/services/liquidity-pool/alg/index.d.ts +3 -0
  80. package/dist/src/services/liquidity-pool/alg/index.js +3 -0
  81. package/dist/src/services/liquidity-pool/alg/index.js.map +1 -1
  82. package/dist/src/services/liquidity-pool/evm/index.d.ts +3 -0
  83. package/dist/src/services/liquidity-pool/evm/index.js +3 -0
  84. package/dist/src/services/liquidity-pool/evm/index.js.map +1 -1
  85. package/dist/src/services/liquidity-pool/index.d.ts +19 -0
  86. package/dist/src/services/liquidity-pool/index.js +7 -0
  87. package/dist/src/services/liquidity-pool/index.js.map +1 -1
  88. package/dist/src/services/liquidity-pool/models/pool.d.ts +8 -0
  89. package/dist/src/services/liquidity-pool/models/pool.js +3 -0
  90. package/dist/src/services/liquidity-pool/models/pool.js.map +1 -1
  91. package/dist/src/services/liquidity-pool/models/pool.model.d.ts +27 -0
  92. package/dist/src/services/liquidity-pool/models/pool.model.js +3 -0
  93. package/dist/src/services/liquidity-pool/models/pool.model.js.map +1 -1
  94. package/dist/src/services/liquidity-pool/raw-pool-transaction-builder.d.ts +11 -0
  95. package/dist/src/services/liquidity-pool/raw-pool-transaction-builder.js +3 -0
  96. package/dist/src/services/liquidity-pool/raw-pool-transaction-builder.js.map +1 -1
  97. package/dist/src/services/liquidity-pool/sol/index.d.ts +3 -0
  98. package/dist/src/services/liquidity-pool/sol/index.js +3 -0
  99. package/dist/src/services/liquidity-pool/sol/index.js.map +1 -1
  100. package/dist/src/services/liquidity-pool/srb/index.d.ts +3 -0
  101. package/dist/src/services/liquidity-pool/srb/index.js +3 -0
  102. package/dist/src/services/liquidity-pool/srb/index.js.map +1 -1
  103. package/dist/src/services/liquidity-pool/stx/index.d.ts +3 -0
  104. package/dist/src/services/liquidity-pool/stx/index.js +3 -0
  105. package/dist/src/services/liquidity-pool/stx/index.js.map +1 -1
  106. package/dist/src/services/liquidity-pool/sui/index.d.ts +3 -0
  107. package/dist/src/services/liquidity-pool/sui/index.js +3 -0
  108. package/dist/src/services/liquidity-pool/sui/index.js.map +1 -1
  109. package/dist/src/services/liquidity-pool/trx/index.d.ts +3 -0
  110. package/dist/src/services/liquidity-pool/trx/index.js +3 -0
  111. package/dist/src/services/liquidity-pool/trx/index.js.map +1 -1
  112. package/dist/src/services/utils/calculation/index.d.ts +6 -0
  113. package/dist/src/services/utils/calculation/index.js +6 -0
  114. package/dist/src/services/utils/calculation/index.js.map +1 -1
  115. package/dist/src/services/utils/sol/index.d.ts +6 -0
  116. package/dist/src/services/utils/sol/index.js +6 -0
  117. package/dist/src/services/utils/sol/index.js.map +1 -1
  118. package/dist/src/tokens-info/tokens-info.model.d.ts +24 -0
  119. package/dist/src/tokens-info/tokens-info.model.js.map +1 -1
  120. package/dist/src/utils/calculation/index.d.ts +26 -0
  121. package/dist/src/utils/calculation/index.js +26 -0
  122. package/dist/src/utils/calculation/index.js.map +1 -1
  123. package/dist/src/utils/calculation/swap-and-bridge-details.d.ts +9 -0
  124. package/dist/src/utils/calculation/swap-and-bridge-details.js +3 -0
  125. package/dist/src/utils/calculation/swap-and-bridge-details.js.map +1 -1
  126. package/dist/src/utils/calculation/swap-and-bridge-fee-calc.d.ts +18 -0
  127. package/dist/src/utils/calculation/swap-and-bridge-fee-calc.js +6 -0
  128. package/dist/src/utils/calculation/swap-and-bridge-fee-calc.js.map +1 -1
  129. package/dist/src/utils/utils.d.ts +3 -0
  130. package/dist/src/utils/utils.js +3 -0
  131. package/dist/src/utils/utils.js.map +1 -1
  132. package/dist/src/version.d.ts +1 -1
  133. package/dist/src/version.js +1 -1
  134. package/dist/src/version.js.map +1 -1
  135. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/calculation/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Big, BigSource } from \"big.js\";\nimport BN from \"bn.js\";\nimport { InsufficientPoolLiquidityError } from \"../../exceptions\";\nimport { PoolInfo, Token } from \"../../tokens-info\";\nimport { SYSTEM_PRECISION } from \"./constants\";\n\nexport function getFeePercent(input: BigSource, output: BigSource): number {\n return Big(100).minus(Big(100).times(output).div(input)).toNumber();\n}\n\nexport function toSystemPrecision(amount: BigSource, decimals: number): Big {\n return convertAmountPrecision(amount, decimals, SYSTEM_PRECISION).round(0, Big.roundDown);\n}\n\nexport function fromSystemPrecision(amount: BigSource, decimals: number): Big {\n return convertAmountPrecision(amount, SYSTEM_PRECISION, decimals);\n}\n\nexport function convertAmountPrecision(amount: BigSource, decimalsFrom: number, decimalsTo: number): Big {\n const dif = Big(decimalsTo).minus(decimalsFrom).toNumber();\n return Big(amount).times(toPowBase10(dif));\n}\n\nexport function toPowBase10(decimals: number): Big {\n return Big(10).pow(decimals);\n}\n\nexport function convertFloatAmountToInt(amountFloat: BigSource, decimals: number): Big {\n return Big(amountFloat).times(toPowBase10(decimals));\n}\n\nexport function convertIntAmountToFloat(amountInt: BigSource, decimals: number): Big {\n const amountValue = Big(amountInt);\n if (amountValue.eq(0)) {\n return Big(0);\n }\n return Big(amountValue).div(toPowBase10(decimals));\n}\n\nexport function calculatePoolInfoImbalance(poolInfo: Pick<PoolInfo, \"tokenBalance\" | \"vUsdBalance\">): string {\n return convertIntAmountToFloat(Big(poolInfo.tokenBalance).minus(poolInfo.vUsdBalance).toFixed(), SYSTEM_PRECISION)\n .div(2)\n .toFixed();\n}\n\nexport function swapToVUsd(\n amount: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: Omit<PoolInfo, \"p\" | \"imbalance\">\n): string {\n const amountValue = Big(amount);\n if (amountValue.lte(0)) {\n return \"0\";\n }\n const fee = amountValue.times(feeShare);\n const amountWithoutFee = amountValue.minus(fee);\n const inSystemPrecision = toSystemPrecision(amountWithoutFee, decimals);\n const tokenBalance = Big(poolInfo.tokenBalance).plus(inSystemPrecision);\n const vUsdNewAmount = getY(tokenBalance, poolInfo.aValue, poolInfo.dValue);\n return Big(poolInfo.vUsdBalance).minus(vUsdNewAmount).round(0, Big.roundDown).toFixed();\n}\n\nexport function swapFromVUsd(\n amount: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: Pick<PoolInfo, \"vUsdBalance\" | \"aValue\" | \"dValue\" | \"tokenBalance\">\n): string {\n const amountValue = Big(amount);\n if (amountValue.lte(0)) {\n return Big(0).toFixed();\n }\n const vUsdBalance = amountValue.plus(poolInfo.vUsdBalance);\n const newAmount = getY(vUsdBalance, poolInfo.aValue, poolInfo.dValue);\n const result = fromSystemPrecision(Big(poolInfo.tokenBalance).minus(newAmount), decimals);\n const fee = Big(result).times(feeShare);\n return Big(result).minus(fee).round(0, Big.roundDown).toFixed();\n}\n\nexport function getSwapFromVUsdPoolInfo(\n vUsdAmount: BigSource,\n poolInfo: Omit<PoolInfo, \"imbalance\">\n): Pick<PoolInfo, \"vUsdBalance\" | \"aValue\" | \"dValue\" | \"tokenBalance\"> {\n const amountValue = Big(vUsdAmount);\n if (amountValue.lte(0)) {\n return poolInfo;\n }\n const vUsdBalance = amountValue.plus(poolInfo.vUsdBalance);\n const newAmount = getY(vUsdBalance, poolInfo.aValue, poolInfo.dValue);\n return {\n aValue: poolInfo.aValue,\n dValue: poolInfo.dValue,\n tokenBalance: newAmount.toFixed(0),\n vUsdBalance: vUsdBalance.toFixed(0),\n };\n}\n\n/**\n * @param amount - vUsd amount should be received\n * @param feeShare\n * @param decimals\n * @param poolInfo\n */\nexport function swapToVUsdReverse(\n amount: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: Omit<PoolInfo, \"imbalance\">\n): Big {\n if (Big(amount).lte(0)) {\n return Big(0);\n }\n const vUsdNewAmount = Big(poolInfo.vUsdBalance).minus(amount);\n if (vUsdNewAmount.lte(0)) {\n throw new InsufficientPoolLiquidityError();\n }\n const tokenBalance = getY(vUsdNewAmount, poolInfo.aValue, poolInfo.dValue);\n const inSystemPrecision = Big(tokenBalance).minus(poolInfo.tokenBalance);\n const amountWithoutFee = fromSystemPrecision(inSystemPrecision, decimals);\n const reversedFeeShare = Big(feeShare).div(Big(1).minus(feeShare));\n const fee = Big(amountWithoutFee).times(reversedFeeShare).round(0, Big.roundUp);\n return Big(amountWithoutFee).plus(fee).round(0, Big.roundDown);\n}\n\n/**\n * @param amount - amount should be received\n * @param feeShare\n * @param decimals\n * @param poolInfo\n */\nexport function swapFromVUsdReverse(\n amount: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: Omit<PoolInfo, \"imbalance\">\n): Big {\n if (Big(amount).lte(0)) {\n return Big(0);\n }\n const reversedFeeShare = Big(feeShare).div(Big(1).minus(feeShare));\n const fee = Big(amount).times(reversedFeeShare).round(0, Big.roundUp);\n const amountWithFee = Big(amount).plus(fee);\n const inSystemPrecision = toSystemPrecision(amountWithFee, decimals);\n const tokenBalance = Big(poolInfo.tokenBalance).minus(inSystemPrecision);\n if (tokenBalance.lte(0)) {\n throw new InsufficientPoolLiquidityError();\n }\n const vUsdNewAmount = getY(tokenBalance, poolInfo.aValue, poolInfo.dValue);\n return Big(vUsdNewAmount).minus(poolInfo.vUsdBalance).round(0, Big.roundDown);\n}\n\n// y = (sqrt(x(4ad³ + x (4a(d - x) - d )²)) + x (4a(d - x) - d ))/8ax\n// commonPart = 4a(d - x) - d\n// sqrt = sqrt(x * (4ad³ + x * commonPart²)\n// y = (sqrt + x * commonPart) / divider\nexport function getY(x: BigSource, a: BigSource, d: BigSource): Big {\n const commonPartBig = Big(4).times(a).times(Big(d).minus(x)).minus(d);\n const dCubed = Big(d).pow(3);\n const commonPartSquared = commonPartBig.pow(2);\n const sqrtBig = Big(x)\n .times(Big(x).times(commonPartSquared).plus(Big(4).times(a).times(dCubed)))\n .sqrt()\n .round(0, Big.roundDown);\n const dividerBig = Big(8).times(a).times(x);\n const result = commonPartBig.times(x).plus(sqrtBig).div(dividerBig).round(0, Big.roundDown);\n if (result.eq(0)) {\n return Big(0);\n }\n return result.plus(1); // +1 to offset rounding errors\n}\n\nexport function getEarned(userLpAmount: string, userRewardDebt: string, accRewardPerShareP: string, p: number): string {\n const userLpAmountBN = new BN(userLpAmount);\n const accRewardPerSharePBN = new BN(accRewardPerShareP);\n const userRewardDebtBN = new BN(userRewardDebt);\n const rewards = userLpAmountBN.mul(accRewardPerSharePBN).shrn(p);\n return rewards.sub(userRewardDebtBN).toString();\n}\n\nexport function aprInPercents(apr: string): string {\n return Big(apr).gt(0) ? `${Number(Big(apr).times(100).toFixed(2)).toLocaleString()}%` : \"N/A\";\n}\n\n// a = 8Axy(x+y)\n// b = xy(16A - 4) / 3\n// c = sqrt(a² + b³)\n// D = cbrt(a + c) + cbrt(a - c)\nexport function getD(aValue: string, x: string, y: string): string {\n const xy = Big(x).times(y);\n const xPlusY = Big(x).plus(y);\n const a = Big(8).times(aValue).times(xy).times(xPlusY);\n const b = xy.times(Big(16).times(aValue).minus(4)).div(3);\n const aSquared = a.times(a);\n const bCubed = b.times(b).times(b);\n const a2b3 = aSquared.plus(bCubed);\n const c = Big(a2b3).sqrt();\n const cbrtAPlusC = Big(Math.cbrt(+a.plus(c).toFixed()));\n const cbrtAMinusC = Big(Math.cbrt(+a.minus(c).toFixed()));\n return cbrtAPlusC.plus(cbrtAMinusC).toFixed();\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/calculation/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Big, BigSource } from \"big.js\";\nimport BN from \"bn.js\";\nimport { InsufficientPoolLiquidityError } from \"../../exceptions\";\nimport { PoolInfo, Token } from \"../../tokens-info\";\nimport { SYSTEM_PRECISION } from \"./constants\";\n\nexport function getFeePercent(input: BigSource, output: BigSource): number {\n return Big(100).minus(Big(100).times(output).div(input)).toNumber();\n}\n\nexport function toSystemPrecision(amount: BigSource, decimals: number): Big {\n return convertAmountPrecision(amount, decimals, SYSTEM_PRECISION).round(0, Big.roundDown);\n}\n\nexport function fromSystemPrecision(amount: BigSource, decimals: number): Big {\n return convertAmountPrecision(amount, SYSTEM_PRECISION, decimals);\n}\n\nexport function convertAmountPrecision(amount: BigSource, decimalsFrom: number, decimalsTo: number): Big {\n const dif = Big(decimalsTo).minus(decimalsFrom).toNumber();\n return Big(amount).times(toPowBase10(dif));\n}\n\nexport function toPowBase10(decimals: number): Big {\n return Big(10).pow(decimals);\n}\n\nexport function convertFloatAmountToInt(amountFloat: BigSource, decimals: number): Big {\n return Big(amountFloat).times(toPowBase10(decimals));\n}\n\nexport function convertIntAmountToFloat(amountInt: BigSource, decimals: number): Big {\n const amountValue = Big(amountInt);\n if (amountValue.eq(0)) {\n return Big(0);\n }\n return Big(amountValue).div(toPowBase10(decimals));\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function calculatePoolInfoImbalance(poolInfo: Pick<PoolInfo, \"tokenBalance\" | \"vUsdBalance\">): string {\n return convertIntAmountToFloat(Big(poolInfo.tokenBalance).minus(poolInfo.vUsdBalance).toFixed(), SYSTEM_PRECISION)\n .div(2)\n .toFixed();\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function swapToVUsd(\n amount: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: Omit<PoolInfo, \"p\" | \"imbalance\">\n): string {\n const amountValue = Big(amount);\n if (amountValue.lte(0)) {\n return \"0\";\n }\n const fee = amountValue.times(feeShare);\n const amountWithoutFee = amountValue.minus(fee);\n const inSystemPrecision = toSystemPrecision(amountWithoutFee, decimals);\n const tokenBalance = Big(poolInfo.tokenBalance).plus(inSystemPrecision);\n const vUsdNewAmount = getY(tokenBalance, poolInfo.aValue, poolInfo.dValue);\n return Big(poolInfo.vUsdBalance).minus(vUsdNewAmount).round(0, Big.roundDown).toFixed();\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function swapFromVUsd(\n amount: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: Pick<PoolInfo, \"vUsdBalance\" | \"aValue\" | \"dValue\" | \"tokenBalance\">\n): string {\n const amountValue = Big(amount);\n if (amountValue.lte(0)) {\n return Big(0).toFixed();\n }\n const vUsdBalance = amountValue.plus(poolInfo.vUsdBalance);\n const newAmount = getY(vUsdBalance, poolInfo.aValue, poolInfo.dValue);\n const result = fromSystemPrecision(Big(poolInfo.tokenBalance).minus(newAmount), decimals);\n const fee = Big(result).times(feeShare);\n return Big(result).minus(fee).round(0, Big.roundDown).toFixed();\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function getSwapFromVUsdPoolInfo(\n vUsdAmount: BigSource,\n poolInfo: Omit<PoolInfo, \"imbalance\">\n): Pick<PoolInfo, \"vUsdBalance\" | \"aValue\" | \"dValue\" | \"tokenBalance\"> {\n const amountValue = Big(vUsdAmount);\n if (amountValue.lte(0)) {\n return poolInfo;\n }\n const vUsdBalance = amountValue.plus(poolInfo.vUsdBalance);\n const newAmount = getY(vUsdBalance, poolInfo.aValue, poolInfo.dValue);\n return {\n aValue: poolInfo.aValue,\n dValue: poolInfo.dValue,\n tokenBalance: newAmount.toFixed(0),\n vUsdBalance: vUsdBalance.toFixed(0),\n };\n}\n\n/**\n * @deprecated Do not use.\n * @param amount - vUsd amount should be received\n * @param feeShare\n * @param decimals\n * @param poolInfo\n */\nexport function swapToVUsdReverse(\n amount: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: Omit<PoolInfo, \"imbalance\">\n): Big {\n if (Big(amount).lte(0)) {\n return Big(0);\n }\n const vUsdNewAmount = Big(poolInfo.vUsdBalance).minus(amount);\n if (vUsdNewAmount.lte(0)) {\n throw new InsufficientPoolLiquidityError();\n }\n const tokenBalance = getY(vUsdNewAmount, poolInfo.aValue, poolInfo.dValue);\n const inSystemPrecision = Big(tokenBalance).minus(poolInfo.tokenBalance);\n const amountWithoutFee = fromSystemPrecision(inSystemPrecision, decimals);\n const reversedFeeShare = Big(feeShare).div(Big(1).minus(feeShare));\n const fee = Big(amountWithoutFee).times(reversedFeeShare).round(0, Big.roundUp);\n return Big(amountWithoutFee).plus(fee).round(0, Big.roundDown);\n}\n\n/**\n * @deprecated Do not use.\n * @param amount - amount should be received\n * @param feeShare\n * @param decimals\n * @param poolInfo\n */\nexport function swapFromVUsdReverse(\n amount: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: Omit<PoolInfo, \"imbalance\">\n): Big {\n if (Big(amount).lte(0)) {\n return Big(0);\n }\n const reversedFeeShare = Big(feeShare).div(Big(1).minus(feeShare));\n const fee = Big(amount).times(reversedFeeShare).round(0, Big.roundUp);\n const amountWithFee = Big(amount).plus(fee);\n const inSystemPrecision = toSystemPrecision(amountWithFee, decimals);\n const tokenBalance = Big(poolInfo.tokenBalance).minus(inSystemPrecision);\n if (tokenBalance.lte(0)) {\n throw new InsufficientPoolLiquidityError();\n }\n const vUsdNewAmount = getY(tokenBalance, poolInfo.aValue, poolInfo.dValue);\n return Big(vUsdNewAmount).minus(poolInfo.vUsdBalance).round(0, Big.roundDown);\n}\n\n// y = (sqrt(x(4ad³ + x (4a(d - x) - d )²)) + x (4a(d - x) - d ))/8ax\n// commonPart = 4a(d - x) - d\n// sqrt = sqrt(x * (4ad³ + x * commonPart²)\n// y = (sqrt + x * commonPart) / divider\n/**\n * @deprecated Do not use.\n */\nexport function getY(x: BigSource, a: BigSource, d: BigSource): Big {\n const commonPartBig = Big(4).times(a).times(Big(d).minus(x)).minus(d);\n const dCubed = Big(d).pow(3);\n const commonPartSquared = commonPartBig.pow(2);\n const sqrtBig = Big(x)\n .times(Big(x).times(commonPartSquared).plus(Big(4).times(a).times(dCubed)))\n .sqrt()\n .round(0, Big.roundDown);\n const dividerBig = Big(8).times(a).times(x);\n const result = commonPartBig.times(x).plus(sqrtBig).div(dividerBig).round(0, Big.roundDown);\n if (result.eq(0)) {\n return Big(0);\n }\n return result.plus(1); // +1 to offset rounding errors\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function getEarned(userLpAmount: string, userRewardDebt: string, accRewardPerShareP: string, p: number): string {\n const userLpAmountBN = new BN(userLpAmount);\n const accRewardPerSharePBN = new BN(accRewardPerShareP);\n const userRewardDebtBN = new BN(userRewardDebt);\n const rewards = userLpAmountBN.mul(accRewardPerSharePBN).shrn(p);\n return rewards.sub(userRewardDebtBN).toString();\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function aprInPercents(apr: string): string {\n return Big(apr).gt(0) ? `${Number(Big(apr).times(100).toFixed(2)).toLocaleString()}%` : \"N/A\";\n}\n\n// a = 8Axy(x+y)\n// b = xy(16A - 4) / 3\n// c = sqrt(a² + b³)\n// D = cbrt(a + c) + cbrt(a - c)\n/**\n * @deprecated Do not use.\n */\nexport function getD(aValue: string, x: string, y: string): string {\n const xy = Big(x).times(y);\n const xPlusY = Big(x).plus(y);\n const a = Big(8).times(aValue).times(xy).times(xPlusY);\n const b = xy.times(Big(16).times(aValue).minus(4)).div(3);\n const aSquared = a.times(a);\n const bCubed = b.times(b).times(b);\n const a2b3 = aSquared.plus(bCubed);\n const c = Big(a2b3).sqrt();\n const cbrtAPlusC = Big(Math.cbrt(+a.plus(c).toFixed()));\n const cbrtAMinusC = Big(Math.cbrt(+a.minus(c).toFixed()));\n return cbrtAPlusC.plus(cbrtAMinusC).toFixed();\n}\n"]}
@@ -1,10 +1,19 @@
1
1
  import { PoolInfo, TokenWithChainDetails } from "../../tokens-info";
2
+ /**
3
+ * @deprecated Do not use.
4
+ */
2
5
  export interface SendAmountDetails {
3
6
  sourceLPSwap: AmountImpact;
4
7
  destLPSwap: AmountImpact;
5
8
  }
9
+ /**
10
+ * @deprecated Do not use.
11
+ */
6
12
  export interface AmountImpact {
7
13
  fee: string;
8
14
  swap: string;
9
15
  }
16
+ /**
17
+ * @deprecated Do not use.
18
+ */
10
19
  export declare function getSendAmountDetails(amountInTokenPrecision: string, sourceToken: TokenWithChainDetails, sourcePool: PoolInfo, destToken: TokenWithChainDetails, destPool: PoolInfo): SendAmountDetails;
@@ -1,5 +1,8 @@
1
1
  import { Big } from "big.js";
2
2
  import { convertIntAmountToFloat, fromSystemPrecision, swapFromVUsd, swapToVUsd } from "./index";
3
+ /**
4
+ * @deprecated Do not use.
5
+ */
3
6
  export function getSendAmountDetails(amountInTokenPrecision, sourceToken, sourcePool, destToken, destPool) {
4
7
  const vUsd = swapToVUsd(amountInTokenPrecision, sourceToken, sourcePool);
5
8
  const vUsdInTokenPrecision = fromSystemPrecision(vUsd, sourceToken.decimals);
@@ -1 +1 @@
1
- {"version":3,"file":"swap-and-bridge-details.js","sourceRoot":"","sources":["../../../../src/utils/calculation/swap-and-bridge-details.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAYjG,MAAM,UAAU,oBAAoB,CAClC,sBAA8B,EAC9B,WAAkC,EAClC,UAAoB,EACpB,SAAgC,EAChC,QAAkB;IAElB,MAAM,IAAI,GAAG,UAAU,CAAC,sBAAsB,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACzE,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7E,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvF,OAAO;QACL,YAAY,EAAE;YACZ,GAAG,EAAE,uBAAuB,CAAC,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC;iBAC7D,GAAG,EAAE;iBACL,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;iBACxC,OAAO,EAAE;YACZ,IAAI,EAAE,uBAAuB,CAC3B,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,EAC3E,WAAW,CAAC,QAAQ,CACrB;iBACE,GAAG,EAAE;iBACL,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;iBACxC,OAAO,EAAE;SACb;QACD,UAAU,EAAE;YACV,GAAG,EAAE,uBAAuB,CAAC,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC;iBAC7D,GAAG,EAAE;iBACL,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;iBACtC,OAAO,EAAE;YACZ,IAAI,EAAE,uBAAuB,CAC3B,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,EACjF,SAAS,CAAC,QAAQ,CACnB;iBACE,GAAG,EAAE;iBACL,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;iBACtC,OAAO,EAAE;SACb;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { Big } from \"big.js\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../tokens-info\";\nimport { convertIntAmountToFloat, fromSystemPrecision, swapFromVUsd, swapToVUsd } from \"./index\";\n\nexport interface SendAmountDetails {\n sourceLPSwap: AmountImpact;\n destLPSwap: AmountImpact;\n}\n\nexport interface AmountImpact {\n fee: string;\n swap: string;\n}\n\nexport function getSendAmountDetails(\n amountInTokenPrecision: string,\n sourceToken: TokenWithChainDetails,\n sourcePool: PoolInfo,\n destToken: TokenWithChainDetails,\n destPool: PoolInfo\n): SendAmountDetails {\n const vUsd = swapToVUsd(amountInTokenPrecision, sourceToken, sourcePool);\n const vUsdInTokenPrecision = fromSystemPrecision(vUsd, sourceToken.decimals);\n const result = swapFromVUsd(vUsd, destToken, destPool);\n\n const swapToFeeInt = Big(amountInTokenPrecision).times(sourceToken.feeShare);\n const swapFromFeeInt = Big(result).div(Big(1).minus(destToken.feeShare)).minus(result);\n return {\n sourceLPSwap: {\n fee: convertIntAmountToFloat(swapToFeeInt, sourceToken.decimals)\n .neg()\n .round(sourceToken.decimals, Big.roundUp)\n .toFixed(),\n swap: convertIntAmountToFloat(\n Big(amountInTokenPrecision).minus(vUsdInTokenPrecision).minus(swapToFeeInt),\n sourceToken.decimals\n )\n .neg()\n .round(sourceToken.decimals, Big.roundUp)\n .toFixed(),\n },\n destLPSwap: {\n fee: convertIntAmountToFloat(swapFromFeeInt, destToken.decimals)\n .neg()\n .round(destToken.decimals, Big.roundUp)\n .toFixed(),\n swap: convertIntAmountToFloat(\n fromSystemPrecision(vUsd, destToken.decimals).minus(result).minus(swapFromFeeInt),\n destToken.decimals\n )\n .neg()\n .round(destToken.decimals, Big.roundUp)\n .toFixed(),\n },\n };\n}\n"]}
1
+ {"version":3,"file":"swap-and-bridge-details.js","sourceRoot":"","sources":["../../../../src/utils/calculation/swap-and-bridge-details.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAkBjG;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,sBAA8B,EAC9B,WAAkC,EAClC,UAAoB,EACpB,SAAgC,EAChC,QAAkB;IAElB,MAAM,IAAI,GAAG,UAAU,CAAC,sBAAsB,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACzE,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7E,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvF,OAAO;QACL,YAAY,EAAE;YACZ,GAAG,EAAE,uBAAuB,CAAC,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC;iBAC7D,GAAG,EAAE;iBACL,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;iBACxC,OAAO,EAAE;YACZ,IAAI,EAAE,uBAAuB,CAC3B,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,EAC3E,WAAW,CAAC,QAAQ,CACrB;iBACE,GAAG,EAAE;iBACL,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;iBACxC,OAAO,EAAE;SACb;QACD,UAAU,EAAE;YACV,GAAG,EAAE,uBAAuB,CAAC,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC;iBAC7D,GAAG,EAAE;iBACL,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;iBACtC,OAAO,EAAE;YACZ,IAAI,EAAE,uBAAuB,CAC3B,mBAAmB,CAAC,IAAI,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,EACjF,SAAS,CAAC,QAAQ,CACnB;iBACE,GAAG,EAAE;iBACL,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;iBACtC,OAAO,EAAE;SACb;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { Big } from \"big.js\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../tokens-info\";\nimport { convertIntAmountToFloat, fromSystemPrecision, swapFromVUsd, swapToVUsd } from \"./index\";\n\n/**\n * @deprecated Do not use.\n */\nexport interface SendAmountDetails {\n sourceLPSwap: AmountImpact;\n destLPSwap: AmountImpact;\n}\n\n/**\n * @deprecated Do not use.\n */\nexport interface AmountImpact {\n fee: string;\n swap: string;\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function getSendAmountDetails(\n amountInTokenPrecision: string,\n sourceToken: TokenWithChainDetails,\n sourcePool: PoolInfo,\n destToken: TokenWithChainDetails,\n destPool: PoolInfo\n): SendAmountDetails {\n const vUsd = swapToVUsd(amountInTokenPrecision, sourceToken, sourcePool);\n const vUsdInTokenPrecision = fromSystemPrecision(vUsd, sourceToken.decimals);\n const result = swapFromVUsd(vUsd, destToken, destPool);\n\n const swapToFeeInt = Big(amountInTokenPrecision).times(sourceToken.feeShare);\n const swapFromFeeInt = Big(result).div(Big(1).minus(destToken.feeShare)).minus(result);\n return {\n sourceLPSwap: {\n fee: convertIntAmountToFloat(swapToFeeInt, sourceToken.decimals)\n .neg()\n .round(sourceToken.decimals, Big.roundUp)\n .toFixed(),\n swap: convertIntAmountToFloat(\n Big(amountInTokenPrecision).minus(vUsdInTokenPrecision).minus(swapToFeeInt),\n sourceToken.decimals\n )\n .neg()\n .round(sourceToken.decimals, Big.roundUp)\n .toFixed(),\n },\n destLPSwap: {\n fee: convertIntAmountToFloat(swapFromFeeInt, destToken.decimals)\n .neg()\n .round(destToken.decimals, Big.roundUp)\n .toFixed(),\n swap: convertIntAmountToFloat(\n fromSystemPrecision(vUsd, destToken.decimals).minus(result).minus(swapFromFeeInt),\n destToken.decimals\n )\n .neg()\n .round(destToken.decimals, Big.roundUp)\n .toFixed(),\n },\n };\n}\n"]}
@@ -1,22 +1,40 @@
1
1
  import { PoolInfo } from "../../tokens-info";
2
+ /**
3
+ * @deprecated Do not use.
4
+ */
2
5
  export interface SwapPoolInfo {
3
6
  decimals: number;
4
7
  feeShare: string;
5
8
  poolInfo: PoolInfo;
6
9
  }
10
+ /**
11
+ * @deprecated Do not use.
12
+ */
7
13
  export interface SwapAndBridgeCalculationData {
8
14
  swapToVUsdCalcResult: SwapToVUsdCalcResult;
9
15
  swapFromVUsdCalcResult: SwapFromVUsdCalcResult;
10
16
  }
17
+ /**
18
+ * @deprecated Do not use.
19
+ */
11
20
  export interface SwapToVUsdCalcResult {
12
21
  bridgeFeeInTokenPrecision: string;
13
22
  amountIncludingCommissionInSystemPrecision: string;
14
23
  amountExcludingCommissionInSystemPrecision: string;
15
24
  }
25
+ /**
26
+ * @deprecated Do not use.
27
+ */
16
28
  export interface SwapFromVUsdCalcResult {
17
29
  bridgeFeeInTokenPrecision: string;
18
30
  amountIncludingCommissionInTokenPrecision: string;
19
31
  amountExcludingCommissionInTokenPrecision: string;
20
32
  }
33
+ /**
34
+ * @deprecated Do not use.
35
+ */
21
36
  export declare function swapAndBridgeFeeCalculation(amountInTokenPrecision: string, sourcePoolInfo: SwapPoolInfo, destinationPoolInfo: SwapPoolInfo): SwapAndBridgeCalculationData;
37
+ /**
38
+ * @deprecated Do not use.
39
+ */
22
40
  export declare function swapAndBridgeFeeCalculationReverse(amountInTokenPrecision: string, sourcePoolInfo: SwapPoolInfo, destinationPoolInfo: SwapPoolInfo): SwapAndBridgeCalculationData;
@@ -1,10 +1,16 @@
1
1
  import { Big } from "big.js";
2
2
  import { fromSystemPrecision, getY, toSystemPrecision } from "./index";
3
+ /**
4
+ * @deprecated Do not use.
5
+ */
3
6
  export function swapAndBridgeFeeCalculation(amountInTokenPrecision, sourcePoolInfo, destinationPoolInfo) {
4
7
  const swapToVUsdCalcResult = swapToVUsd(amountInTokenPrecision, { decimals: sourcePoolInfo.decimals, feeShare: sourcePoolInfo.feeShare }, sourcePoolInfo.poolInfo);
5
8
  const swapFromVUsdCalcResult = swapFromVUsd(swapToVUsdCalcResult.amountIncludingCommissionInSystemPrecision, { decimals: destinationPoolInfo.decimals, feeShare: destinationPoolInfo.feeShare }, destinationPoolInfo.poolInfo);
6
9
  return { swapToVUsdCalcResult, swapFromVUsdCalcResult };
7
10
  }
11
+ /**
12
+ * @deprecated Do not use.
13
+ */
8
14
  export function swapAndBridgeFeeCalculationReverse(amountInTokenPrecision, sourcePoolInfo, destinationPoolInfo) {
9
15
  const swapToVUsdCalcResult = swapToVUsdReverse(amountInTokenPrecision, { decimals: destinationPoolInfo.decimals, feeShare: destinationPoolInfo.feeShare }, destinationPoolInfo.poolInfo);
10
16
  const swapFromVUsdCalcResult = swapFromVUsdReverse(swapToVUsdCalcResult.amountIncludingCommissionInSystemPrecision, { decimals: sourcePoolInfo.decimals, feeShare: sourcePoolInfo.feeShare }, sourcePoolInfo.poolInfo);
@@ -1 +1 @@
1
- {"version":3,"file":"swap-and-bridge-fee-calc.js","sourceRoot":"","sources":["../../../../src/utils/calculation/swap-and-bridge-fee-calc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAa,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAwBvE,MAAM,UAAU,2BAA2B,CACzC,sBAA8B,EAC9B,cAA4B,EAC5B,mBAAiC;IAEjC,MAAM,oBAAoB,GAAG,UAAU,CACrC,sBAAsB,EACtB,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,EACxE,cAAc,CAAC,QAAQ,CACxB,CAAC;IACF,MAAM,sBAAsB,GAAG,YAAY,CACzC,oBAAoB,CAAC,0CAA0C,EAC/D,EAAE,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE,EAClF,mBAAmB,CAAC,QAAQ,CAC7B,CAAC;IACF,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,sBAA8B,EAC9B,cAA4B,EAC5B,mBAAiC;IAEjC,MAAM,oBAAoB,GAAG,iBAAiB,CAC5C,sBAAsB,EACtB,EAAE,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,mBAAmB,CAAC,QAAQ,EAAE,EAClF,mBAAmB,CAAC,QAAQ,CAC7B,CAAC;IACF,MAAM,sBAAsB,GAAG,mBAAmB,CAChD,oBAAoB,CAAC,0CAA0C,EAC/D,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,EACxE,cAAc,CAAC,QAAQ,CACxB,CAAC;IACF,OAAO;QACL,oBAAoB;QACpB,sBAAsB;KACvB,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CACjB,MAAiB,EACjB,EAAE,QAAQ,EAAE,QAAQ,EAAwC,EAC5D,QAA2C;IAE3C,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChD,OAAO;QACL,yBAAyB,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;QAChD,0CAA0C,EAAE,cAAc,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QACnH,0CAA0C,EAAE,cAAc,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;KAC/G,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,uBAA4B,EAAE,QAA2C;IAC/F,IAAI,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC9E,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrF,OAAO,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,YAAY,CACnB,MAAiB,EACjB,EAAE,QAAQ,EAAE,QAAQ,EAAwC,EAC5D,QAAqC;IAErC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,yBAAyB,EAAE,GAAG;YAC9B,yCAAyC,EAAE,GAAG;YAC9C,yCAAyC,EAAE,GAAG;SAC/C,CAAC;IACJ,CAAC;IACD,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC1F,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IACxD,OAAO;QACL,yBAAyB,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;QAChD,yCAAyC,EAAE,gBAAgB,CAAC,OAAO,EAAE;QACrE,yCAAyC,EAAE,MAAM,CAAC,OAAO,EAAE;KAC5D,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,sBAAiC,EACjC,EAAE,QAAQ,EAAE,QAAQ,EAAwC,EAC5D,QAAkB;IAElB,MAAM,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnE,MAAM,GAAG,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChE,MAAM,aAAa,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,OAAO;QACL,yBAAyB,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;QAChD,0CAA0C,EAAE,qBAAqB,CAC/D,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,EAC1C,QAAQ,CACT;QACD,0CAA0C,EAAE,qBAAqB,CAC/D,iBAAiB,CAAC,sBAAsB,EAAE,QAAQ,CAAC,EACnD,QAAQ,CACT;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,uBAA4B,EAAE,QAAkB;IAC7E,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC/E,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrF,OAAO,GAAG,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,mBAAmB,CAC1B,uBAAkC,EAClC,EAAE,QAAQ,EAAE,QAAQ,EAAwC,EAC5D,QAAkB;IAElB,IAAI,GAAG,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO;YACL,yBAAyB,EAAE,GAAG;YAC9B,yCAAyC,EAAE,GAAG;YAC9C,yCAAyC,EAAE,GAAG;SAC/C,CAAC;IACJ,CAAC;IACD,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC/E,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrF,MAAM,iBAAiB,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACzE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpF,MAAM,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnE,MAAM,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO;QACL,yBAAyB,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;QAChD,yCAAyC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE;QACnE,yCAAyC,EAAE,gBAAgB,CAAC,OAAO,EAAE;KACtE,CAAC;AACJ,CAAC","sourcesContent":["import { Big, BigSource } from \"big.js\";\nimport { PoolInfo, Token } from \"../../tokens-info\";\nimport { fromSystemPrecision, getY, toSystemPrecision } from \"./index\";\n\nexport interface SwapPoolInfo {\n decimals: number;\n feeShare: string;\n poolInfo: PoolInfo;\n}\n\nexport interface SwapAndBridgeCalculationData {\n swapToVUsdCalcResult: SwapToVUsdCalcResult;\n swapFromVUsdCalcResult: SwapFromVUsdCalcResult;\n}\n\nexport interface SwapToVUsdCalcResult {\n bridgeFeeInTokenPrecision: string;\n amountIncludingCommissionInSystemPrecision: string;\n amountExcludingCommissionInSystemPrecision: string;\n}\nexport interface SwapFromVUsdCalcResult {\n bridgeFeeInTokenPrecision: string;\n amountIncludingCommissionInTokenPrecision: string;\n amountExcludingCommissionInTokenPrecision: string;\n}\n\nexport function swapAndBridgeFeeCalculation(\n amountInTokenPrecision: string,\n sourcePoolInfo: SwapPoolInfo,\n destinationPoolInfo: SwapPoolInfo\n): SwapAndBridgeCalculationData {\n const swapToVUsdCalcResult = swapToVUsd(\n amountInTokenPrecision,\n { decimals: sourcePoolInfo.decimals, feeShare: sourcePoolInfo.feeShare },\n sourcePoolInfo.poolInfo\n );\n const swapFromVUsdCalcResult = swapFromVUsd(\n swapToVUsdCalcResult.amountIncludingCommissionInSystemPrecision,\n { decimals: destinationPoolInfo.decimals, feeShare: destinationPoolInfo.feeShare },\n destinationPoolInfo.poolInfo\n );\n return { swapToVUsdCalcResult, swapFromVUsdCalcResult };\n}\n\nexport function swapAndBridgeFeeCalculationReverse(\n amountInTokenPrecision: string,\n sourcePoolInfo: SwapPoolInfo,\n destinationPoolInfo: SwapPoolInfo\n): SwapAndBridgeCalculationData {\n const swapToVUsdCalcResult = swapToVUsdReverse(\n amountInTokenPrecision,\n { decimals: destinationPoolInfo.decimals, feeShare: destinationPoolInfo.feeShare },\n destinationPoolInfo.poolInfo\n );\n const swapFromVUsdCalcResult = swapFromVUsdReverse(\n swapToVUsdCalcResult.amountIncludingCommissionInSystemPrecision,\n { decimals: sourcePoolInfo.decimals, feeShare: sourcePoolInfo.feeShare },\n sourcePoolInfo.poolInfo\n );\n return {\n swapToVUsdCalcResult,\n swapFromVUsdCalcResult,\n };\n}\n\nfunction swapToVUsd(\n amount: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: Omit<PoolInfo, \"p\" | \"imbalance\">\n): SwapToVUsdCalcResult {\n const amountValue = Big(amount);\n const fee = amountValue.times(feeShare);\n const amountWithoutFee = amountValue.minus(fee);\n return {\n bridgeFeeInTokenPrecision: fee.round().toFixed(),\n amountIncludingCommissionInSystemPrecision: calcSwapToVUsd(toSystemPrecision(amountWithoutFee, decimals), poolInfo),\n amountExcludingCommissionInSystemPrecision: calcSwapToVUsd(toSystemPrecision(amountValue, decimals), poolInfo),\n };\n}\n\nfunction calcSwapToVUsd(amountInSystemPrecision: Big, poolInfo: Omit<PoolInfo, \"p\" | \"imbalance\">): string {\n if (amountInSystemPrecision.eq(0)) {\n return \"0\";\n }\n const tokenBalance = Big(poolInfo.tokenBalance).plus(amountInSystemPrecision);\n const vUsdNewAmount = getY(tokenBalance.toFixed(), poolInfo.aValue, poolInfo.dValue);\n return Big(poolInfo.vUsdBalance).minus(vUsdNewAmount).round().toFixed();\n}\n\nfunction swapFromVUsd(\n amount: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: Omit<PoolInfo, \"imbalance\">\n): SwapFromVUsdCalcResult {\n if (Big(amount).eq(0)) {\n return {\n bridgeFeeInTokenPrecision: \"0\",\n amountIncludingCommissionInTokenPrecision: \"0\",\n amountExcludingCommissionInTokenPrecision: \"0\",\n };\n }\n const amountValue = Big(amount);\n const vUsdBalance = amountValue.plus(poolInfo.vUsdBalance);\n const newAmount = getY(vUsdBalance, poolInfo.aValue, poolInfo.dValue);\n const result = fromSystemPrecision(Big(poolInfo.tokenBalance).minus(newAmount), decimals);\n const fee = Big(result).times(feeShare);\n const resultWithoutFee = Big(result).minus(fee).round();\n return {\n bridgeFeeInTokenPrecision: fee.round().toFixed(),\n amountIncludingCommissionInTokenPrecision: resultWithoutFee.toFixed(),\n amountExcludingCommissionInTokenPrecision: result.toFixed(),\n };\n}\n\nfunction swapToVUsdReverse(\n amountInTokenPrecision: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: PoolInfo\n): SwapToVUsdCalcResult {\n const reversedFeeShare = Big(feeShare).div(Big(1).minus(feeShare));\n const fee = Big(amountInTokenPrecision).times(reversedFeeShare);\n const amountWithFee = Big(amountInTokenPrecision).plus(fee);\n return {\n bridgeFeeInTokenPrecision: fee.round().toFixed(),\n amountIncludingCommissionInSystemPrecision: calcSwapToVUsdReverse(\n toSystemPrecision(amountWithFee, decimals),\n poolInfo\n ),\n amountExcludingCommissionInSystemPrecision: calcSwapToVUsdReverse(\n toSystemPrecision(amountInTokenPrecision, decimals),\n poolInfo\n ),\n };\n}\n\nfunction calcSwapToVUsdReverse(amountInSystemPrecision: Big, poolInfo: PoolInfo): string {\n const tokenBalance = Big(poolInfo.tokenBalance).minus(amountInSystemPrecision);\n const vUsdNewAmount = getY(tokenBalance.toFixed(), poolInfo.aValue, poolInfo.dValue);\n return Big(vUsdNewAmount).minus(poolInfo.vUsdBalance).round().toFixed();\n}\n\nfunction swapFromVUsdReverse(\n amountInSystemPrecision: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: PoolInfo\n): SwapFromVUsdCalcResult {\n if (Big(amountInSystemPrecision).eq(0)) {\n return {\n bridgeFeeInTokenPrecision: \"0\",\n amountIncludingCommissionInTokenPrecision: \"0\",\n amountExcludingCommissionInTokenPrecision: \"0\",\n };\n }\n const vUsdNewAmount = Big(poolInfo.vUsdBalance).minus(amountInSystemPrecision);\n const tokenBalance = getY(vUsdNewAmount.toFixed(), poolInfo.aValue, poolInfo.dValue);\n const inSystemPrecision = Big(tokenBalance).minus(poolInfo.tokenBalance);\n const amountWithoutFee = fromSystemPrecision(inSystemPrecision.toFixed(), decimals);\n const reversedFeeShare = Big(feeShare).div(Big(1).minus(feeShare));\n const fee = Big(amountWithoutFee).times(reversedFeeShare);\n const amount = Big(amountWithoutFee).plus(fee);\n return {\n bridgeFeeInTokenPrecision: fee.round().toFixed(),\n amountIncludingCommissionInTokenPrecision: amount.round().toFixed(),\n amountExcludingCommissionInTokenPrecision: amountWithoutFee.toFixed(),\n };\n}\n"]}
1
+ {"version":3,"file":"swap-and-bridge-fee-calc.js","sourceRoot":"","sources":["../../../../src/utils/calculation/swap-and-bridge-fee-calc.ts"],"names":[],"mappings":"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","sourcesContent":["import { Big, BigSource } from \"big.js\";\nimport { PoolInfo, Token } from \"../../tokens-info\";\nimport { fromSystemPrecision, getY, toSystemPrecision } from \"./index\";\n\n/**\n * @deprecated Do not use.\n */\nexport interface SwapPoolInfo {\n decimals: number;\n feeShare: string;\n poolInfo: PoolInfo;\n}\n\n/**\n * @deprecated Do not use.\n */\nexport interface SwapAndBridgeCalculationData {\n swapToVUsdCalcResult: SwapToVUsdCalcResult;\n swapFromVUsdCalcResult: SwapFromVUsdCalcResult;\n}\n\n/**\n * @deprecated Do not use.\n */\nexport interface SwapToVUsdCalcResult {\n bridgeFeeInTokenPrecision: string;\n amountIncludingCommissionInSystemPrecision: string;\n amountExcludingCommissionInSystemPrecision: string;\n}\n/**\n * @deprecated Do not use.\n */\nexport interface SwapFromVUsdCalcResult {\n bridgeFeeInTokenPrecision: string;\n amountIncludingCommissionInTokenPrecision: string;\n amountExcludingCommissionInTokenPrecision: string;\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function swapAndBridgeFeeCalculation(\n amountInTokenPrecision: string,\n sourcePoolInfo: SwapPoolInfo,\n destinationPoolInfo: SwapPoolInfo\n): SwapAndBridgeCalculationData {\n const swapToVUsdCalcResult = swapToVUsd(\n amountInTokenPrecision,\n { decimals: sourcePoolInfo.decimals, feeShare: sourcePoolInfo.feeShare },\n sourcePoolInfo.poolInfo\n );\n const swapFromVUsdCalcResult = swapFromVUsd(\n swapToVUsdCalcResult.amountIncludingCommissionInSystemPrecision,\n { decimals: destinationPoolInfo.decimals, feeShare: destinationPoolInfo.feeShare },\n destinationPoolInfo.poolInfo\n );\n return { swapToVUsdCalcResult, swapFromVUsdCalcResult };\n}\n\n/**\n * @deprecated Do not use.\n */\nexport function swapAndBridgeFeeCalculationReverse(\n amountInTokenPrecision: string,\n sourcePoolInfo: SwapPoolInfo,\n destinationPoolInfo: SwapPoolInfo\n): SwapAndBridgeCalculationData {\n const swapToVUsdCalcResult = swapToVUsdReverse(\n amountInTokenPrecision,\n { decimals: destinationPoolInfo.decimals, feeShare: destinationPoolInfo.feeShare },\n destinationPoolInfo.poolInfo\n );\n const swapFromVUsdCalcResult = swapFromVUsdReverse(\n swapToVUsdCalcResult.amountIncludingCommissionInSystemPrecision,\n { decimals: sourcePoolInfo.decimals, feeShare: sourcePoolInfo.feeShare },\n sourcePoolInfo.poolInfo\n );\n return {\n swapToVUsdCalcResult,\n swapFromVUsdCalcResult,\n };\n}\n\nfunction swapToVUsd(\n amount: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: Omit<PoolInfo, \"p\" | \"imbalance\">\n): SwapToVUsdCalcResult {\n const amountValue = Big(amount);\n const fee = amountValue.times(feeShare);\n const amountWithoutFee = amountValue.minus(fee);\n return {\n bridgeFeeInTokenPrecision: fee.round().toFixed(),\n amountIncludingCommissionInSystemPrecision: calcSwapToVUsd(toSystemPrecision(amountWithoutFee, decimals), poolInfo),\n amountExcludingCommissionInSystemPrecision: calcSwapToVUsd(toSystemPrecision(amountValue, decimals), poolInfo),\n };\n}\n\nfunction calcSwapToVUsd(amountInSystemPrecision: Big, poolInfo: Omit<PoolInfo, \"p\" | \"imbalance\">): string {\n if (amountInSystemPrecision.eq(0)) {\n return \"0\";\n }\n const tokenBalance = Big(poolInfo.tokenBalance).plus(amountInSystemPrecision);\n const vUsdNewAmount = getY(tokenBalance.toFixed(), poolInfo.aValue, poolInfo.dValue);\n return Big(poolInfo.vUsdBalance).minus(vUsdNewAmount).round().toFixed();\n}\n\nfunction swapFromVUsd(\n amount: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: Omit<PoolInfo, \"imbalance\">\n): SwapFromVUsdCalcResult {\n if (Big(amount).eq(0)) {\n return {\n bridgeFeeInTokenPrecision: \"0\",\n amountIncludingCommissionInTokenPrecision: \"0\",\n amountExcludingCommissionInTokenPrecision: \"0\",\n };\n }\n const amountValue = Big(amount);\n const vUsdBalance = amountValue.plus(poolInfo.vUsdBalance);\n const newAmount = getY(vUsdBalance, poolInfo.aValue, poolInfo.dValue);\n const result = fromSystemPrecision(Big(poolInfo.tokenBalance).minus(newAmount), decimals);\n const fee = Big(result).times(feeShare);\n const resultWithoutFee = Big(result).minus(fee).round();\n return {\n bridgeFeeInTokenPrecision: fee.round().toFixed(),\n amountIncludingCommissionInTokenPrecision: resultWithoutFee.toFixed(),\n amountExcludingCommissionInTokenPrecision: result.toFixed(),\n };\n}\n\nfunction swapToVUsdReverse(\n amountInTokenPrecision: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: PoolInfo\n): SwapToVUsdCalcResult {\n const reversedFeeShare = Big(feeShare).div(Big(1).minus(feeShare));\n const fee = Big(amountInTokenPrecision).times(reversedFeeShare);\n const amountWithFee = Big(amountInTokenPrecision).plus(fee);\n return {\n bridgeFeeInTokenPrecision: fee.round().toFixed(),\n amountIncludingCommissionInSystemPrecision: calcSwapToVUsdReverse(\n toSystemPrecision(amountWithFee, decimals),\n poolInfo\n ),\n amountExcludingCommissionInSystemPrecision: calcSwapToVUsdReverse(\n toSystemPrecision(amountInTokenPrecision, decimals),\n poolInfo\n ),\n };\n}\n\nfunction calcSwapToVUsdReverse(amountInSystemPrecision: Big, poolInfo: PoolInfo): string {\n const tokenBalance = Big(poolInfo.tokenBalance).minus(amountInSystemPrecision);\n const vUsdNewAmount = getY(tokenBalance.toFixed(), poolInfo.aValue, poolInfo.dValue);\n return Big(vUsdNewAmount).minus(poolInfo.vUsdBalance).round().toFixed();\n}\n\nfunction swapFromVUsdReverse(\n amountInSystemPrecision: BigSource,\n { feeShare, decimals }: Pick<Token, \"feeShare\" | \"decimals\">,\n poolInfo: PoolInfo\n): SwapFromVUsdCalcResult {\n if (Big(amountInSystemPrecision).eq(0)) {\n return {\n bridgeFeeInTokenPrecision: \"0\",\n amountIncludingCommissionInTokenPrecision: \"0\",\n amountExcludingCommissionInTokenPrecision: \"0\",\n };\n }\n const vUsdNewAmount = Big(poolInfo.vUsdBalance).minus(amountInSystemPrecision);\n const tokenBalance = getY(vUsdNewAmount.toFixed(), poolInfo.aValue, poolInfo.dValue);\n const inSystemPrecision = Big(tokenBalance).minus(poolInfo.tokenBalance);\n const amountWithoutFee = fromSystemPrecision(inSystemPrecision.toFixed(), decimals);\n const reversedFeeShare = Big(feeShare).div(Big(1).minus(feeShare));\n const fee = Big(amountWithoutFee).times(reversedFeeShare);\n const amount = Big(amountWithoutFee).plus(fee);\n return {\n bridgeFeeInTokenPrecision: fee.round().toFixed(),\n amountIncludingCommissionInTokenPrecision: amount.round().toFixed(),\n amountExcludingCommissionInTokenPrecision: amountWithoutFee.toFixed(),\n };\n}\n"]}
@@ -2,6 +2,9 @@ import { BigSource } from "big.js";
2
2
  import { AllbridgeCoreClientPoolsExt } from "../client/core-api/core-client-pool-info-caching";
3
3
  import { PoolInfo, TokenWithChainDetails } from "../tokens-info";
4
4
  export declare function assertNever(x: never, message?: string): never;
5
+ /**
6
+ * @deprecated Do not use.
7
+ */
5
8
  export declare function getPoolInfoByToken(api: AllbridgeCoreClientPoolsExt, sourceChainToken: TokenWithChainDetails): Promise<PoolInfo>;
6
9
  export declare function validateAmountGtZero(amount: BigSource): void;
7
10
  export declare function validateAmountGteZero(amount: BigSource): void;
@@ -4,6 +4,9 @@ export function assertNever(x, message) {
4
4
  // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
5
5
  throw new Error(message ?? `Unexpected value: ${x}`);
6
6
  }
7
+ /**
8
+ * @deprecated Do not use.
9
+ */
7
10
  export async function getPoolInfoByToken(api, sourceChainToken) {
8
11
  return await api.getPoolInfoByKey({
9
12
  chainSymbol: sourceChainToken.chainSymbol,
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { Big, BigSource } from \"big.js\";\nimport { AllbridgeCoreClientPoolsExt } from \"../client/core-api/core-client-pool-info-caching\";\nimport { ArgumentInvalidDecimalsError, InvalidAmountError, TimeoutError } from \"../exceptions\";\nimport { PoolInfo, TokenWithChainDetails } from \"../tokens-info\";\n\nexport function assertNever(x: never, message?: string): never {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(message ?? `Unexpected value: ${x}`);\n}\n\nexport async function getPoolInfoByToken(\n api: AllbridgeCoreClientPoolsExt,\n sourceChainToken: TokenWithChainDetails\n): Promise<PoolInfo> {\n return await api.getPoolInfoByKey({\n chainSymbol: sourceChainToken.chainSymbol,\n poolAddress: sourceChainToken.poolAddress,\n });\n}\n\nexport function validateAmountGtZero(amount: BigSource) {\n if (Big(amount).lte(0)) {\n throw new InvalidAmountError(\"Amount must be greater than zero\");\n }\n}\n\nexport function validateAmountGteZero(amount: BigSource) {\n if (Big(amount).lt(0)) {\n throw new InvalidAmountError(\"Amount must be greater or equal than zero\");\n }\n}\n\nexport function validateAmountDecimals(argName: string, amountFloat: BigSource, decimalRequired: number) {\n const amount = Big(amountFloat).toFixed();\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [integerPart, fractionalPart] = amount.split(\".\");\n\n if (fractionalPart && fractionalPart.length > decimalRequired) {\n throw new ArgumentInvalidDecimalsError(argName, fractionalPart.length, decimalRequired);\n }\n}\n\nexport async function promiseWithTimeout<T>(promise: Promise<T>, msg: string, timeoutMs: number): Promise<T> {\n return (await Promise.race([\n promise,\n new Promise((resolve, reject) => {\n setTimeout(() => reject(new TimeoutError(msg)), timeoutMs);\n }),\n ])) as any as T;\n}\n\nexport async function promiseWithTimeoutAndRetries<T>(\n toTry: () => Promise<T>,\n msg: string,\n maxRetries: number,\n timeoutMs: number\n): Promise<T> {\n if (maxRetries < 1)\n throw new Error(`Bad argument: 'maxRetries' must be greater than 0, but ${maxRetries} was received.`);\n let attemptCount = 0;\n while (true) {\n try {\n return await promiseWithTimeout(toTry(), msg, timeoutMs);\n } catch (ignoreError) {\n if (++attemptCount >= maxRetries) throw new TimeoutError(msg);\n }\n }\n}\n\n/**\n * Keep calling a `fn` for `secondsToWait` seconds, if `keepWaitingIf` is true.\n * Returns an array of all attempts to call the function.\n */\nexport async function withExponentialBackoff<T>(\n fn: (previousFailure?: T) => Promise<T>,\n keepWaitingIf: (result: T) => boolean,\n secondsToWait: number,\n exponentialFactor = 1.5,\n verbose = false\n): Promise<T[]> {\n const attempts: T[] = [];\n\n let count = 0;\n const initialAttempt = await fn();\n attempts.push(initialAttempt);\n if (!keepWaitingIf(initialAttempt)) return attempts;\n\n const waitUntil = new Date(Date.now() + secondsToWait * 1000).valueOf();\n let waitTime = 1000;\n let totalWaitTime = waitTime;\n\n while (Date.now() < waitUntil) {\n const lastAttempt = attempts[attempts.length - 1];\n if (lastAttempt === undefined || !keepWaitingIf(lastAttempt)) break;\n\n count++;\n // Wait a beat\n if (verbose) {\n console.info(\n `Waiting ${waitTime}ms before trying again (bringing the total wait time to ${totalWaitTime}ms so far, of total ${\n secondsToWait * 1000\n }ms)`\n );\n }\n await new Promise((res) => setTimeout(res, waitTime));\n // Exponential backoff\n waitTime = waitTime * exponentialFactor;\n if (new Date(Date.now() + waitTime).valueOf() > waitUntil) {\n waitTime = waitUntil - Date.now();\n if (verbose) {\n console.info(`was gonna wait too long; new waitTime: ${waitTime}ms`);\n }\n }\n totalWaitTime = waitTime + totalWaitTime;\n // Try again\n const nextAttempt = await fn(lastAttempt);\n attempts.push(nextAttempt);\n if (verbose && keepWaitingIf(nextAttempt)) {\n console.info(\n `${count}. Called ${fn.name}; ${attempts.length} prev attempts. Most recent: ${JSON.stringify(\n attempts[attempts.length - 1],\n null,\n 2\n )}`\n );\n }\n }\n\n return attempts;\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/utils/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { Big, BigSource } from \"big.js\";\nimport { AllbridgeCoreClientPoolsExt } from \"../client/core-api/core-client-pool-info-caching\";\nimport { ArgumentInvalidDecimalsError, InvalidAmountError, TimeoutError } from \"../exceptions\";\nimport { PoolInfo, TokenWithChainDetails } from \"../tokens-info\";\n\nexport function assertNever(x: never, message?: string): never {\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(message ?? `Unexpected value: ${x}`);\n}\n\n/**\n * @deprecated Do not use.\n */\nexport async function getPoolInfoByToken(\n api: AllbridgeCoreClientPoolsExt,\n sourceChainToken: TokenWithChainDetails\n): Promise<PoolInfo> {\n return await api.getPoolInfoByKey({\n chainSymbol: sourceChainToken.chainSymbol,\n poolAddress: sourceChainToken.poolAddress,\n });\n}\n\nexport function validateAmountGtZero(amount: BigSource) {\n if (Big(amount).lte(0)) {\n throw new InvalidAmountError(\"Amount must be greater than zero\");\n }\n}\n\nexport function validateAmountGteZero(amount: BigSource) {\n if (Big(amount).lt(0)) {\n throw new InvalidAmountError(\"Amount must be greater or equal than zero\");\n }\n}\n\nexport function validateAmountDecimals(argName: string, amountFloat: BigSource, decimalRequired: number) {\n const amount = Big(amountFloat).toFixed();\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [integerPart, fractionalPart] = amount.split(\".\");\n\n if (fractionalPart && fractionalPart.length > decimalRequired) {\n throw new ArgumentInvalidDecimalsError(argName, fractionalPart.length, decimalRequired);\n }\n}\n\nexport async function promiseWithTimeout<T>(promise: Promise<T>, msg: string, timeoutMs: number): Promise<T> {\n return (await Promise.race([\n promise,\n new Promise((resolve, reject) => {\n setTimeout(() => reject(new TimeoutError(msg)), timeoutMs);\n }),\n ])) as any as T;\n}\n\nexport async function promiseWithTimeoutAndRetries<T>(\n toTry: () => Promise<T>,\n msg: string,\n maxRetries: number,\n timeoutMs: number\n): Promise<T> {\n if (maxRetries < 1)\n throw new Error(`Bad argument: 'maxRetries' must be greater than 0, but ${maxRetries} was received.`);\n let attemptCount = 0;\n while (true) {\n try {\n return await promiseWithTimeout(toTry(), msg, timeoutMs);\n } catch (ignoreError) {\n if (++attemptCount >= maxRetries) throw new TimeoutError(msg);\n }\n }\n}\n\n/**\n * Keep calling a `fn` for `secondsToWait` seconds, if `keepWaitingIf` is true.\n * Returns an array of all attempts to call the function.\n */\nexport async function withExponentialBackoff<T>(\n fn: (previousFailure?: T) => Promise<T>,\n keepWaitingIf: (result: T) => boolean,\n secondsToWait: number,\n exponentialFactor = 1.5,\n verbose = false\n): Promise<T[]> {\n const attempts: T[] = [];\n\n let count = 0;\n const initialAttempt = await fn();\n attempts.push(initialAttempt);\n if (!keepWaitingIf(initialAttempt)) return attempts;\n\n const waitUntil = new Date(Date.now() + secondsToWait * 1000).valueOf();\n let waitTime = 1000;\n let totalWaitTime = waitTime;\n\n while (Date.now() < waitUntil) {\n const lastAttempt = attempts[attempts.length - 1];\n if (lastAttempt === undefined || !keepWaitingIf(lastAttempt)) break;\n\n count++;\n // Wait a beat\n if (verbose) {\n console.info(\n `Waiting ${waitTime}ms before trying again (bringing the total wait time to ${totalWaitTime}ms so far, of total ${\n secondsToWait * 1000\n }ms)`\n );\n }\n await new Promise((res) => setTimeout(res, waitTime));\n // Exponential backoff\n waitTime = waitTime * exponentialFactor;\n if (new Date(Date.now() + waitTime).valueOf() > waitUntil) {\n waitTime = waitUntil - Date.now();\n if (verbose) {\n console.info(`was gonna wait too long; new waitTime: ${waitTime}ms`);\n }\n }\n totalWaitTime = waitTime + totalWaitTime;\n // Try again\n const nextAttempt = await fn(lastAttempt);\n attempts.push(nextAttempt);\n if (verbose && keepWaitingIf(nextAttempt)) {\n console.info(\n `${count}. Called ${fn.name}; ${attempts.length} prev attempts. Most recent: ${JSON.stringify(\n attempts[attempts.length - 1],\n null,\n 2\n )}`\n );\n }\n }\n\n return attempts;\n}\n"]}
@@ -1 +1 @@
1
- export declare const VERSION = "3.32.1";
1
+ export declare const VERSION = "3.33.0-alpha.1";
@@ -1,2 +1,2 @@
1
- export const VERSION = "3.32.1";
1
+ export const VERSION = "3.33.0-alpha.1";
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC","sourcesContent":["export const VERSION = \"3.32.1\";\n"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,gBAAgB,CAAC","sourcesContent":["export const VERSION = \"3.33.0-alpha.1\";\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allbridge/bridge-core-sdk",
3
- "version": "3.32.1",
3
+ "version": "3.33.0-alpha.1",
4
4
  "main": "./dist/cjs/index.js",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/src/index.d.ts",