@paraswap/dex-lib 2.16.1 → 2.16.2-balancer-v2-buy.2

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 (91) hide show
  1. package/build/abi/uniswap-v3/UniswapV3Pool.abi.json +363 -67
  2. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +119 -23
  3. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +285 -0
  4. package/build/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +583 -0
  5. package/build/config.js +6 -6
  6. package/build/dex/balancer-v2/balancer-v2.d.ts +9 -14
  7. package/build/dex/balancer-v2/balancer-v2.js +19 -16
  8. package/build/dex/balancer-v2/balancer-v2.js.map +1 -1
  9. package/build/dex/balancer-v2/config.d.ts +2 -7
  10. package/build/dex/balancer-v2/config.js +20 -30
  11. package/build/dex/balancer-v2/config.js.map +1 -1
  12. package/build/dex/balancer-v2/pools/balancer-v2-pool.d.ts +24 -0
  13. package/build/dex/balancer-v2/pools/balancer-v2-pool.js +102 -0
  14. package/build/dex/balancer-v2/pools/balancer-v2-pool.js.map +1 -0
  15. package/build/dex/balancer-v2/pools/linear/LinearMath.d.ts +19 -0
  16. package/build/dex/balancer-v2/pools/linear/LinearMath.js +179 -0
  17. package/build/dex/balancer-v2/pools/linear/LinearMath.js.map +1 -0
  18. package/build/dex/balancer-v2/pools/linear/LinearPool.d.ts +50 -0
  19. package/build/dex/balancer-v2/pools/linear/LinearPool.js +458 -0
  20. package/build/dex/balancer-v2/pools/linear/LinearPool.js.map +1 -0
  21. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStableMath.d.ts +10 -0
  22. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStableMath.js +314 -0
  23. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStableMath.js.map +1 -0
  24. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStablePool.d.ts +50 -0
  25. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStablePool.js +367 -0
  26. package/build/dex/balancer-v2/pools/phantom-stable/PhantomStablePool.js.map +1 -0
  27. package/build/dex/balancer-v2/pools/stable/StableMath.d.ts +7 -0
  28. package/build/dex/balancer-v2/pools/stable/StableMath.js +111 -0
  29. package/build/dex/balancer-v2/pools/stable/StableMath.js.map +1 -0
  30. package/build/dex/balancer-v2/pools/stable/StablePool.d.ts +30 -0
  31. package/build/dex/balancer-v2/pools/stable/StablePool.js +129 -0
  32. package/build/dex/balancer-v2/pools/stable/StablePool.js.map +1 -0
  33. package/build/dex/balancer-v2/pools/weighted/WeightedMath.d.ts +6 -0
  34. package/build/dex/balancer-v2/pools/weighted/WeightedMath.js +61 -0
  35. package/build/dex/balancer-v2/pools/weighted/WeightedMath.js.map +1 -0
  36. package/build/dex/balancer-v2/pools/weighted/WeightedPool.d.ts +30 -0
  37. package/build/dex/balancer-v2/pools/weighted/WeightedPool.js +112 -0
  38. package/build/dex/balancer-v2/pools/weighted/WeightedPool.js.map +1 -0
  39. package/build/dex/index.js +4 -0
  40. package/build/dex/index.js.map +1 -1
  41. package/build/dex/maverick-v1/config.js +1 -1
  42. package/build/dex/maverick-v1/config.js.map +1 -1
  43. package/build/dex/quickswap/config.js +8 -0
  44. package/build/dex/quickswap/config.js.map +1 -1
  45. package/build/dex/quickswap/spiritswap-v3.d.ts +6 -0
  46. package/build/dex/quickswap/spiritswap-v3.js +19 -0
  47. package/build/dex/quickswap/spiritswap-v3.js.map +1 -0
  48. package/build/dex/uniswap-v3/config.js +42 -0
  49. package/build/dex/uniswap-v3/config.js.map +1 -1
  50. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.d.ts +12 -0
  51. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js +23 -0
  52. package/build/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.js.map +1 -0
  53. package/build/dex/uniswap-v3/types.d.ts +3 -0
  54. package/build/dex/uniswap-v3/types.js.map +1 -1
  55. package/build/dex/uniswap-v3/uniswap-v3-pool.d.ts +2 -1
  56. package/build/dex/uniswap-v3/uniswap-v3-pool.js +3 -2
  57. package/build/dex/uniswap-v3/uniswap-v3-pool.js.map +1 -1
  58. package/build/dex/uniswap-v3/uniswap-v3.js +6 -3
  59. package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
  60. package/package.json +1 -1
  61. package/src/abi/uniswap-v3/UniswapV3Pool.abi.json +363 -67
  62. package/src/abi/uniswap-v3/UniswapV3Quoter.abi.json +119 -23
  63. package/src/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3QuoterV2.abi.json +285 -0
  64. package/src/abi/uniswap-v3/pancakeswap-v3/PancakeswapV3Router.abi.json +583 -0
  65. package/src/config.ts +6 -6
  66. package/src/dex/balancer-v2/balancer-v2-e2e.test.ts +99 -160
  67. package/src/dex/balancer-v2/balancer-v2.ts +41 -29
  68. package/src/dex/balancer-v2/config.ts +23 -35
  69. package/src/dex/balancer-v2/pools/balancer-v2-pool.ts +273 -0
  70. package/src/dex/balancer-v2/{LinearMath.ts → pools/linear/LinearMath.ts} +1 -1
  71. package/src/dex/balancer-v2/{LinearPool.ts → pools/linear/LinearPool.ts} +210 -5
  72. package/src/dex/balancer-v2/{StableMath.ts → pools/phantom-stable/PhantomStableMath.ts} +101 -21
  73. package/src/dex/balancer-v2/{PhantomStablePool.ts → pools/phantom-stable/PhantomStablePool.ts} +165 -11
  74. package/src/dex/balancer-v2/pools/stable/StableMath.ts +204 -0
  75. package/src/dex/balancer-v2/pools/stable/StablePool.ts +221 -0
  76. package/src/dex/balancer-v2/pools/weighted/WeightedMath.ts +84 -0
  77. package/src/dex/balancer-v2/pools/weighted/WeightedPool.ts +189 -0
  78. package/src/dex/index.ts +4 -0
  79. package/src/dex/maverick-v1/config.ts +1 -1
  80. package/src/dex/quickswap/config.ts +9 -0
  81. package/src/dex/quickswap/quickswap-e2e.test.ts +94 -0
  82. package/src/dex/quickswap/spiritswap-v3.ts +19 -0
  83. package/src/dex/uniswap-v3/config.ts +50 -0
  84. package/src/dex/uniswap-v3/forks/pancakeswap-v3/pancakeswap-v3.ts +28 -0
  85. package/src/dex/uniswap-v3/types.ts +3 -0
  86. package/src/dex/uniswap-v3/uniswap-v3-e2e.test.ts +156 -0
  87. package/src/dex/uniswap-v3/uniswap-v3-pool.ts +3 -2
  88. package/src/dex/uniswap-v3/uniswap-v3.ts +7 -3
  89. package/tests/constants-e2e.ts +11 -6
  90. package/.idea/runConfigurations.xml +0 -10
  91. package/src/dex/balancer-v2/balancer-v2-pool.ts +0 -744
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinearMath.js","sourceRoot":"","sources":["../../../../../src/dex/balancer-v2/pools/linear/LinearMath.ts"],"names":[],"mappings":";;;AAAA,6DAAiD;AAejD,SAAgB,oBAAoB,CAClC,MAAc,EACd,WAAmB,EACnB,cAAsB,EACtB,SAAiB,EACjB,MAAc;IAEd,wCAAwC;IAExC,IAAI,SAAS,IAAI,EAAE,EAAE;QACnB,OAAO,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACnC;IAED,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,UAAU,CAAC,WAAW,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;IAChE,MAAM,SAAS,GAAG,cAAc,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACtE,OAAO,0BAAO,CAAC,OAAO,CAAC,0BAAO,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,SAAS,CAAC,CAAC;AAC9E,CAAC;AAlBD,oDAkBC;AAED,SAAgB,oBAAoB,CAClC,OAAe,EACf,WAAmB,EACnB,cAAsB,EACtB,SAAiB,EACjB,MAAc;IAEd,qCAAqC;IACrC,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,UAAU,CAAC,WAAW,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;IAChE,MAAM,SAAS,GAAG,cAAc,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACtE,OAAO,0BAAO,CAAC,KAAK,CAAC,0BAAO,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,EAAE,SAAS,CAAC,CAAC;AAC5E,CAAC;AAbD,oDAaC;AAED,SAAgB,uBAAuB,CACrC,UAAkB,EAClB,WAAmB,EACnB,cAAsB,EACtB,SAAiB,EACjB,MAAc;IAEd,qCAAqC;IACrC,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,iBAAiB,GAAG,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAG,cAAc,GAAG,UAAU,CAAC;IACtD,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG,0BAAO,CAAC,OAAO,CACnC,0BAAO,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,EACpC,iBAAiB,CAClB,CAAC;IACF,OAAO,SAAS,GAAG,aAAa,CAAC;AACnC,CAAC;AAjBD,0DAiBC;AAED,SAAgB,wBAAwB,CACtC,MAAc,EACd,WAAmB,EACnB,MAAc;IAEd,wCAAwC;IACxC,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,UAAU,CAAC,WAAW,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC;IAClE,OAAO,gBAAgB,GAAG,mBAAmB,CAAC;AAChD,CAAC;AATD,4DASC;AAED,SAAgB,wBAAwB,CACtC,OAAe,EACf,WAAmB,EACnB,MAAc;IAEd,qCAAqC;IACrC,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,UAAU,CAAC,WAAW,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC;IACnE,OAAO,mBAAmB,GAAG,gBAAgB,CAAC;AAChD,CAAC;AATD,4DASC;AAED,SAAgB,oBAAoB,CAClC,MAAc,EACd,WAAmB,EACnB,cAAsB,EACtB,SAAiB,EACjB,MAAc;IAEd,qCAAqC;IACrC,IAAI,SAAS,IAAI,EAAE,EAAE;QACnB,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrC;IACD,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,cAAc,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACtE,MAAM,gBAAgB,GAAG,0BAAO,CAAC,KAAK,CACpC,0BAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,EAC9B,SAAS,CACV,CAAC;IACF,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;IAChE,MAAM,cAAc,GAAG,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,cAAc,GAAG,WAAW,CAAC;AACtC,CAAC;AApBD,oDAoBC;AAED,SAAgB,oBAAoB,CAClC,KAAa,EACb,WAAmB,EACnB,cAAsB,EACtB,SAAiB,EACjB,MAAc;IAEd,wCAAwC;IACxC,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,cAAc,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACtE,MAAM,gBAAgB,GAAG,0BAAO,CAAC,OAAO,CACtC,0BAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,EAC7B,SAAS,CACV,CAAC;IACF,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;IAChE,MAAM,cAAc,GAAG,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,WAAW,GAAG,cAAc,CAAC;AACtC,CAAC;AAjBD,oDAiBC;AAED,SAAgB,wBAAwB,CACtC,SAAiB,EACjB,WAAmB,EACnB,MAAc;IAEd,wCAAwC;IACxC,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,SAAS,CAAC;IACzD,MAAM,cAAc,GAAG,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,WAAW,GAAG,cAAc,CAAC;AACtC,CAAC;AAVD,4DAUC;AAED,SAAgB,wBAAwB,CACtC,UAAkB,EAClB,WAAmB,EACnB,MAAc;IAEd,qCAAqC;IACrC,MAAM,mBAAmB,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,UAAU,CAAC;IAC1D,MAAM,cAAc,GAAG,YAAY,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,cAAc,GAAG,WAAW,CAAC;AACtC,CAAC;AAVD,4DAUC;AAED,SAAgB,uBAAuB,CACrC,SAAiB,EACjB,WAAmB,EACnB,cAAsB,EACtB,SAAiB,EACjB,MAAc;IAEd,wCAAwC;IACxC,IAAI,SAAS,IAAI,EAAE,EAAE;QACnB,qBAAqB;QACrB,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,iBAAiB,GAAG,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACtE,MAAM,iBAAiB,GAAG,cAAc,GAAG,SAAS,CAAC;IACrD,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG,0BAAO,CAAC,OAAO,CACnC,0BAAO,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,EACpC,iBAAiB,CAClB,CAAC;IACF,OAAO,aAAa,GAAG,SAAS,CAAC;AACnC,CAAC;AAtBD,0DAsBC;AAED,SAAgB,uBAAuB,CACrC,MAAc,EACd,WAAmB,EACnB,cAAsB,EACtB,SAAiB,EACjB,MAAc;IAEd,qCAAqC;IACrC,IAAI,SAAS,IAAI,EAAE,EAAE;QACnB,qBAAqB;QACrB,OAAO,MAAM,CAAC;KACf;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,iBAAiB,GAAG,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC;IACzC,MAAM,iBAAiB,GACrB,0BAAO,CAAC,KAAK,CAAC,0BAAO,CAAC,GAAG,CAAC,aAAa,EAAE,iBAAiB,CAAC,EAAE,SAAS,CAAC;QACvE,WAAW,CAAC;IACd,OAAO,iBAAiB,GAAG,cAAc,CAAC;AAC5C,CAAC;AApBD,0DAoBC;AAED,SAAgB,uBAAuB,CACrC,KAAa,EACb,WAAmB,EACnB,cAAsB,EACtB,SAAiB,EACjB,MAAc;IAEd,wCAAwC;IACxC,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,iBAAiB,GAAG,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,SAAS,GAAG,KAAK,CAAC;IACxC,MAAM,iBAAiB,GACrB,0BAAO,CAAC,KAAK,CAAC,0BAAO,CAAC,GAAG,CAAC,aAAa,EAAE,iBAAiB,CAAC,EAAE,SAAS,CAAC;QACvE,WAAW,CAAC;IACd,OAAO,cAAc,GAAG,iBAAiB,CAAC;AAC5C,CAAC;AAfD,0DAeC;AAED,SAAS,cAAc,CACrB,kBAA0B,EAC1B,cAAsB;IAEtB,OAAO,kBAAkB,GAAG,cAAc,CAAC;AAC7C,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,MAAc;IAC9C,4GAA4G;IAC5G,iBAAiB;IACjB,IAAI,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE;QAC7B,MAAM,IAAI,GAAG,0BAAO,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACzE,OAAO,0BAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAChC;SAAM,IAAI,IAAI,IAAI,MAAM,CAAC,WAAW,EAAE;QACrC,OAAO,IAAI,CAAC;KACb;SAAM;QACL,MAAM,IAAI,GAAG,0BAAO,CAAC,YAAY,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACzE,OAAO,0BAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAChC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,MAAc;IACnD,uFAAuF;IACvF,IAAI,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE;QAChC,OAAO,0BAAO,CAAC,YAAY,CACzB,OAAO,GAAG,0BAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,EAC9D,0BAAO,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CACzB,CAAC;KACH;SAAM,IAAI,OAAO,IAAI,MAAM,CAAC,WAAW,EAAE;QACxC,OAAO,OAAO,CAAC;KAChB;SAAM;QACL,OAAO,0BAAO,CAAC,YAAY,CACzB,OAAO,GAAG,0BAAO,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,EAC9D,0BAAO,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CACzB,CAAC;KACH;AACH,CAAC;AAED,SAAgB,6BAA6B,CAC3C,QAAkB,EAClB,WAAmB,EACnB,cAAsB,EACtB,QAAgB;IAEhB;;;;;;;qGAOiG;IAEjG,mGAAmG;IACnG,+BAA+B;IAE/B,MAAM,QAAQ,GAAG,0BAAO,CAAC,YAAY,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACnE,MAAM,UAAU,GAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,qGAAqG;QACrG,IAAI,CAAC,IAAI,QAAQ,EAAE;YACjB,UAAU,CAAC,CAAC,CAAC,GAAG,0BAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;SAC7D;KACF;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AA3BD,sEA2BC"}
@@ -0,0 +1,50 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { BigNumber } from '@ethersproject/bignumber';
3
+ import { BasePool } from '../balancer-v2-pool';
4
+ import { callData, SubgraphPoolBase, PoolState } from '../../types';
5
+ import { SwapSide } from '../../../../constants';
6
+ export declare enum PairTypes {
7
+ BptToMainToken = 0,
8
+ MainTokenToBpt = 1,
9
+ MainTokenToWrappedToken = 2,
10
+ WrappedTokenToMainToken = 3,
11
+ BptToWrappedToken = 4,
12
+ WrappedTokenToBpt = 5
13
+ }
14
+ declare type LinearPoolPairData = {
15
+ tokens: string[];
16
+ balances: bigint[];
17
+ indexIn: number;
18
+ indexOut: number;
19
+ scalingFactors: bigint[];
20
+ bptIndex: number;
21
+ swapFee: bigint;
22
+ amp: bigint;
23
+ wrappedIndex: number;
24
+ mainIndex: number;
25
+ lowerTarget: bigint;
26
+ upperTarget: bigint;
27
+ };
28
+ export declare class LinearPool extends BasePool {
29
+ MAX_TOKEN_BALANCE: BigNumber;
30
+ vaultAddress: string;
31
+ vaultInterface: Interface;
32
+ poolInterface: Interface;
33
+ constructor(vaultAddress: string, vaultInterface: Interface);
34
+ onSell(amounts: bigint[], poolPairData: LinearPoolPairData): bigint[];
35
+ onBuy(amounts: bigint[], poolPairData: LinearPoolPairData): bigint[];
36
+ _swapGivenOut(tokenAmountsOut: bigint[], tokens: string[], balances: bigint[], indexIn: number, indexOut: number, bptIndex: number, wrappedIndex: number, mainIndex: number, scalingFactors: bigint[], swapFeePercentage: bigint, lowerTarget: bigint, upperTarget: bigint): bigint[];
37
+ _onSwapGivenOut(tokenAmountsIn: bigint[], mainBalance: bigint, wrappedBalance: bigint, fee: bigint, lowerTarget: bigint, upperTarget: bigint, virtualBptSupply: bigint, pairType: PairTypes): bigint[];
38
+ _swapGivenIn(tokenAmountsIn: bigint[], tokens: string[], balances: bigint[], indexIn: number, indexOut: number, bptIndex: number, wrappedIndex: number, mainIndex: number, scalingFactors: bigint[], swapFeePercentage: bigint, lowerTarget: bigint, upperTarget: bigint): bigint[];
39
+ _onSwapGivenIn(tokenAmountsIn: bigint[], mainBalance: bigint, wrappedBalance: bigint, fee: bigint, lowerTarget: bigint, upperTarget: bigint, virtualBptSupply: bigint, pairType: PairTypes): bigint[];
40
+ parsePoolPairData(pool: SubgraphPoolBase, poolState: PoolState, tokenIn: string, tokenOut: string): LinearPoolPairData;
41
+ getOnChainCalls(pool: SubgraphPoolBase): callData[];
42
+ decodeOnChainCalls(pool: SubgraphPoolBase, data: {
43
+ success: boolean;
44
+ returnData: any;
45
+ }[], startIndex: number): [{
46
+ [address: string]: PoolState;
47
+ }, number];
48
+ getSwapMaxAmount(poolPairData: LinearPoolPairData, side: SwapSide): bigint;
49
+ }
50
+ export {};
@@ -0,0 +1,458 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.LinearPool = exports.PairTypes = void 0;
30
+ const abi_1 = require("@ethersproject/abi");
31
+ const bignumber_1 = require("@ethersproject/bignumber");
32
+ const utils_1 = require("../../utils");
33
+ const LinearMath = __importStar(require("./LinearMath"));
34
+ const balancer_v2_pool_1 = require("../balancer-v2-pool");
35
+ const linearPoolAbi_json_1 = __importDefault(require("../../../../abi/balancer-v2/linearPoolAbi.json"));
36
+ const lodash_1 = require("lodash");
37
+ var PairTypes;
38
+ (function (PairTypes) {
39
+ PairTypes[PairTypes["BptToMainToken"] = 0] = "BptToMainToken";
40
+ PairTypes[PairTypes["MainTokenToBpt"] = 1] = "MainTokenToBpt";
41
+ PairTypes[PairTypes["MainTokenToWrappedToken"] = 2] = "MainTokenToWrappedToken";
42
+ PairTypes[PairTypes["WrappedTokenToMainToken"] = 3] = "WrappedTokenToMainToken";
43
+ PairTypes[PairTypes["BptToWrappedToken"] = 4] = "BptToWrappedToken";
44
+ PairTypes[PairTypes["WrappedTokenToBpt"] = 5] = "WrappedTokenToBpt";
45
+ })(PairTypes = exports.PairTypes || (exports.PairTypes = {}));
46
+ /*
47
+ Linear (Boosted) Pools are designed to facilitate trades between stablecoins while simultaneously forwarding much of the pool's
48
+ liquidity to external protocols, such as Aave.
49
+ One of the key features that makes trades through Boosted Pools so simple is the use of Phantom BPT. Normally when a Liquidity
50
+ Provider joins/exits a pool, the pool mints/burns pool tokens as needed. This is gas intensive and requires users to execute a join or exit.
51
+ In pools that use Phantom BPT, however, all pool tokens are minted at the time of pool creation and are held by the pool itself.
52
+ With Phantom BPT, Liquidity Providers use a swap (or more likely a batchSwap) to trade to or from a pool token to join or exit, respectively.
53
+ */
54
+ class LinearPool extends balancer_v2_pool_1.BasePool {
55
+ constructor(vaultAddress, vaultInterface) {
56
+ super();
57
+ // This is the maximum token amount the Vault can hold. In regular operation, the total BPT supply remains constant
58
+ // and equal to _INITIAL_BPT_SUPPLY, but most of it remains in the Pool, waiting to be exchanged for tokens. The
59
+ // actual amount of BPT in circulation is the total supply minus the amount held by the Pool, and is known as the
60
+ // 'virtual supply'.
61
+ this.MAX_TOKEN_BALANCE = bignumber_1.BigNumber.from('2').pow('112').sub('1');
62
+ this.vaultAddress = vaultAddress;
63
+ this.vaultInterface = vaultInterface;
64
+ this.poolInterface = new abi_1.Interface(linearPoolAbi_json_1.default);
65
+ }
66
+ /*
67
+ scaling factors should include rate:
68
+ The wrapped token's scaling factor is not constant, but increases over time as the wrapped token increases in value.
69
+ i.e.
70
+ scalingFactors: pool.tokens.map(({ decimals, priceRate }) =>
71
+ MathSol.mulDownFixed(getTokenScalingFactor(decimals), priceRate)
72
+ )
73
+ */
74
+ onSell(amounts, poolPairData) {
75
+ return this._swapGivenIn(amounts, poolPairData.tokens, poolPairData.balances, poolPairData.indexIn, poolPairData.indexOut, poolPairData.bptIndex, poolPairData.wrappedIndex, poolPairData.mainIndex, poolPairData.scalingFactors, poolPairData.swapFee, poolPairData.lowerTarget, poolPairData.upperTarget);
76
+ }
77
+ onBuy(amounts, poolPairData) {
78
+ return this._swapGivenOut(amounts, poolPairData.tokens, poolPairData.balances, poolPairData.indexIn, poolPairData.indexOut, poolPairData.bptIndex, poolPairData.wrappedIndex, poolPairData.mainIndex, poolPairData.scalingFactors, poolPairData.swapFee, poolPairData.lowerTarget, poolPairData.upperTarget);
79
+ }
80
+ _swapGivenOut(tokenAmountsOut, tokens, balances, indexIn, indexOut, bptIndex, wrappedIndex, mainIndex, scalingFactors, swapFeePercentage, lowerTarget, upperTarget) {
81
+ let pairType;
82
+ if ((0, utils_1.isSameAddress)(tokens[indexIn], tokens[bptIndex])) {
83
+ if ((0, utils_1.isSameAddress)(tokens[indexOut], tokens[wrappedIndex]))
84
+ pairType = PairTypes.BptToWrappedToken;
85
+ else
86
+ pairType = PairTypes.BptToMainToken;
87
+ }
88
+ else if ((0, utils_1.isSameAddress)(tokens[indexOut], tokens[bptIndex])) {
89
+ if ((0, utils_1.isSameAddress)(tokens[indexIn], tokens[wrappedIndex]))
90
+ pairType = PairTypes.WrappedTokenToBpt;
91
+ else
92
+ pairType = PairTypes.MainTokenToBpt;
93
+ }
94
+ else {
95
+ if ((0, utils_1.isSameAddress)(tokens[indexIn], tokens[wrappedIndex]))
96
+ pairType = PairTypes.WrappedTokenToMainToken;
97
+ else
98
+ pairType = PairTypes.MainTokenToWrappedToken;
99
+ }
100
+ const balancesUpscaled = this._upscaleArray(balances, scalingFactors);
101
+ const tokenAmountsOutScaled = tokenAmountsOut.map(a => this._upscale(a, scalingFactors[indexOut]));
102
+ // VirtualBPTSupply must be used for the maths
103
+ const virtualBptSupply = this.MAX_TOKEN_BALANCE.sub(balances[bptIndex]).toBigInt();
104
+ const amountsIn = this._onSwapGivenOut(tokenAmountsOutScaled, balancesUpscaled[mainIndex], balancesUpscaled[wrappedIndex], swapFeePercentage, lowerTarget, upperTarget, virtualBptSupply, pairType);
105
+ return amountsIn.map(a => this._downscaleDown(a, scalingFactors[indexIn]));
106
+ }
107
+ _onSwapGivenOut(tokenAmountsIn, mainBalance, wrappedBalance, fee, lowerTarget, upperTarget, virtualBptSupply, pairType) {
108
+ const amountsIn = [];
109
+ switch (pairType) {
110
+ case PairTypes.BptToMainToken:
111
+ tokenAmountsIn.forEach(amountIn => {
112
+ let amt;
113
+ try {
114
+ amt = LinearMath._calcMainOutPerBptIn(amountIn, mainBalance, wrappedBalance, virtualBptSupply, {
115
+ fee: fee,
116
+ lowerTarget: lowerTarget,
117
+ upperTarget: upperTarget,
118
+ });
119
+ }
120
+ catch (err) {
121
+ amt = 0n;
122
+ }
123
+ amountsIn.push(amt);
124
+ });
125
+ break;
126
+ case PairTypes.MainTokenToBpt:
127
+ tokenAmountsIn.forEach(amountIn => {
128
+ let amt;
129
+ try {
130
+ amt = LinearMath._calcBptOutPerMainIn(amountIn, mainBalance, wrappedBalance, virtualBptSupply, {
131
+ fee: fee,
132
+ lowerTarget: lowerTarget,
133
+ upperTarget: upperTarget,
134
+ });
135
+ }
136
+ catch (err) {
137
+ amt = 0n;
138
+ }
139
+ amountsIn.push(amt);
140
+ });
141
+ break;
142
+ case PairTypes.MainTokenToWrappedToken:
143
+ tokenAmountsIn.forEach(amountIn => {
144
+ let amt;
145
+ try {
146
+ amt = LinearMath._calcWrappedInPerMainOut(amountIn, mainBalance, {
147
+ fee: fee,
148
+ lowerTarget: lowerTarget,
149
+ upperTarget: upperTarget,
150
+ });
151
+ }
152
+ catch (err) {
153
+ amt = 0n;
154
+ }
155
+ amountsIn.push(amt);
156
+ });
157
+ break;
158
+ case PairTypes.WrappedTokenToMainToken:
159
+ tokenAmountsIn.forEach(amountIn => {
160
+ let amt;
161
+ try {
162
+ amt = LinearMath._calcMainInPerWrappedOut(amountIn, mainBalance, {
163
+ fee: fee,
164
+ lowerTarget: lowerTarget,
165
+ upperTarget: upperTarget,
166
+ });
167
+ }
168
+ catch (err) {
169
+ amt = 0n;
170
+ }
171
+ amountsIn.push(amt);
172
+ });
173
+ break;
174
+ case PairTypes.BptToWrappedToken:
175
+ tokenAmountsIn.forEach(amountIn => {
176
+ let amt;
177
+ try {
178
+ amt = LinearMath._calcWrappedInPerBptOut(amountIn, mainBalance, wrappedBalance, virtualBptSupply, {
179
+ fee: fee,
180
+ lowerTarget: lowerTarget,
181
+ upperTarget: upperTarget,
182
+ });
183
+ }
184
+ catch (err) {
185
+ amt = 0n;
186
+ }
187
+ amountsIn.push(amt);
188
+ });
189
+ break;
190
+ case PairTypes.WrappedTokenToBpt:
191
+ tokenAmountsIn.forEach(amountIn => {
192
+ let amt;
193
+ try {
194
+ amt = LinearMath._calcBptInPerWrappedOut(amountIn, mainBalance, wrappedBalance, virtualBptSupply, {
195
+ fee: fee,
196
+ lowerTarget: lowerTarget,
197
+ upperTarget: upperTarget,
198
+ });
199
+ }
200
+ catch (err) {
201
+ amt = 0n;
202
+ }
203
+ amountsIn.push(amt);
204
+ });
205
+ break;
206
+ default:
207
+ amountsIn.push(0n);
208
+ }
209
+ return amountsIn;
210
+ }
211
+ _swapGivenIn(tokenAmountsIn, tokens, balances, indexIn, indexOut, bptIndex, wrappedIndex, mainIndex, scalingFactors, swapFeePercentage, lowerTarget, upperTarget) {
212
+ /*
213
+ Linear pools allow trading between:
214
+ wrappedToken <> mainToken
215
+ wrappedToken <> BPT
216
+ mainToken <> BPT
217
+ */
218
+ let pairType;
219
+ if ((0, utils_1.isSameAddress)(tokens[indexIn], tokens[bptIndex])) {
220
+ if ((0, utils_1.isSameAddress)(tokens[indexOut], tokens[wrappedIndex]))
221
+ pairType = PairTypes.BptToWrappedToken;
222
+ else
223
+ pairType = PairTypes.BptToMainToken;
224
+ }
225
+ else if ((0, utils_1.isSameAddress)(tokens[indexOut], tokens[bptIndex])) {
226
+ if ((0, utils_1.isSameAddress)(tokens[indexIn], tokens[wrappedIndex]))
227
+ pairType = PairTypes.WrappedTokenToBpt;
228
+ else
229
+ pairType = PairTypes.MainTokenToBpt;
230
+ }
231
+ else {
232
+ if ((0, utils_1.isSameAddress)(tokens[indexIn], tokens[wrappedIndex]))
233
+ pairType = PairTypes.WrappedTokenToMainToken;
234
+ else
235
+ pairType = PairTypes.MainTokenToWrappedToken;
236
+ }
237
+ const balancesUpscaled = this._upscaleArray(balances, scalingFactors);
238
+ const tokenAmountsInScaled = tokenAmountsIn.map(a => this._upscale(a, scalingFactors[indexIn]));
239
+ // VirtualBPTSupply must be used for the maths
240
+ const virtualBptSupply = this.MAX_TOKEN_BALANCE.sub(balances[bptIndex]).toBigInt();
241
+ const amountsOut = this._onSwapGivenIn(tokenAmountsInScaled, balancesUpscaled[mainIndex], balancesUpscaled[wrappedIndex], swapFeePercentage, lowerTarget, upperTarget, virtualBptSupply, pairType);
242
+ // amountOut tokens are exiting the Pool, so we round down.
243
+ return amountsOut.map(a => this._downscaleDown(a, scalingFactors[indexOut]));
244
+ }
245
+ /*
246
+ Called when a swap with the Pool occurs, where the amount of tokens entering the Pool is known.
247
+ All amounts are upscaled.
248
+ Swap fee is NOT already deducted.
249
+ The return value is also considered upscaled, and should be downscaled (rounding down)
250
+ */
251
+ _onSwapGivenIn(tokenAmountsIn, mainBalance, wrappedBalance, fee, lowerTarget, upperTarget, virtualBptSupply, pairType) {
252
+ const amountsOut = [];
253
+ switch (pairType) {
254
+ case PairTypes.BptToMainToken:
255
+ tokenAmountsIn.forEach(amountIn => {
256
+ let amt;
257
+ try {
258
+ amt = LinearMath._calcMainOutPerBptIn(amountIn, mainBalance, wrappedBalance, virtualBptSupply, {
259
+ fee: fee,
260
+ lowerTarget: lowerTarget,
261
+ upperTarget: upperTarget,
262
+ });
263
+ }
264
+ catch (err) {
265
+ amt = 0n;
266
+ }
267
+ amountsOut.push(amt);
268
+ });
269
+ break;
270
+ case PairTypes.MainTokenToBpt:
271
+ tokenAmountsIn.forEach(amountIn => {
272
+ let amt;
273
+ try {
274
+ amt = LinearMath._calcBptOutPerMainIn(amountIn, mainBalance, wrappedBalance, virtualBptSupply, {
275
+ fee: fee,
276
+ lowerTarget: lowerTarget,
277
+ upperTarget: upperTarget,
278
+ });
279
+ }
280
+ catch (err) {
281
+ amt = 0n;
282
+ }
283
+ amountsOut.push(amt);
284
+ });
285
+ break;
286
+ case PairTypes.MainTokenToWrappedToken:
287
+ tokenAmountsIn.forEach(amountIn => {
288
+ let amt;
289
+ try {
290
+ amt = LinearMath._calcWrappedOutPerMainIn(amountIn, mainBalance, {
291
+ fee: fee,
292
+ lowerTarget: lowerTarget,
293
+ upperTarget: upperTarget,
294
+ });
295
+ }
296
+ catch (err) {
297
+ amt = 0n;
298
+ }
299
+ amountsOut.push(amt);
300
+ });
301
+ break;
302
+ case PairTypes.WrappedTokenToMainToken:
303
+ tokenAmountsIn.forEach(amountIn => {
304
+ let amt;
305
+ try {
306
+ amt = LinearMath._calcMainOutPerWrappedIn(amountIn, mainBalance, {
307
+ fee: fee,
308
+ lowerTarget: lowerTarget,
309
+ upperTarget: upperTarget,
310
+ });
311
+ }
312
+ catch (err) {
313
+ amt = 0n;
314
+ }
315
+ amountsOut.push(amt);
316
+ });
317
+ break;
318
+ case PairTypes.BptToWrappedToken:
319
+ tokenAmountsIn.forEach(amountIn => {
320
+ let amt;
321
+ try {
322
+ amt = LinearMath._calcWrappedOutPerBptIn(amountIn, mainBalance, wrappedBalance, virtualBptSupply, {
323
+ fee: fee,
324
+ lowerTarget: lowerTarget,
325
+ upperTarget: upperTarget,
326
+ });
327
+ }
328
+ catch (err) {
329
+ amt = 0n;
330
+ }
331
+ amountsOut.push(amt);
332
+ });
333
+ break;
334
+ case PairTypes.WrappedTokenToBpt:
335
+ tokenAmountsIn.forEach(amountIn => {
336
+ let amt;
337
+ try {
338
+ amt = LinearMath._calcBptOutPerWrappedIn(amountIn, mainBalance, wrappedBalance, virtualBptSupply, {
339
+ fee: fee,
340
+ lowerTarget: lowerTarget,
341
+ upperTarget: upperTarget,
342
+ });
343
+ }
344
+ catch (err) {
345
+ amt = 0n;
346
+ }
347
+ amountsOut.push(amt);
348
+ });
349
+ break;
350
+ default:
351
+ amountsOut.push(0n);
352
+ }
353
+ return amountsOut;
354
+ }
355
+ /*
356
+ Helper function to parse pool data into params for onSell function.
357
+ */
358
+ parsePoolPairData(pool, poolState, tokenIn, tokenOut) {
359
+ let indexIn = 0, indexOut = 0, bptIndex = 0;
360
+ const balances = [];
361
+ const scalingFactors = [];
362
+ const tokens = poolState.orderedTokens.map((tokenAddress, i) => {
363
+ const t = pool.tokensMap[tokenAddress.toLowerCase()];
364
+ if (t.address.toLowerCase() === tokenIn.toLowerCase())
365
+ indexIn = i;
366
+ if (t.address.toLowerCase() === tokenOut.toLowerCase())
367
+ indexOut = i;
368
+ if (t.address.toLowerCase() === pool.address.toLowerCase())
369
+ bptIndex = i;
370
+ balances.push(poolState.tokens[t.address.toLowerCase()].balance);
371
+ scalingFactors.push(poolState.tokens[t.address.toLowerCase()].scalingFactor || 0n);
372
+ return t.address;
373
+ });
374
+ const poolPairData = {
375
+ tokens,
376
+ balances,
377
+ indexIn,
378
+ indexOut,
379
+ scalingFactors,
380
+ bptIndex,
381
+ swapFee: poolState.swapFee,
382
+ amp: poolState.amp || 0n,
383
+ wrappedIndex: poolState.wrappedIndex || 0,
384
+ mainIndex: poolState.mainIndex || 0,
385
+ lowerTarget: poolState.lowerTarget || 0n,
386
+ upperTarget: poolState.upperTarget || 0n,
387
+ };
388
+ return poolPairData;
389
+ }
390
+ /*
391
+ Helper function to construct onchain multicall data for Linear Pool.
392
+ */
393
+ getOnChainCalls(pool) {
394
+ const poolCallData = [
395
+ {
396
+ target: this.vaultAddress,
397
+ callData: this.vaultInterface.encodeFunctionData('getPoolTokens', [
398
+ pool.id,
399
+ ]),
400
+ },
401
+ {
402
+ target: pool.address,
403
+ callData: this.poolInterface.encodeFunctionData('getSwapFeePercentage'),
404
+ },
405
+ ];
406
+ poolCallData.push({
407
+ target: pool.address,
408
+ callData: this.poolInterface.encodeFunctionData('getScalingFactors'),
409
+ });
410
+ // returns lowerTarget, upperTarget
411
+ poolCallData.push({
412
+ target: pool.address,
413
+ callData: this.poolInterface.encodeFunctionData('getTargets'),
414
+ });
415
+ return poolCallData;
416
+ }
417
+ /*
418
+ Helper function to decodes multicall data for a Linear Pool.
419
+ data must contain returnData
420
+ startIndex is where to start in returnData. Allows this decode function to be called along with other pool types.
421
+ */
422
+ decodeOnChainCalls(pool, data, startIndex) {
423
+ const pools = {};
424
+ const poolTokens = (0, utils_1.decodeThrowError)(this.vaultInterface, 'getPoolTokens', data[startIndex++], pool.address);
425
+ const swapFee = (0, utils_1.decodeThrowError)(this.poolInterface, 'getSwapFeePercentage', data[startIndex++], pool.address)[0];
426
+ const scalingFactors = (0, utils_1.decodeThrowError)(this.poolInterface, 'getScalingFactors', data[startIndex++], pool.address)[0];
427
+ const [lowerTarget, upperTarget] = (0, utils_1.decodeThrowError)(this.poolInterface, 'getTargets', data[startIndex++], pool.address);
428
+ const bptIndex = pool.tokens.findIndex(t => t.address.toLowerCase() === pool.address.toLowerCase());
429
+ const tokens = poolTokens.tokens.map((address, idx) => ({
430
+ address: address.toLowerCase(),
431
+ balance: BigInt(poolTokens.balances[idx].toString()),
432
+ scalingFactor: BigInt(scalingFactors[idx].toString()),
433
+ }));
434
+ const poolState = {
435
+ swapFee: BigInt(swapFee.toString()),
436
+ mainIndex: Number(pool.mainIndex),
437
+ wrappedIndex: Number(pool.wrappedIndex),
438
+ bptIndex,
439
+ lowerTarget: BigInt(lowerTarget.toString()),
440
+ upperTarget: BigInt(upperTarget.toString()),
441
+ tokens: (0, lodash_1.keyBy)(tokens, 'address'),
442
+ orderedTokens: poolTokens.tokens,
443
+ };
444
+ pools[pool.address] = poolState;
445
+ return [pools, startIndex];
446
+ }
447
+ /*
448
+ Swapping to BPT allows for a very large amount as pre-minted.
449
+ Swapping to main token - you can use 99% of the balance of the main token (Dani)
450
+ */
451
+ getSwapMaxAmount(poolPairData, side) {
452
+ return ((this._upscale(poolPairData.balances[poolPairData.indexOut], poolPairData.scalingFactors[poolPairData.indexOut]) *
453
+ 99n) /
454
+ 100n);
455
+ }
456
+ }
457
+ exports.LinearPool = LinearPool;
458
+ //# sourceMappingURL=LinearPool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinearPool.js","sourceRoot":"","sources":["../../../../../src/dex/balancer-v2/pools/linear/LinearPool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare function _calculateInvariant(amp: bigint, balances: bigint[], roundUp: boolean): bigint;
2
+ export declare function _calcOutGivenIn(amp: bigint, balances: bigint[], tokenIndexIn: number, tokenIndexOut: number, amountIn: bigint, invariant?: bigint): bigint;
3
+ export declare function _calcInGivenOut(amp: bigint, balances: bigint[], tokenIndexIn: number, tokenIndexOut: number, amountOut: bigint, fee: bigint, invariant?: bigint): bigint;
4
+ export declare function _calcBptOutGivenExactTokensIn(amp: bigint, balances: bigint[], amountsIn: bigint[], bptTotalSupply: bigint, invariant?: bigint): bigint;
5
+ export declare function _calcTokenInGivenExactBptOut(amp: bigint, balances: bigint[], tokenIndexIn: number, bptAmountOut: bigint, bptTotalSupply: bigint, fee: bigint, invariant?: bigint): bigint;
6
+ export declare function _calcBptInGivenExactTokensOut(amp: bigint, balances: bigint[], amountsOut: bigint[], bptTotalSupply: bigint, swapFeePercentage: bigint, invariant?: bigint): bigint;
7
+ export declare function _calcTokenOutGivenExactBptIn(amp: bigint, balances: bigint[], tokenIndex: number, bptAmountIn: bigint, bptTotalSupply: bigint, invariant?: bigint): bigint;
8
+ export declare function _calcTokensOutGivenExactBptIn(balances: bigint[], bptAmountIn: bigint, bptTotalSupply: bigint): bigint[];
9
+ export declare function subtractFee(amount: bigint, fee: bigint): bigint;
10
+ export declare function addFee(amount: bigint, fee: bigint): bigint;