@allbridge/bridge-core-sdk 3.20.0-alpha.3 → 3.21.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 (684) hide show
  1. package/dist/browser/index.js +1 -1
  2. package/dist/browser/index.js.map +4 -4
  3. package/dist/cjs/index.js +1 -1
  4. package/dist/cjs/index.js.map +4 -4
  5. package/dist/esm/index.js +1 -1
  6. package/dist/esm/index.js.map +4 -4
  7. package/dist/src/chains/chain.enums.d.ts +7 -2
  8. package/dist/src/chains/chain.enums.js +5 -0
  9. package/dist/src/chains/chain.enums.js.map +1 -1
  10. package/dist/src/chains/index.js +6 -0
  11. package/dist/src/chains/index.js.map +1 -1
  12. package/dist/src/client/core-api/api-client.js.map +1 -1
  13. package/dist/src/client/core-api/core-api-mapper.js +1 -0
  14. package/dist/src/client/core-api/core-api-mapper.js.map +1 -1
  15. package/dist/src/client/core-api/core-api.model.d.ts +2 -1
  16. package/dist/src/client/core-api/core-api.model.js.map +1 -1
  17. package/dist/src/client/core-api/core-client-filtered.js.map +1 -1
  18. package/dist/src/client/core-api/core-client-pool-info-caching.js.map +1 -1
  19. package/dist/src/configs/mainnet.js +2 -1
  20. package/dist/src/configs/mainnet.js.map +1 -1
  21. package/dist/src/exceptions/exceptions.js.map +1 -1
  22. package/dist/src/index.js.map +1 -1
  23. package/dist/src/models/index.d.ts +1 -1
  24. package/dist/src/models/index.js.map +1 -1
  25. package/dist/src/services/bridge/evm/index.js +4 -57
  26. package/dist/src/services/bridge/evm/index.js.map +1 -1
  27. package/dist/src/services/bridge/get-cctp-sol-token-recipient-address.d.ts +5 -0
  28. package/dist/src/services/bridge/get-cctp-sol-token-recipient-address.js +66 -0
  29. package/dist/src/services/bridge/get-cctp-sol-token-recipient-address.js.map +1 -0
  30. package/dist/src/services/bridge/index.js +4 -0
  31. package/dist/src/services/bridge/index.js.map +1 -1
  32. package/dist/src/services/bridge/models/bridge.model.d.ts +4 -2
  33. package/dist/src/services/bridge/models/bridge.model.js.map +1 -1
  34. package/dist/src/services/bridge/raw-bridge-transaction-builder.js.map +1 -1
  35. package/dist/src/services/bridge/sol/index.js.map +1 -1
  36. package/dist/src/services/bridge/sol/jupiter.js.map +1 -1
  37. package/dist/src/services/bridge/srb/index.js.map +1 -1
  38. package/dist/src/services/bridge/sui/index.d.ts +20 -0
  39. package/dist/src/services/bridge/sui/index.js +238 -0
  40. package/dist/src/services/bridge/sui/index.js.map +1 -0
  41. package/dist/src/services/bridge/trx/index.js.map +1 -1
  42. package/dist/src/services/bridge/utils.d.ts +5 -4
  43. package/dist/src/services/bridge/utils.js +41 -4
  44. package/dist/src/services/bridge/utils.js.map +1 -1
  45. package/dist/src/services/index.js.map +1 -1
  46. package/dist/src/services/liquidity-pool/evm/index.js.map +1 -1
  47. package/dist/src/services/liquidity-pool/index.js +4 -0
  48. package/dist/src/services/liquidity-pool/index.js.map +1 -1
  49. package/dist/src/services/liquidity-pool/raw-pool-transaction-builder.js.map +1 -1
  50. package/dist/src/services/liquidity-pool/sol/index.js.map +1 -1
  51. package/dist/src/services/liquidity-pool/srb/index.js.map +1 -1
  52. package/dist/src/services/liquidity-pool/sui/index.d.ts +19 -0
  53. package/dist/src/services/liquidity-pool/sui/index.js +216 -0
  54. package/dist/src/services/liquidity-pool/sui/index.js.map +1 -0
  55. package/dist/src/services/liquidity-pool/trx/index.js.map +1 -1
  56. package/dist/src/services/models/index.d.ts +1 -0
  57. package/dist/src/services/models/index.js.map +1 -1
  58. package/dist/src/services/models/srb/bridge-contract.js.map +1 -1
  59. package/dist/src/services/models/srb/gas-oracle-contract.js.map +1 -1
  60. package/dist/src/services/models/srb/messenger-contract.js.map +1 -1
  61. package/dist/src/services/models/srb/pool-contract.js.map +1 -1
  62. package/dist/src/services/models/srb/token-contract.js.map +1 -1
  63. package/dist/src/services/models/sui/_dependencies/source/0x1/ascii/structs.d.ts +91 -0
  64. package/dist/src/services/models/sui/_dependencies/source/0x1/ascii/structs.js +292 -0
  65. package/dist/src/services/models/sui/_dependencies/source/0x1/ascii/structs.js.map +1 -0
  66. package/dist/src/services/models/sui/_dependencies/source/0x1/bit-vector/structs.d.ts +55 -0
  67. package/dist/src/services/models/sui/_dependencies/source/0x1/bit-vector/structs.js +172 -0
  68. package/dist/src/services/models/sui/_dependencies/source/0x1/bit-vector/structs.js.map +1 -0
  69. package/dist/src/services/models/sui/_dependencies/source/0x1/fixed-point32/structs.d.ts +45 -0
  70. package/dist/src/services/models/sui/_dependencies/source/0x1/fixed-point32/structs.js +141 -0
  71. package/dist/src/services/models/sui/_dependencies/source/0x1/fixed-point32/structs.js.map +1 -0
  72. package/dist/src/services/models/sui/_dependencies/source/0x1/index.d.ts +3 -0
  73. package/dist/src/services/models/sui/_dependencies/source/0x1/index.js +8 -0
  74. package/dist/src/services/models/sui/_dependencies/source/0x1/index.js.map +1 -0
  75. package/dist/src/services/models/sui/_dependencies/source/0x1/init.d.ts +2 -0
  76. package/dist/src/services/models/sui/_dependencies/source/0x1/init.js +47 -0
  77. package/dist/src/services/models/sui/_dependencies/source/0x1/init.js.map +1 -0
  78. package/dist/src/services/models/sui/_dependencies/source/0x1/option/structs.d.ts +51 -0
  79. package/dist/src/services/models/sui/_dependencies/source/0x1/option/structs.js +178 -0
  80. package/dist/src/services/models/sui/_dependencies/source/0x1/option/structs.js.map +1 -0
  81. package/dist/src/services/models/sui/_dependencies/source/0x1/string/structs.d.ts +49 -0
  82. package/dist/src/services/models/sui/_dependencies/source/0x1/string/structs.js +165 -0
  83. package/dist/src/services/models/sui/_dependencies/source/0x1/string/structs.js.map +1 -0
  84. package/dist/src/services/models/sui/_dependencies/source/0x1/type-name/structs.d.ts +52 -0
  85. package/dist/src/services/models/sui/_dependencies/source/0x1/type-name/structs.js +142 -0
  86. package/dist/src/services/models/sui/_dependencies/source/0x1/type-name/structs.js.map +1 -0
  87. package/dist/src/services/models/sui/_dependencies/source/0x1/uq32-32/structs.d.ts +45 -0
  88. package/dist/src/services/models/sui/_dependencies/source/0x1/uq32-32/structs.js +141 -0
  89. package/dist/src/services/models/sui/_dependencies/source/0x1/uq32-32/structs.js.map +1 -0
  90. package/dist/src/services/models/sui/_dependencies/source/0x1/uq64-64/structs.d.ts +45 -0
  91. package/dist/src/services/models/sui/_dependencies/source/0x1/uq64-64/structs.js +141 -0
  92. package/dist/src/services/models/sui/_dependencies/source/0x1/uq64-64/structs.js.map +1 -0
  93. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/burn-message/structs.d.ts +69 -0
  94. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/burn-message/structs.js +178 -0
  95. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/burn-message/structs.js.map +1 -0
  96. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/deposit-for-burn/structs.d.ts +186 -0
  97. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/deposit-for-burn/structs.js +381 -0
  98. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/deposit-for-burn/structs.js.map +1 -0
  99. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/handle-receive-message/structs.d.ts +142 -0
  100. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/handle-receive-message/structs.js +151 -0
  101. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/handle-receive-message/structs.js.map +1 -0
  102. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/index.d.ts +3 -0
  103. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/index.js +8 -0
  104. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/index.js.map +1 -0
  105. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/init.d.ts +2 -0
  106. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/init.js +41 -0
  107. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/init.js.map +1 -0
  108. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/message-transmitter-authenticator/structs.d.ts +45 -0
  109. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/message-transmitter-authenticator/structs.js +141 -0
  110. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/message-transmitter-authenticator/structs.js.map +1 -0
  111. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/state/structs.d.ts +190 -0
  112. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/state/structs.js +218 -0
  113. package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/state/structs.js.map +1 -0
  114. package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/index.d.ts +3 -0
  115. package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/index.js +8 -0
  116. package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/index.js.map +1 -0
  117. package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/init.d.ts +2 -0
  118. package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/init.js +37 -0
  119. package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/init.js.map +1 -0
  120. package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/mint-allowance/structs.d.ts +45 -0
  121. package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/mint-allowance/structs.js +154 -0
  122. package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/mint-allowance/structs.js.map +1 -0
  123. package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/treasury/structs.d.ts +270 -0
  124. package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/treasury/structs.js +623 -0
  125. package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/treasury/structs.js.map +1 -0
  126. package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/index.d.ts +3 -0
  127. package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/index.js +8 -0
  128. package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/index.js.map +1 -0
  129. package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/init.d.ts +2 -0
  130. package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/init.js +38 -0
  131. package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/init.js.map +1 -0
  132. package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/message/structs.d.ts +91 -0
  133. package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/message/structs.js +223 -0
  134. package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/message/structs.js.map +1 -0
  135. package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/receive-message/structs.d.ts +275 -0
  136. package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/receive-message/structs.js +500 -0
  137. package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/receive-message/structs.js.map +1 -0
  138. package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/state/structs.d.ts +151 -0
  139. package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/state/structs.js +234 -0
  140. package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/state/structs.js.map +1 -0
  141. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes20/structs.d.ts +49 -0
  142. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes20/structs.js +165 -0
  143. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes20/structs.js.map +1 -0
  144. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32/structs.d.ts +49 -0
  145. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32/structs.js +165 -0
  146. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32/structs.js.map +1 -0
  147. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed-vaas/structs.d.ts +76 -0
  148. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed-vaas/structs.js +167 -0
  149. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed-vaas/structs.js.map +1 -0
  150. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/cursor/structs.d.ts +50 -0
  151. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/cursor/structs.js +177 -0
  152. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/cursor/structs.js.map +1 -0
  153. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/emitter/structs.d.ts +106 -0
  154. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/emitter/structs.js +280 -0
  155. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/emitter/structs.js.map +1 -0
  156. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external-address/structs.d.ts +56 -0
  157. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external-address/structs.js +142 -0
  158. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external-address/structs.js.map +1 -0
  159. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/fee-collector/structs.d.ts +62 -0
  160. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/fee-collector/structs.js +174 -0
  161. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/fee-collector/structs.js.map +1 -0
  162. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/guardian/structs.d.ts +56 -0
  163. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/guardian/structs.js +142 -0
  164. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/guardian/structs.js.map +1 -0
  165. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/guardian-set/structs.d.ts +80 -0
  166. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/guardian-set/structs.js +180 -0
  167. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/guardian-set/structs.js.map +1 -0
  168. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/index.d.ts +3 -0
  169. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/index.js +8 -0
  170. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/index.js.map +1 -0
  171. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/init.d.ts +2 -0
  172. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/init.js +59 -0
  173. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/init.js.map +1 -0
  174. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/publish-message/structs.d.ts +150 -0
  175. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/publish-message/structs.js +353 -0
  176. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/publish-message/structs.js.map +1 -0
  177. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set/structs.d.ts +109 -0
  178. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set/structs.js +308 -0
  179. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set/structs.js.map +1 -0
  180. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/state/structs.d.ts +235 -0
  181. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/state/structs.js +228 -0
  182. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/state/structs.js.map +1 -0
  183. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/vaa/structs.d.ts +127 -0
  184. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/vaa/structs.js +223 -0
  185. package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/vaa/structs.js.map +1 -0
  186. package/dist/src/services/models/sui/_framework/init-loader.d.ts +2 -0
  187. package/dist/src/services/models/sui/_framework/init-loader.js +57 -0
  188. package/dist/src/services/models/sui/_framework/init-loader.js.map +1 -0
  189. package/dist/src/services/models/sui/_framework/loader.d.ts +17 -0
  190. package/dist/src/services/models/sui/_framework/loader.js +56 -0
  191. package/dist/src/services/models/sui/_framework/loader.js.map +1 -0
  192. package/dist/src/services/models/sui/_framework/reified.d.ts +108 -0
  193. package/dist/src/services/models/sui/_framework/reified.js +239 -0
  194. package/dist/src/services/models/sui/_framework/reified.js.map +1 -0
  195. package/dist/src/services/models/sui/_framework/util.d.ts +86 -0
  196. package/dist/src/services/models/sui/_framework/util.js +333 -0
  197. package/dist/src/services/models/sui/_framework/util.js.map +1 -0
  198. package/dist/src/services/models/sui/_framework/vector.d.ts +35 -0
  199. package/dist/src/services/models/sui/_framework/vector.js +82 -0
  200. package/dist/src/services/models/sui/_framework/vector.js.map +1 -0
  201. package/dist/src/services/models/sui/bridge/another-bridge/functions.d.ts +30 -0
  202. package/dist/src/services/models/sui/bridge/another-bridge/functions.js +69 -0
  203. package/dist/src/services/models/sui/bridge/another-bridge/functions.js.map +1 -0
  204. package/dist/src/services/models/sui/bridge/another-bridge/structs.d.ts +98 -0
  205. package/dist/src/services/models/sui/bridge/another-bridge/structs.js +181 -0
  206. package/dist/src/services/models/sui/bridge/another-bridge/structs.js.map +1 -0
  207. package/dist/src/services/models/sui/bridge/bridge/functions.d.ts +153 -0
  208. package/dist/src/services/models/sui/bridge/bridge/functions.js +284 -0
  209. package/dist/src/services/models/sui/bridge/bridge/functions.js.map +1 -0
  210. package/dist/src/services/models/sui/bridge/bridge/structs.d.ts +383 -0
  211. package/dist/src/services/models/sui/bridge/bridge/structs.js +624 -0
  212. package/dist/src/services/models/sui/bridge/bridge/structs.js.map +1 -0
  213. package/dist/src/services/models/sui/bridge/bridge-interface/functions.d.ts +257 -0
  214. package/dist/src/services/models/sui/bridge/bridge-interface/functions.js +486 -0
  215. package/dist/src/services/models/sui/bridge/bridge-interface/functions.js.map +1 -0
  216. package/dist/src/services/models/sui/bridge/events/functions.d.ts +58 -0
  217. package/dist/src/services/models/sui/bridge/events/functions.js +103 -0
  218. package/dist/src/services/models/sui/bridge/events/functions.js.map +1 -0
  219. package/dist/src/services/models/sui/bridge/events/structs.d.ts +652 -0
  220. package/dist/src/services/models/sui/bridge/events/structs.js +1430 -0
  221. package/dist/src/services/models/sui/bridge/events/structs.js.map +1 -0
  222. package/dist/src/services/models/sui/bridge/index.d.ts +14 -0
  223. package/dist/src/services/models/sui/bridge/index.js +34 -0
  224. package/dist/src/services/models/sui/bridge/index.js.map +1 -0
  225. package/dist/src/services/models/sui/bridge/init.d.ts +2 -0
  226. package/dist/src/services/models/sui/bridge/init.js +57 -0
  227. package/dist/src/services/models/sui/bridge/init.js.map +1 -0
  228. package/dist/src/services/models/sui/bridge/pool/functions.d.ts +86 -0
  229. package/dist/src/services/models/sui/bridge/pool/functions.js +215 -0
  230. package/dist/src/services/models/sui/bridge/pool/functions.js.map +1 -0
  231. package/dist/src/services/models/sui/bridge/pool/structs.d.ts +271 -0
  232. package/dist/src/services/models/sui/bridge/pool/structs.js +467 -0
  233. package/dist/src/services/models/sui/bridge/pool/structs.js.map +1 -0
  234. package/dist/src/services/models/sui/bridge/pool-rewards/functions.d.ts +37 -0
  235. package/dist/src/services/models/sui/bridge/pool-rewards/functions.js +86 -0
  236. package/dist/src/services/models/sui/bridge/pool-rewards/functions.js.map +1 -0
  237. package/dist/src/services/models/sui/bridge/pool-rewards/structs.d.ts +86 -0
  238. package/dist/src/services/models/sui/bridge/pool-rewards/structs.js +181 -0
  239. package/dist/src/services/models/sui/bridge/pool-rewards/structs.js.map +1 -0
  240. package/dist/src/services/models/sui/bridge/pool-state/functions.d.ts +59 -0
  241. package/dist/src/services/models/sui/bridge/pool-state/functions.js +171 -0
  242. package/dist/src/services/models/sui/bridge/pool-state/functions.js.map +1 -0
  243. package/dist/src/services/models/sui/bridge/pool-state/structs.d.ts +69 -0
  244. package/dist/src/services/models/sui/bridge/pool-state/structs.js +180 -0
  245. package/dist/src/services/models/sui/bridge/pool-state/structs.js.map +1 -0
  246. package/dist/src/services/models/sui/bridge/user-deposit/functions.d.ts +22 -0
  247. package/dist/src/services/models/sui/bridge/user-deposit/functions.js +62 -0
  248. package/dist/src/services/models/sui/bridge/user-deposit/functions.js.map +1 -0
  249. package/dist/src/services/models/sui/bridge/user-deposit/structs.d.ts +66 -0
  250. package/dist/src/services/models/sui/bridge/user-deposit/structs.js +167 -0
  251. package/dist/src/services/models/sui/bridge/user-deposit/structs.js.map +1 -0
  252. package/dist/src/services/models/sui/cctp-bridge/cctp-bridge/functions.d.ts +102 -0
  253. package/dist/src/services/models/sui/cctp-bridge/cctp-bridge/functions.js +178 -0
  254. package/dist/src/services/models/sui/cctp-bridge/cctp-bridge/functions.js.map +1 -0
  255. package/dist/src/services/models/sui/cctp-bridge/cctp-bridge/structs.d.ts +281 -0
  256. package/dist/src/services/models/sui/cctp-bridge/cctp-bridge/structs.js +472 -0
  257. package/dist/src/services/models/sui/cctp-bridge/cctp-bridge/structs.js.map +1 -0
  258. package/dist/src/services/models/sui/cctp-bridge/cctp-bridge-interface/functions.d.ts +103 -0
  259. package/dist/src/services/models/sui/cctp-bridge/cctp-bridge-interface/functions.js +160 -0
  260. package/dist/src/services/models/sui/cctp-bridge/cctp-bridge-interface/functions.js.map +1 -0
  261. package/dist/src/services/models/sui/cctp-bridge/events/functions.d.ts +30 -0
  262. package/dist/src/services/models/sui/cctp-bridge/events/functions.js +54 -0
  263. package/dist/src/services/models/sui/cctp-bridge/events/functions.js.map +1 -0
  264. package/dist/src/services/models/sui/cctp-bridge/events/structs.d.ts +310 -0
  265. package/dist/src/services/models/sui/cctp-bridge/events/structs.js +656 -0
  266. package/dist/src/services/models/sui/cctp-bridge/events/structs.js.map +1 -0
  267. package/dist/src/services/models/sui/cctp-bridge/index.d.ts +14 -0
  268. package/dist/src/services/models/sui/cctp-bridge/index.js +34 -0
  269. package/dist/src/services/models/sui/cctp-bridge/index.js.map +1 -0
  270. package/dist/src/services/models/sui/cctp-bridge/init.d.ts +2 -0
  271. package/dist/src/services/models/sui/cctp-bridge/init.js +41 -0
  272. package/dist/src/services/models/sui/cctp-bridge/init.js.map +1 -0
  273. package/dist/src/services/models/sui/cctp-bridge/message-transmitter-authenticator/functions.d.ts +2 -0
  274. package/dist/src/services/models/sui/cctp-bridge/message-transmitter-authenticator/functions.js +12 -0
  275. package/dist/src/services/models/sui/cctp-bridge/message-transmitter-authenticator/functions.js.map +1 -0
  276. package/dist/src/services/models/sui/cctp-bridge/message-transmitter-authenticator/structs.d.ts +45 -0
  277. package/dist/src/services/models/sui/cctp-bridge/message-transmitter-authenticator/structs.js +141 -0
  278. package/dist/src/services/models/sui/cctp-bridge/message-transmitter-authenticator/structs.js.map +1 -0
  279. package/dist/src/services/models/sui/gas-oracle/gas-oracle/functions.d.ts +61 -0
  280. package/dist/src/services/models/sui/gas-oracle/gas-oracle/functions.js +128 -0
  281. package/dist/src/services/models/sui/gas-oracle/gas-oracle/functions.js.map +1 -0
  282. package/dist/src/services/models/sui/gas-oracle/gas-oracle/structs.d.ts +180 -0
  283. package/dist/src/services/models/sui/gas-oracle/gas-oracle/structs.js +443 -0
  284. package/dist/src/services/models/sui/gas-oracle/gas-oracle/structs.js.map +1 -0
  285. package/dist/src/services/models/sui/gas-oracle/gas-oracle-interface/functions.d.ts +69 -0
  286. package/dist/src/services/models/sui/gas-oracle/gas-oracle-interface/functions.js +118 -0
  287. package/dist/src/services/models/sui/gas-oracle/gas-oracle-interface/functions.js.map +1 -0
  288. package/dist/src/services/models/sui/gas-oracle/index.d.ts +14 -0
  289. package/dist/src/services/models/sui/gas-oracle/index.js +34 -0
  290. package/dist/src/services/models/sui/gas-oracle/index.js.map +1 -0
  291. package/dist/src/services/models/sui/gas-oracle/init.d.ts +2 -0
  292. package/dist/src/services/models/sui/gas-oracle/init.js +34 -0
  293. package/dist/src/services/models/sui/gas-oracle/init.js.map +1 -0
  294. package/dist/src/services/models/sui/messenger/events/functions.d.ts +3 -0
  295. package/dist/src/services/models/sui/messenger/events/functions.js +20 -0
  296. package/dist/src/services/models/sui/messenger/events/functions.js.map +1 -0
  297. package/dist/src/services/models/sui/messenger/events/structs.d.ts +100 -0
  298. package/dist/src/services/models/sui/messenger/events/structs.js +273 -0
  299. package/dist/src/services/models/sui/messenger/events/structs.js.map +1 -0
  300. package/dist/src/services/models/sui/messenger/index.d.ts +14 -0
  301. package/dist/src/services/models/sui/messenger/index.js +34 -0
  302. package/dist/src/services/models/sui/messenger/index.js.map +1 -0
  303. package/dist/src/services/models/sui/messenger/init.d.ts +2 -0
  304. package/dist/src/services/models/sui/messenger/init.js +36 -0
  305. package/dist/src/services/models/sui/messenger/init.js.map +1 -0
  306. package/dist/src/services/models/sui/messenger/messenger/functions.d.ts +66 -0
  307. package/dist/src/services/models/sui/messenger/messenger/functions.js +143 -0
  308. package/dist/src/services/models/sui/messenger/messenger/functions.js.map +1 -0
  309. package/dist/src/services/models/sui/messenger/messenger/structs.d.ts +269 -0
  310. package/dist/src/services/models/sui/messenger/messenger/structs.js +351 -0
  311. package/dist/src/services/models/sui/messenger/messenger/structs.js.map +1 -0
  312. package/dist/src/services/models/sui/messenger/messenger-interface/functions.d.ts +81 -0
  313. package/dist/src/services/models/sui/messenger/messenger-interface/functions.js +127 -0
  314. package/dist/src/services/models/sui/messenger/messenger-interface/functions.js.map +1 -0
  315. package/dist/src/services/models/sui/sui/address/functions.d.ts +11 -0
  316. package/dist/src/services/models/sui/sui/address/functions.js +76 -0
  317. package/dist/src/services/models/sui/sui/address/functions.js.map +1 -0
  318. package/dist/src/services/models/sui/sui/authenticator-state/functions.d.ts +42 -0
  319. package/dist/src/services/models/sui/sui/authenticator-state/functions.js +99 -0
  320. package/dist/src/services/models/sui/sui/authenticator-state/functions.js.map +1 -0
  321. package/dist/src/services/models/sui/sui/authenticator-state/structs.d.ts +463 -0
  322. package/dist/src/services/models/sui/sui/authenticator-state/structs.js +747 -0
  323. package/dist/src/services/models/sui/sui/authenticator-state/structs.js.map +1 -0
  324. package/dist/src/services/models/sui/sui/bag/functions.d.ts +37 -0
  325. package/dist/src/services/models/sui/sui/bag/functions.js +79 -0
  326. package/dist/src/services/models/sui/sui/bag/functions.js.map +1 -0
  327. package/dist/src/services/models/sui/sui/bag/structs.d.ts +60 -0
  328. package/dist/src/services/models/sui/sui/bag/structs.js +149 -0
  329. package/dist/src/services/models/sui/sui/bag/structs.js.map +1 -0
  330. package/dist/src/services/models/sui/sui/balance/functions.d.ts +31 -0
  331. package/dist/src/services/models/sui/sui/balance/functions.js +110 -0
  332. package/dist/src/services/models/sui/sui/balance/functions.js.map +1 -0
  333. package/dist/src/services/models/sui/sui/balance/structs.d.ts +87 -0
  334. package/dist/src/services/models/sui/sui/balance/structs.js +294 -0
  335. package/dist/src/services/models/sui/sui/balance/structs.js.map +1 -0
  336. package/dist/src/services/models/sui/sui/bcs/functions.d.ts +31 -0
  337. package/dist/src/services/models/sui/sui/bcs/functions.js +210 -0
  338. package/dist/src/services/models/sui/sui/bcs/functions.js.map +1 -0
  339. package/dist/src/services/models/sui/sui/bcs/structs.d.ts +49 -0
  340. package/dist/src/services/models/sui/sui/bcs/structs.js +165 -0
  341. package/dist/src/services/models/sui/sui/bcs/structs.js.map +1 -0
  342. package/dist/src/services/models/sui/sui/bls12381/functions.d.ts +130 -0
  343. package/dist/src/services/models/sui/sui/bls12381/functions.js +323 -0
  344. package/dist/src/services/models/sui/sui/bls12381/functions.js.map +1 -0
  345. package/dist/src/services/models/sui/sui/bls12381/structs.d.ts +213 -0
  346. package/dist/src/services/models/sui/sui/bls12381/structs.js +665 -0
  347. package/dist/src/services/models/sui/sui/bls12381/structs.js.map +1 -0
  348. package/dist/src/services/models/sui/sui/borrow/functions.d.ts +11 -0
  349. package/dist/src/services/models/sui/sui/borrow/functions.js +38 -0
  350. package/dist/src/services/models/sui/sui/borrow/functions.js.map +1 -0
  351. package/dist/src/services/models/sui/sui/borrow/structs.d.ts +116 -0
  352. package/dist/src/services/models/sui/sui/borrow/structs.js +306 -0
  353. package/dist/src/services/models/sui/sui/borrow/structs.js.map +1 -0
  354. package/dist/src/services/models/sui/sui/clock/functions.d.ts +8 -0
  355. package/dist/src/services/models/sui/sui/clock/functions.js +27 -0
  356. package/dist/src/services/models/sui/sui/clock/functions.js.map +1 -0
  357. package/dist/src/services/models/sui/sui/clock/structs.d.ts +60 -0
  358. package/dist/src/services/models/sui/sui/clock/structs.js +149 -0
  359. package/dist/src/services/models/sui/sui/clock/structs.js.map +1 -0
  360. package/dist/src/services/models/sui/sui/coin/functions.d.ts +174 -0
  361. package/dist/src/services/models/sui/sui/coin/functions.js +391 -0
  362. package/dist/src/services/models/sui/sui/coin/functions.js.map +1 -0
  363. package/dist/src/services/models/sui/sui/coin/structs.d.ts +467 -0
  364. package/dist/src/services/models/sui/sui/coin/structs.js +1084 -0
  365. package/dist/src/services/models/sui/sui/coin/structs.js.map +1 -0
  366. package/dist/src/services/models/sui/sui/config/functions.d.ts +54 -0
  367. package/dist/src/services/models/sui/sui/config/functions.js +108 -0
  368. package/dist/src/services/models/sui/sui/config/functions.js.map +1 -0
  369. package/dist/src/services/models/sui/sui/config/structs.d.ts +198 -0
  370. package/dist/src/services/models/sui/sui/config/structs.js +454 -0
  371. package/dist/src/services/models/sui/sui/config/structs.js.map +1 -0
  372. package/dist/src/services/models/sui/sui/deny-list/functions.d.ts +124 -0
  373. package/dist/src/services/models/sui/sui/deny-list/functions.js +188 -0
  374. package/dist/src/services/models/sui/sui/deny-list/functions.js.map +1 -0
  375. package/dist/src/services/models/sui/sui/deny-list/structs.d.ts +429 -0
  376. package/dist/src/services/models/sui/sui/deny-list/structs.js +993 -0
  377. package/dist/src/services/models/sui/sui/deny-list/structs.js.map +1 -0
  378. package/dist/src/services/models/sui/sui/display/functions.d.ts +43 -0
  379. package/dist/src/services/models/sui/sui/display/functions.js +131 -0
  380. package/dist/src/services/models/sui/sui/display/functions.js.map +1 -0
  381. package/dist/src/services/models/sui/sui/display/structs.d.ts +256 -0
  382. package/dist/src/services/models/sui/sui/display/structs.js +471 -0
  383. package/dist/src/services/models/sui/sui/display/structs.js.map +1 -0
  384. package/dist/src/services/models/sui/sui/dynamic-field/functions.d.ts +83 -0
  385. package/dist/src/services/models/sui/sui/dynamic-field/functions.js +137 -0
  386. package/dist/src/services/models/sui/sui/dynamic-field/functions.js.map +1 -0
  387. package/dist/src/services/models/sui/sui/dynamic-field/structs.d.ts +67 -0
  388. package/dist/src/services/models/sui/sui/dynamic-field/structs.js +169 -0
  389. package/dist/src/services/models/sui/sui/dynamic-field/structs.js.map +1 -0
  390. package/dist/src/services/models/sui/sui/dynamic-object-field/functions.d.ts +64 -0
  391. package/dist/src/services/models/sui/sui/dynamic-object-field/functions.js +110 -0
  392. package/dist/src/services/models/sui/sui/dynamic-object-field/functions.js.map +1 -0
  393. package/dist/src/services/models/sui/sui/dynamic-object-field/structs.d.ts +46 -0
  394. package/dist/src/services/models/sui/sui/dynamic-object-field/structs.js +153 -0
  395. package/dist/src/services/models/sui/sui/dynamic-object-field/structs.js.map +1 -0
  396. package/dist/src/services/models/sui/sui/ecdsa-k1/functions.d.ts +15 -0
  397. package/dist/src/services/models/sui/sui/ecdsa-k1/functions.js +32 -0
  398. package/dist/src/services/models/sui/sui/ecdsa-k1/functions.js.map +1 -0
  399. package/dist/src/services/models/sui/sui/ecdsa-r1/functions.d.ts +14 -0
  400. package/dist/src/services/models/sui/sui/ecdsa-r1/functions.js +25 -0
  401. package/dist/src/services/models/sui/sui/ecdsa-r1/functions.js.map +1 -0
  402. package/dist/src/services/models/sui/sui/ecvrf/functions.d.ts +8 -0
  403. package/dist/src/services/models/sui/sui/ecvrf/functions.js +18 -0
  404. package/dist/src/services/models/sui/sui/ecvrf/functions.js.map +1 -0
  405. package/dist/src/services/models/sui/sui/ed25519/functions.d.ts +7 -0
  406. package/dist/src/services/models/sui/sui/ed25519/functions.js +17 -0
  407. package/dist/src/services/models/sui/sui/ed25519/functions.js.map +1 -0
  408. package/dist/src/services/models/sui/sui/event/functions.d.ts +3 -0
  409. package/dist/src/services/models/sui/sui/event/functions.js +14 -0
  410. package/dist/src/services/models/sui/sui/event/functions.js.map +1 -0
  411. package/dist/src/services/models/sui/sui/groth16/functions.d.ts +40 -0
  412. package/dist/src/services/models/sui/sui/groth16/functions.js +94 -0
  413. package/dist/src/services/models/sui/sui/groth16/functions.js.map +1 -0
  414. package/dist/src/services/models/sui/sui/groth16/structs.d.ts +203 -0
  415. package/dist/src/services/models/sui/sui/groth16/structs.js +575 -0
  416. package/dist/src/services/models/sui/sui/groth16/structs.js.map +1 -0
  417. package/dist/src/services/models/sui/sui/group-ops/functions.d.ts +128 -0
  418. package/dist/src/services/models/sui/sui/group-ops/functions.js +184 -0
  419. package/dist/src/services/models/sui/sui/group-ops/functions.js.map +1 -0
  420. package/dist/src/services/models/sui/sui/group-ops/structs.d.ts +49 -0
  421. package/dist/src/services/models/sui/sui/group-ops/structs.js +176 -0
  422. package/dist/src/services/models/sui/sui/group-ops/structs.js.map +1 -0
  423. package/dist/src/services/models/sui/sui/hash/functions.d.ts +3 -0
  424. package/dist/src/services/models/sui/sui/hash/functions.js +20 -0
  425. package/dist/src/services/models/sui/sui/hash/functions.js.map +1 -0
  426. package/dist/src/services/models/sui/sui/hex/functions.d.ts +4 -0
  427. package/dist/src/services/models/sui/sui/hex/functions.js +27 -0
  428. package/dist/src/services/models/sui/sui/hex/functions.js.map +1 -0
  429. package/dist/src/services/models/sui/sui/hmac/functions.d.ts +6 -0
  430. package/dist/src/services/models/sui/sui/hmac/functions.js +13 -0
  431. package/dist/src/services/models/sui/sui/hmac/functions.js.map +1 -0
  432. package/dist/src/services/models/sui/sui/index.d.ts +3 -0
  433. package/dist/src/services/models/sui/sui/index.js +8 -0
  434. package/dist/src/services/models/sui/sui/index.js.map +1 -0
  435. package/dist/src/services/models/sui/sui/init.d.ts +2 -0
  436. package/dist/src/services/models/sui/sui/init.js +163 -0
  437. package/dist/src/services/models/sui/sui/init.js.map +1 -0
  438. package/dist/src/services/models/sui/sui/kiosk/functions.d.ts +179 -0
  439. package/dist/src/services/models/sui/sui/kiosk/functions.js +327 -0
  440. package/dist/src/services/models/sui/sui/kiosk/functions.js.map +1 -0
  441. package/dist/src/services/models/sui/sui/kiosk/structs.d.ts +605 -0
  442. package/dist/src/services/models/sui/sui/kiosk/structs.js +1501 -0
  443. package/dist/src/services/models/sui/sui/kiosk/structs.js.map +1 -0
  444. package/dist/src/services/models/sui/sui/kiosk-extension/functions.d.ts +54 -0
  445. package/dist/src/services/models/sui/sui/kiosk-extension/functions.js +133 -0
  446. package/dist/src/services/models/sui/sui/kiosk-extension/functions.js.map +1 -0
  447. package/dist/src/services/models/sui/sui/kiosk-extension/structs.d.ts +120 -0
  448. package/dist/src/services/models/sui/sui/kiosk-extension/structs.js +298 -0
  449. package/dist/src/services/models/sui/sui/kiosk-extension/structs.js.map +1 -0
  450. package/dist/src/services/models/sui/sui/linked-table/functions.d.ts +53 -0
  451. package/dist/src/services/models/sui/sui/linked-table/functions.js +142 -0
  452. package/dist/src/services/models/sui/sui/linked-table/functions.js.map +1 -0
  453. package/dist/src/services/models/sui/sui/linked-table/structs.d.ts +168 -0
  454. package/dist/src/services/models/sui/sui/linked-table/structs.js +335 -0
  455. package/dist/src/services/models/sui/sui/linked-table/structs.js.map +1 -0
  456. package/dist/src/services/models/sui/sui/math/functions.d.ts +28 -0
  457. package/dist/src/services/models/sui/sui/math/functions.js +55 -0
  458. package/dist/src/services/models/sui/sui/math/functions.js.map +1 -0
  459. package/dist/src/services/models/sui/sui/object/functions.d.ts +26 -0
  460. package/dist/src/services/models/sui/sui/object/functions.js +177 -0
  461. package/dist/src/services/models/sui/sui/object/functions.js.map +1 -0
  462. package/dist/src/services/models/sui/sui/object/structs.d.ts +91 -0
  463. package/dist/src/services/models/sui/sui/object/structs.js +273 -0
  464. package/dist/src/services/models/sui/sui/object/structs.js.map +1 -0
  465. package/dist/src/services/models/sui/sui/object-bag/functions.d.ts +42 -0
  466. package/dist/src/services/models/sui/sui/object-bag/functions.js +90 -0
  467. package/dist/src/services/models/sui/sui/object-bag/functions.js.map +1 -0
  468. package/dist/src/services/models/sui/sui/object-bag/structs.d.ts +60 -0
  469. package/dist/src/services/models/sui/sui/object-bag/structs.js +149 -0
  470. package/dist/src/services/models/sui/sui/object-bag/structs.js.map +1 -0
  471. package/dist/src/services/models/sui/sui/object-table/functions.d.ts +37 -0
  472. package/dist/src/services/models/sui/sui/object-table/functions.js +86 -0
  473. package/dist/src/services/models/sui/sui/object-table/functions.js.map +1 -0
  474. package/dist/src/services/models/sui/sui/object-table/structs.d.ts +60 -0
  475. package/dist/src/services/models/sui/sui/object-table/structs.js +162 -0
  476. package/dist/src/services/models/sui/sui/object-table/structs.js.map +1 -0
  477. package/dist/src/services/models/sui/sui/package/functions.d.ts +39 -0
  478. package/dist/src/services/models/sui/sui/package/functions.js +178 -0
  479. package/dist/src/services/models/sui/sui/package/functions.js.map +1 -0
  480. package/dist/src/services/models/sui/sui/package/structs.d.ts +279 -0
  481. package/dist/src/services/models/sui/sui/package/structs.js +623 -0
  482. package/dist/src/services/models/sui/sui/package/structs.js.map +1 -0
  483. package/dist/src/services/models/sui/sui/pay/functions.d.ts +38 -0
  484. package/dist/src/services/models/sui/sui/pay/functions.js +71 -0
  485. package/dist/src/services/models/sui/sui/pay/functions.js.map +1 -0
  486. package/dist/src/services/models/sui/sui/poseidon/functions.d.ts +3 -0
  487. package/dist/src/services/models/sui/sui/poseidon/functions.js +20 -0
  488. package/dist/src/services/models/sui/sui/poseidon/functions.js.map +1 -0
  489. package/dist/src/services/models/sui/sui/priority-queue/functions.d.ts +32 -0
  490. package/dist/src/services/models/sui/sui/priority-queue/functions.js +75 -0
  491. package/dist/src/services/models/sui/sui/priority-queue/functions.js.map +1 -0
  492. package/dist/src/services/models/sui/sui/priority-queue/structs.d.ts +110 -0
  493. package/dist/src/services/models/sui/sui/priority-queue/structs.js +329 -0
  494. package/dist/src/services/models/sui/sui/priority-queue/structs.js.map +1 -0
  495. package/dist/src/services/models/sui/sui/random/functions.d.ts +73 -0
  496. package/dist/src/services/models/sui/sui/random/functions.js +173 -0
  497. package/dist/src/services/models/sui/sui/random/functions.js.map +1 -0
  498. package/dist/src/services/models/sui/sui/random/structs.d.ts +203 -0
  499. package/dist/src/services/models/sui/sui/random/structs.js +471 -0
  500. package/dist/src/services/models/sui/sui/random/structs.js.map +1 -0
  501. package/dist/src/services/models/sui/sui/sui/functions.d.ts +7 -0
  502. package/dist/src/services/models/sui/sui/sui/functions.js +17 -0
  503. package/dist/src/services/models/sui/sui/sui/functions.js.map +1 -0
  504. package/dist/src/services/models/sui/sui/sui/structs.d.ts +45 -0
  505. package/dist/src/services/models/sui/sui/sui/structs.js +141 -0
  506. package/dist/src/services/models/sui/sui/sui/structs.js.map +1 -0
  507. package/dist/src/services/models/sui/sui/table/functions.d.ts +33 -0
  508. package/dist/src/services/models/sui/sui/table/functions.js +86 -0
  509. package/dist/src/services/models/sui/sui/table/functions.js.map +1 -0
  510. package/dist/src/services/models/sui/sui/table/structs.d.ts +60 -0
  511. package/dist/src/services/models/sui/sui/table/structs.js +162 -0
  512. package/dist/src/services/models/sui/sui/table/structs.js.map +1 -0
  513. package/dist/src/services/models/sui/sui/table-vec/functions.d.ts +35 -0
  514. package/dist/src/services/models/sui/sui/table-vec/functions.js +102 -0
  515. package/dist/src/services/models/sui/sui/table-vec/functions.js.map +1 -0
  516. package/dist/src/services/models/sui/sui/table-vec/structs.d.ts +67 -0
  517. package/dist/src/services/models/sui/sui/table-vec/structs.js +177 -0
  518. package/dist/src/services/models/sui/sui/table-vec/structs.js.map +1 -0
  519. package/dist/src/services/models/sui/sui/token/functions.d.ts +144 -0
  520. package/dist/src/services/models/sui/sui/token/functions.js +375 -0
  521. package/dist/src/services/models/sui/sui/token/functions.js.map +1 -0
  522. package/dist/src/services/models/sui/sui/token/structs.d.ts +460 -0
  523. package/dist/src/services/models/sui/sui/token/structs.js +951 -0
  524. package/dist/src/services/models/sui/sui/token/structs.js.map +1 -0
  525. package/dist/src/services/models/sui/sui/transfer/functions.d.ts +40 -0
  526. package/dist/src/services/models/sui/sui/transfer/functions.js +115 -0
  527. package/dist/src/services/models/sui/sui/transfer/functions.js.map +1 -0
  528. package/dist/src/services/models/sui/sui/transfer/structs.d.ts +56 -0
  529. package/dist/src/services/models/sui/sui/transfer/structs.js +160 -0
  530. package/dist/src/services/models/sui/sui/transfer/structs.js.map +1 -0
  531. package/dist/src/services/models/sui/sui/transfer-policy/functions.d.ts +65 -0
  532. package/dist/src/services/models/sui/sui/transfer-policy/functions.js +161 -0
  533. package/dist/src/services/models/sui/sui/transfer-policy/functions.js.map +1 -0
  534. package/dist/src/services/models/sui/sui/transfer-policy/structs.d.ts +369 -0
  535. package/dist/src/services/models/sui/sui/transfer-policy/structs.js +941 -0
  536. package/dist/src/services/models/sui/sui/transfer-policy/structs.js.map +1 -0
  537. package/dist/src/services/models/sui/sui/tx-context/functions.d.ts +12 -0
  538. package/dist/src/services/models/sui/sui/tx-context/functions.js +55 -0
  539. package/dist/src/services/models/sui/sui/tx-context/functions.js.map +1 -0
  540. package/dist/src/services/models/sui/sui/tx-context/structs.d.ts +73 -0
  541. package/dist/src/services/models/sui/sui/tx-context/structs.js +196 -0
  542. package/dist/src/services/models/sui/sui/tx-context/structs.js.map +1 -0
  543. package/dist/src/services/models/sui/sui/types/functions.d.ts +3 -0
  544. package/dist/src/services/models/sui/sui/types/functions.js +14 -0
  545. package/dist/src/services/models/sui/sui/types/functions.js.map +1 -0
  546. package/dist/src/services/models/sui/sui/url/functions.d.ts +9 -0
  547. package/dist/src/services/models/sui/sui/url/functions.js +35 -0
  548. package/dist/src/services/models/sui/sui/url/functions.js.map +1 -0
  549. package/dist/src/services/models/sui/sui/url/structs.d.ts +52 -0
  550. package/dist/src/services/models/sui/sui/url/structs.js +142 -0
  551. package/dist/src/services/models/sui/sui/url/structs.js.map +1 -0
  552. package/dist/src/services/models/sui/sui/vdf/functions.d.ts +17 -0
  553. package/dist/src/services/models/sui/sui/vdf/functions.js +44 -0
  554. package/dist/src/services/models/sui/sui/vdf/functions.js.map +1 -0
  555. package/dist/src/services/models/sui/sui/vec-map/functions.d.ts +70 -0
  556. package/dist/src/services/models/sui/sui/vec-map/functions.js +158 -0
  557. package/dist/src/services/models/sui/sui/vec-map/functions.js.map +1 -0
  558. package/dist/src/services/models/sui/sui/vec-map/structs.d.ts +110 -0
  559. package/dist/src/services/models/sui/sui/vec-map/structs.js +329 -0
  560. package/dist/src/services/models/sui/sui/vec-map/structs.js.map +1 -0
  561. package/dist/src/services/models/sui/sui/vec-set/functions.d.ts +34 -0
  562. package/dist/src/services/models/sui/sui/vec-set/functions.js +102 -0
  563. package/dist/src/services/models/sui/sui/vec-set/functions.js.map +1 -0
  564. package/dist/src/services/models/sui/sui/vec-set/structs.d.ts +50 -0
  565. package/dist/src/services/models/sui/sui/vec-set/structs.js +177 -0
  566. package/dist/src/services/models/sui/sui/vec-set/structs.js.map +1 -0
  567. package/dist/src/services/models/sui/sui/versioned/functions.d.ts +19 -0
  568. package/dist/src/services/models/sui/sui/versioned/functions.js +66 -0
  569. package/dist/src/services/models/sui/sui/versioned/functions.js.map +1 -0
  570. package/dist/src/services/models/sui/sui/versioned/structs.d.ts +112 -0
  571. package/dist/src/services/models/sui/sui/versioned/structs.js +287 -0
  572. package/dist/src/services/models/sui/sui/versioned/structs.js.map +1 -0
  573. package/dist/src/services/models/sui/sui/zklogin-verified-id/functions.d.ts +33 -0
  574. package/dist/src/services/models/sui/sui/zklogin-verified-id/functions.js +90 -0
  575. package/dist/src/services/models/sui/sui/zklogin-verified-id/functions.js.map +1 -0
  576. package/dist/src/services/models/sui/sui/zklogin-verified-id/structs.d.ts +109 -0
  577. package/dist/src/services/models/sui/sui/zklogin-verified-id/structs.js +181 -0
  578. package/dist/src/services/models/sui/sui/zklogin-verified-id/structs.js.map +1 -0
  579. package/dist/src/services/models/sui/sui/zklogin-verified-issuer/functions.d.ts +21 -0
  580. package/dist/src/services/models/sui/sui/zklogin-verified-issuer/functions.js +57 -0
  581. package/dist/src/services/models/sui/sui/zklogin-verified-issuer/functions.js.map +1 -0
  582. package/dist/src/services/models/sui/sui/zklogin-verified-issuer/structs.d.ts +73 -0
  583. package/dist/src/services/models/sui/sui/zklogin-verified-issuer/structs.js +160 -0
  584. package/dist/src/services/models/sui/sui/zklogin-verified-issuer/structs.js.map +1 -0
  585. package/dist/src/services/models/sui/utils/bytes32/functions.d.ts +15 -0
  586. package/dist/src/services/models/sui/utils/bytes32/functions.js +107 -0
  587. package/dist/src/services/models/sui/utils/bytes32/functions.js.map +1 -0
  588. package/dist/src/services/models/sui/utils/bytes32/structs.d.ts +49 -0
  589. package/dist/src/services/models/sui/utils/bytes32/structs.js +165 -0
  590. package/dist/src/services/models/sui/utils/bytes32/structs.js.map +1 -0
  591. package/dist/src/services/models/sui/utils/fee-collector/functions.d.ts +16 -0
  592. package/dist/src/services/models/sui/utils/fee-collector/functions.js +46 -0
  593. package/dist/src/services/models/sui/utils/fee-collector/functions.js.map +1 -0
  594. package/dist/src/services/models/sui/utils/fee-collector/structs.d.ts +66 -0
  595. package/dist/src/services/models/sui/utils/fee-collector/structs.js +153 -0
  596. package/dist/src/services/models/sui/utils/fee-collector/structs.js.map +1 -0
  597. package/dist/src/services/models/sui/utils/index.d.ts +14 -0
  598. package/dist/src/services/models/sui/utils/index.js +34 -0
  599. package/dist/src/services/models/sui/utils/index.js.map +1 -0
  600. package/dist/src/services/models/sui/utils/init.d.ts +2 -0
  601. package/dist/src/services/models/sui/utils/init.js +43 -0
  602. package/dist/src/services/models/sui/utils/init.js.map +1 -0
  603. package/dist/src/services/models/sui/utils/message/functions.d.ts +33 -0
  604. package/dist/src/services/models/sui/utils/message/functions.js +87 -0
  605. package/dist/src/services/models/sui/utils/message/functions.js.map +1 -0
  606. package/dist/src/services/models/sui/utils/message/structs.d.ts +56 -0
  607. package/dist/src/services/models/sui/utils/message/structs.js +142 -0
  608. package/dist/src/services/models/sui/utils/message/structs.js.map +1 -0
  609. package/dist/src/services/models/sui/utils/messenger-protocol/functions.d.ts +4 -0
  610. package/dist/src/services/models/sui/utils/messenger-protocol/functions.js +27 -0
  611. package/dist/src/services/models/sui/utils/messenger-protocol/functions.js.map +1 -0
  612. package/dist/src/services/models/sui/utils/messenger-protocol/structs.d.ts +45 -0
  613. package/dist/src/services/models/sui/utils/messenger-protocol/structs.js +141 -0
  614. package/dist/src/services/models/sui/utils/messenger-protocol/structs.js.map +1 -0
  615. package/dist/src/services/models/sui/utils/set/functions.d.ts +19 -0
  616. package/dist/src/services/models/sui/utils/set/functions.js +46 -0
  617. package/dist/src/services/models/sui/utils/set/functions.js.map +1 -0
  618. package/dist/src/services/models/sui/utils/set/structs.d.ts +109 -0
  619. package/dist/src/services/models/sui/utils/set/structs.js +308 -0
  620. package/dist/src/services/models/sui/utils/set/structs.js.map +1 -0
  621. package/dist/src/services/models/sui/utils/version/functions.d.ts +19 -0
  622. package/dist/src/services/models/sui/utils/version/functions.js +30 -0
  623. package/dist/src/services/models/sui/utils/version/functions.js.map +1 -0
  624. package/dist/src/services/models/sui/utils/version/structs.d.ts +45 -0
  625. package/dist/src/services/models/sui/utils/version/structs.js +154 -0
  626. package/dist/src/services/models/sui/utils/version/structs.js.map +1 -0
  627. package/dist/src/services/models/sui/wormhole-messenger/events/functions.d.ts +11 -0
  628. package/dist/src/services/models/sui/wormhole-messenger/events/functions.js +20 -0
  629. package/dist/src/services/models/sui/wormhole-messenger/events/functions.js.map +1 -0
  630. package/dist/src/services/models/sui/wormhole-messenger/events/structs.d.ts +112 -0
  631. package/dist/src/services/models/sui/wormhole-messenger/events/structs.js +287 -0
  632. package/dist/src/services/models/sui/wormhole-messenger/events/structs.js.map +1 -0
  633. package/dist/src/services/models/sui/wormhole-messenger/index.d.ts +14 -0
  634. package/dist/src/services/models/sui/wormhole-messenger/index.js +34 -0
  635. package/dist/src/services/models/sui/wormhole-messenger/index.js.map +1 -0
  636. package/dist/src/services/models/sui/wormhole-messenger/init.d.ts +2 -0
  637. package/dist/src/services/models/sui/wormhole-messenger/init.js +36 -0
  638. package/dist/src/services/models/sui/wormhole-messenger/init.js.map +1 -0
  639. package/dist/src/services/models/sui/wormhole-messenger/wh-messenger-interface/functions.d.ts +85 -0
  640. package/dist/src/services/models/sui/wormhole-messenger/wh-messenger-interface/functions.js +139 -0
  641. package/dist/src/services/models/sui/wormhole-messenger/wh-messenger-interface/functions.js.map +1 -0
  642. package/dist/src/services/models/sui/wormhole-messenger/wormhole-messenger/functions.d.ts +79 -0
  643. package/dist/src/services/models/sui/wormhole-messenger/wormhole-messenger/functions.js +170 -0
  644. package/dist/src/services/models/sui/wormhole-messenger/wormhole-messenger/functions.js.map +1 -0
  645. package/dist/src/services/models/sui/wormhole-messenger/wormhole-messenger/structs.d.ts +278 -0
  646. package/dist/src/services/models/sui/wormhole-messenger/wormhole-messenger/structs.js +354 -0
  647. package/dist/src/services/models/sui/wormhole-messenger/wormhole-messenger/structs.js.map +1 -0
  648. package/dist/src/services/token/evm/index.js.map +1 -1
  649. package/dist/src/services/token/index.js +4 -0
  650. package/dist/src/services/token/index.js.map +1 -1
  651. package/dist/src/services/token/sol/index.js.map +1 -1
  652. package/dist/src/services/token/srb/index.js.map +1 -1
  653. package/dist/src/services/token/sui/index.d.ts +17 -0
  654. package/dist/src/services/token/sui/index.js +54 -0
  655. package/dist/src/services/token/sui/index.js.map +1 -0
  656. package/dist/src/services/token/trx/index.js.map +1 -1
  657. package/dist/src/services/utils/calculation/index.js.map +1 -1
  658. package/dist/src/services/utils/sol/accounts.js.map +1 -1
  659. package/dist/src/services/utils/sol/anchor-provider.js.map +1 -1
  660. package/dist/src/services/utils/sol/compute-budget.js.map +1 -1
  661. package/dist/src/services/utils/sol/index.js.map +1 -1
  662. package/dist/src/services/utils/sui/coins.d.ts +9 -0
  663. package/dist/src/services/utils/sui/coins.js +38 -0
  664. package/dist/src/services/utils/sui/coins.js.map +1 -0
  665. package/dist/src/services/utils/sui/paginated.d.ts +7 -0
  666. package/dist/src/services/utils/sui/paginated.js +14 -0
  667. package/dist/src/services/utils/sui/paginated.js.map +1 -0
  668. package/dist/src/services/utils/sui/view.d.ts +4 -0
  669. package/dist/src/services/utils/sui/view.js +26 -0
  670. package/dist/src/services/utils/sui/view.js.map +1 -0
  671. package/dist/src/tokens-info/tokens-info.model.d.ts +33 -0
  672. package/dist/src/tokens-info/tokens-info.model.js.map +1 -1
  673. package/dist/src/utils/calculation/index.js.map +1 -1
  674. package/dist/src/utils/calculation/swap-and-bridge-details.js.map +1 -1
  675. package/dist/src/utils/calculation/swap-and-bridge-fee-calc.js.map +1 -1
  676. package/dist/src/utils/index.js.map +1 -1
  677. package/dist/src/utils/sol/index.js.map +1 -1
  678. package/dist/src/utils/sol/utils.js.map +1 -1
  679. package/dist/src/utils/srb/index.js.map +1 -1
  680. package/dist/src/utils/utils.js.map +1 -1
  681. package/dist/src/version.d.ts +1 -1
  682. package/dist/src/version.js +1 -1
  683. package/dist/src/version.js.map +1 -1
  684. package/package.json +2 -1
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SuiTokenService = void 0;
4
+ /* eslint-disable @typescript-eslint/no-unused-vars */
5
+ const client_1 = require("@mysten/sui/client");
6
+ const chain_enums_1 = require("../../../chains/chain.enums");
7
+ const exceptions_1 = require("../../../exceptions");
8
+ const paginated_1 = require("../../utils/sui/paginated");
9
+ const models_1 = require("../models");
10
+ class SuiTokenService extends models_1.ChainTokenService {
11
+ suiRpcUrl;
12
+ api;
13
+ chainType = chain_enums_1.ChainType.SUI;
14
+ suiClient;
15
+ constructor(suiRpcUrl, api) {
16
+ super();
17
+ this.suiRpcUrl = suiRpcUrl;
18
+ this.api = api;
19
+ this.suiClient = new client_1.SuiClient({
20
+ url: this.suiRpcUrl,
21
+ });
22
+ }
23
+ approve(params) {
24
+ throw new exceptions_1.MethodNotSupportedError();
25
+ }
26
+ buildRawTransactionApprove(params) {
27
+ throw new exceptions_1.MethodNotSupportedError();
28
+ }
29
+ getAllowance(params) {
30
+ throw new exceptions_1.MethodNotSupportedError();
31
+ }
32
+ async getTokenBalance(params) {
33
+ if (!params.token.originTokenAddress) {
34
+ throw new exceptions_1.SdkError("SUI token must contain 'originTokenAddress'");
35
+ }
36
+ const balance = await this.suiClient.getBalance({
37
+ owner: params.account,
38
+ coinType: params.token.originTokenAddress,
39
+ });
40
+ return balance.totalBalance;
41
+ }
42
+ async getNativeTokenBalance(params) {
43
+ const coinsData = await (0, paginated_1.fetchAllPagesRecursive)((cursor) => this.suiClient.getCoins({
44
+ owner: params.account,
45
+ cursor,
46
+ }));
47
+ if (coinsData.length === 0) {
48
+ return "0";
49
+ }
50
+ return coinsData.reduce((total, element) => total + BigInt(element.balance), BigInt(0)).toString();
51
+ }
52
+ }
53
+ exports.SuiTokenService = SuiTokenService;
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/token/sui/index.ts"],"names":[],"mappings":";;;AAAA,sDAAsD;AACtD,+CAA+C;AAE/C,6DAAwD;AAExD,oDAAwE;AAGxE,yDAAmE;AACnE,sCAA8G;AAE9G,MAAa,eAAgB,SAAQ,0BAAiB;IAK3C;IACA;IALT,SAAS,GAAkB,uBAAS,CAAC,GAAG,CAAC;IACjC,SAAS,CAAY;IAE7B,YACS,SAAiB,EACjB,GAAwB;QAE/B,KAAK,EAAE,CAAC;QAHD,cAAS,GAAT,SAAS,CAAQ;QACjB,QAAG,GAAH,GAAG,CAAqB;QAG/B,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAS,CAAC;YAC7B,GAAG,EAAE,IAAI,CAAC,SAAS;SACpB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,MAAwB;QAC9B,MAAM,IAAI,oCAAuB,EAAE,CAAC;IACtC,CAAC;IAED,0BAA0B,CAAC,MAAwB;QACjD,MAAM,IAAI,oCAAuB,EAAE,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,MAA6B;QACxC,MAAM,IAAI,oCAAuB,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAA6B;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;YACrC,MAAM,IAAI,qBAAQ,CAAC,6CAA6C,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;YAC9C,KAAK,EAAE,MAAM,CAAC,OAAO;YACrB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,kBAAkB;SAC1C,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,YAAY,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,MAAmC;QAC7D,MAAM,SAAS,GAAiB,MAAM,IAAA,kCAAsB,EAAC,CAAC,MAAiC,EAAE,EAAE,CACjG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YACtB,KAAK,EAAE,MAAM,CAAC,OAAO;YACrB,MAAM;SACP,CAAC,CACH,CAAC;QACF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IACrG,CAAC;CACF;AAjDD,0CAiDC","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { SuiClient } from \"@mysten/sui/client\";\nimport { CoinStruct } from \"@mysten/sui/src/client/types/generated\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { MethodNotSupportedError, SdkError } from \"../../../exceptions\";\nimport { GetNativeTokenBalanceParams } from \"../../bridge/models\";\nimport { RawTransaction, TransactionResponse } from \"../../models\";\nimport { fetchAllPagesRecursive } from \"../../utils/sui/paginated\";\nimport { ApproveParamsDto, ChainTokenService, GetAllowanceParamsDto, GetTokenBalanceParams } from \"../models\";\n\nexport class SuiTokenService extends ChainTokenService {\n chainType: ChainType.SUI = ChainType.SUI;\n private suiClient: SuiClient;\n\n constructor(\n public suiRpcUrl: string,\n public api: AllbridgeCoreClient\n ) {\n super();\n this.suiClient = new SuiClient({\n url: this.suiRpcUrl,\n });\n }\n\n approve(params: ApproveParamsDto): Promise<TransactionResponse> {\n throw new MethodNotSupportedError();\n }\n\n buildRawTransactionApprove(params: ApproveParamsDto): Promise<RawTransaction> {\n throw new MethodNotSupportedError();\n }\n\n getAllowance(params: GetAllowanceParamsDto): Promise<string> {\n throw new MethodNotSupportedError();\n }\n\n async getTokenBalance(params: GetTokenBalanceParams): Promise<string> {\n if (!params.token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const balance = await this.suiClient.getBalance({\n owner: params.account,\n coinType: params.token.originTokenAddress,\n });\n return balance.totalBalance;\n }\n\n async getNativeTokenBalance(params: GetNativeTokenBalanceParams): Promise<string> {\n const coinsData: CoinStruct[] = await fetchAllPagesRecursive((cursor: string | null | undefined) =>\n this.suiClient.getCoins({\n owner: params.account,\n cursor,\n })\n );\n if (coinsData.length === 0) {\n return \"0\";\n }\n return coinsData.reduce((total, element) => total + BigInt(element.balance), BigInt(0)).toString();\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/token/trx/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { TronWeb } from \"tronweb\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { SdkError } from \"../../../exceptions\";\nimport { ChainType, GetTokenBalanceParams, TransactionResponse } from \"../../../models\";\nimport { GetNativeTokenBalanceParams } from \"../../bridge/models\";\nimport { RawTransaction, SmartContractMethodParameter } from \"../../models\";\nimport ERC20 from \"../../models/abi/ERC20\";\nimport { amountToHex } from \"../../utils\";\nimport { sendRawTransaction } from \"../../utils/trx\";\nimport { ApproveParamsDto, GetAllowanceParamsDto } from \"../models\";\nimport { ChainTokenService } from \"../models/token\";\n\nexport const MAX_AMOUNT = \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\";\n\nexport class TronTokenService extends ChainTokenService {\n chainType: ChainType.TRX = ChainType.TRX;\n\n constructor(\n public tronWeb: TronWeb,\n public api: AllbridgeCoreClient,\n ) {\n super();\n }\n\n async getAllowance(params: GetAllowanceParamsDto): Promise<string> {\n const {\n token: { tokenAddress },\n owner,\n } = params;\n const tokenContract = await this.getContract(tokenAddress);\n const allowance = await tokenContract.methods.allowance(owner, params.spender).call();\n return allowance.toString();\n }\n\n async getTokenBalance(params: GetTokenBalanceParams): Promise<string> {\n const contract = await this.getContract(params.token.tokenAddress);\n const balance = await contract.balanceOf(params.account).call();\n return balance.toString();\n }\n\n async getNativeTokenBalance(params: GetNativeTokenBalanceParams): Promise<string> {\n return (await this.tronWeb.trx.getBalance(params.account)).toString();\n }\n\n async approve(params: ApproveParamsDto): Promise<TransactionResponse> {\n const rawTransaction = await this.buildRawTransactionApprove(params);\n return await sendRawTransaction(this.tronWeb, rawTransaction);\n }\n\n async buildRawTransactionApprove(params: ApproveParamsDto): Promise<RawTransaction> {\n const { tokenAddress, spender, owner, amount } = params;\n const amountHex = amount == undefined ? MAX_AMOUNT : amountToHex(amount);\n\n const parameter = [\n { type: \"address\", value: spender },\n { type: \"uint256\", value: amountHex },\n ];\n const value = \"0\";\n const methodSignature = \"approve(address,uint256)\";\n return this.buildRawTransaction(tokenAddress, methodSignature, parameter, value, owner);\n }\n\n private getContract(contractAddress: string): any {\n return this.tronWeb.contract(ERC20.abi, contractAddress);\n }\n\n private async buildRawTransaction(\n contractAddress: string,\n methodSignature: string,\n parameters: SmartContractMethodParameter[],\n value: string,\n fromAddress: string,\n ): Promise<RawTransaction> {\n const transactionObject = await this.tronWeb.transactionBuilder.triggerSmartContract(\n contractAddress,\n methodSignature,\n {\n callValue: +value,\n },\n parameters,\n fromAddress,\n );\n if (!transactionObject?.result?.result) {\n throw new SdkError(\"Unknown error: \" + JSON.stringify(transactionObject, null, 2));\n }\n return transactionObject.transaction;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/token/trx/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { TronWeb } from \"tronweb\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { SdkError } from \"../../../exceptions\";\nimport { ChainType, GetTokenBalanceParams, TransactionResponse } from \"../../../models\";\nimport { GetNativeTokenBalanceParams } from \"../../bridge/models\";\nimport { RawTransaction, SmartContractMethodParameter } from \"../../models\";\nimport ERC20 from \"../../models/abi/ERC20\";\nimport { amountToHex } from \"../../utils\";\nimport { sendRawTransaction } from \"../../utils/trx\";\nimport { ApproveParamsDto, GetAllowanceParamsDto } from \"../models\";\nimport { ChainTokenService } from \"../models/token\";\n\nexport const MAX_AMOUNT = \"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\";\n\nexport class TronTokenService extends ChainTokenService {\n chainType: ChainType.TRX = ChainType.TRX;\n\n constructor(\n public tronWeb: TronWeb,\n public api: AllbridgeCoreClient\n ) {\n super();\n }\n\n async getAllowance(params: GetAllowanceParamsDto): Promise<string> {\n const {\n token: { tokenAddress },\n owner,\n } = params;\n const tokenContract = await this.getContract(tokenAddress);\n const allowance = await tokenContract.methods.allowance(owner, params.spender).call();\n return allowance.toString();\n }\n\n async getTokenBalance(params: GetTokenBalanceParams): Promise<string> {\n const contract = await this.getContract(params.token.tokenAddress);\n const balance = await contract.balanceOf(params.account).call();\n return balance.toString();\n }\n\n async getNativeTokenBalance(params: GetNativeTokenBalanceParams): Promise<string> {\n return (await this.tronWeb.trx.getBalance(params.account)).toString();\n }\n\n async approve(params: ApproveParamsDto): Promise<TransactionResponse> {\n const rawTransaction = await this.buildRawTransactionApprove(params);\n return await sendRawTransaction(this.tronWeb, rawTransaction);\n }\n\n async buildRawTransactionApprove(params: ApproveParamsDto): Promise<RawTransaction> {\n const { tokenAddress, spender, owner, amount } = params;\n const amountHex = amount == undefined ? MAX_AMOUNT : amountToHex(amount);\n\n const parameter = [\n { type: \"address\", value: spender },\n { type: \"uint256\", value: amountHex },\n ];\n const value = \"0\";\n const methodSignature = \"approve(address,uint256)\";\n return this.buildRawTransaction(tokenAddress, methodSignature, parameter, value, owner);\n }\n\n private getContract(contractAddress: string): any {\n return this.tronWeb.contract(ERC20.abi, contractAddress);\n }\n\n private async buildRawTransaction(\n contractAddress: string,\n methodSignature: string,\n parameters: SmartContractMethodParameter[],\n value: string,\n fromAddress: string\n ): Promise<RawTransaction> {\n const transactionObject = await this.tronWeb.transactionBuilder.triggerSmartContract(\n contractAddress,\n methodSignature,\n {\n callValue: +value,\n },\n parameters,\n fromAddress\n );\n if (!transactionObject?.result?.result) {\n throw new SdkError(\"Unknown error: \" + JSON.stringify(transactionObject, null, 2));\n }\n return transactionObject.transaction;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/utils/calculation/index.ts"],"names":[],"mappings":";;AAIA,kDA0BC;AAED,wDAGC;AAnCD,mCAA6B;AAC7B,4DAA2E;AAC3E,oEAAwE;AAExE,SAAgB,mBAAmB,CACjC,MAAc,EACd,MAAc,EACd,MAAc,EACd,YAAoB,EACpB,WAAmB;IAEnB,MAAM,QAAQ,GAAG,IAAA,qCAAuB,EAAC,MAAM,EAAE,4BAAgB,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,IAAA,YAAG,EAAC,QAAQ,CAAC,CAAC;IAElC,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,MAAM,CAAC,CAAC;IACzB,MAAM,UAAU,GAAG,IAAA,YAAG,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,eAAe,CAAC;IACpB,IAAI,cAAc,CAAC;IAEnB,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtC,eAAe,GAAG,IAAA,YAAG,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrD,cAAc,GAAG,IAAA,YAAG,EAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,IAAA,YAAG,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACxF,cAAc,GAAG,IAAA,YAAG,EAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,IAAA,kBAAI,EAAC,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC;AAED,SAAgB,sBAAsB,CAAC,QAAgB;IACrD,MAAM,UAAU,GAAG,IAAA,qCAAuB,EAAC,QAAQ,EAAE,4BAAgB,CAAC,CAAC;IACvE,OAAO,IAAA,YAAG,EAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;AAC3C,CAAC","sourcesContent":["import { Big } from \"big.js\";\nimport { convertFloatAmountToInt, getD } from \"../../../utils/calculation\";\nimport { SYSTEM_PRECISION } from \"../../../utils/calculation/constants\";\n\nexport function depositAmountToVUsd(\n amount: string,\n aValue: string,\n dValue: string,\n tokenBalance: string,\n vUsdBalance: string,\n): string {\n const amountSP = convertFloatAmountToInt(amount, SYSTEM_PRECISION);\n const amountSPBig = Big(amountSP);\n\n const oldD = Big(dValue);\n const oldBalance = Big(tokenBalance).plus(vUsdBalance);\n\n let newTokenBalance;\n let newVUsdBalance;\n\n if (oldD.eq(0) || oldBalance.eq(0)) {\n const halfAmount = amountSPBig.div(2);\n newTokenBalance = Big(tokenBalance).plus(halfAmount);\n newVUsdBalance = Big(vUsdBalance).plus(halfAmount);\n } else {\n newTokenBalance = Big(tokenBalance).plus(amountSPBig.mul(tokenBalance).div(oldBalance));\n newVUsdBalance = Big(vUsdBalance).plus(amountSPBig.mul(vUsdBalance).div(oldBalance));\n }\n const newD = Big(getD(aValue, newTokenBalance.toFixed(), newVUsdBalance.toFixed()));\n return newD.minus(oldD).toFixed();\n}\n\nexport function vUsdToWithdrawalAmount(lpAmount: string): string {\n const lpAmountSP = convertFloatAmountToInt(lpAmount, SYSTEM_PRECISION);\n return Big(lpAmountSP).round().toFixed();\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/utils/calculation/index.ts"],"names":[],"mappings":";;AAIA,kDA0BC;AAED,wDAGC;AAnCD,mCAA6B;AAC7B,4DAA2E;AAC3E,oEAAwE;AAExE,SAAgB,mBAAmB,CACjC,MAAc,EACd,MAAc,EACd,MAAc,EACd,YAAoB,EACpB,WAAmB;IAEnB,MAAM,QAAQ,GAAG,IAAA,qCAAuB,EAAC,MAAM,EAAE,4BAAgB,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,IAAA,YAAG,EAAC,QAAQ,CAAC,CAAC;IAElC,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,MAAM,CAAC,CAAC;IACzB,MAAM,UAAU,GAAG,IAAA,YAAG,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,eAAe,CAAC;IACpB,IAAI,cAAc,CAAC;IAEnB,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACtC,eAAe,GAAG,IAAA,YAAG,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrD,cAAc,GAAG,IAAA,YAAG,EAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,IAAA,YAAG,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACxF,cAAc,GAAG,IAAA,YAAG,EAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,IAAA,kBAAI,EAAC,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,EAAE,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACpF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC;AAED,SAAgB,sBAAsB,CAAC,QAAgB;IACrD,MAAM,UAAU,GAAG,IAAA,qCAAuB,EAAC,QAAQ,EAAE,4BAAgB,CAAC,CAAC;IACvE,OAAO,IAAA,YAAG,EAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;AAC3C,CAAC","sourcesContent":["import { Big } from \"big.js\";\nimport { convertFloatAmountToInt, getD } from \"../../../utils/calculation\";\nimport { SYSTEM_PRECISION } from \"../../../utils/calculation/constants\";\n\nexport function depositAmountToVUsd(\n amount: string,\n aValue: string,\n dValue: string,\n tokenBalance: string,\n vUsdBalance: string\n): string {\n const amountSP = convertFloatAmountToInt(amount, SYSTEM_PRECISION);\n const amountSPBig = Big(amountSP);\n\n const oldD = Big(dValue);\n const oldBalance = Big(tokenBalance).plus(vUsdBalance);\n\n let newTokenBalance;\n let newVUsdBalance;\n\n if (oldD.eq(0) || oldBalance.eq(0)) {\n const halfAmount = amountSPBig.div(2);\n newTokenBalance = Big(tokenBalance).plus(halfAmount);\n newVUsdBalance = Big(vUsdBalance).plus(halfAmount);\n } else {\n newTokenBalance = Big(tokenBalance).plus(amountSPBig.mul(tokenBalance).div(oldBalance));\n newVUsdBalance = Big(vUsdBalance).plus(amountSPBig.mul(vUsdBalance).div(oldBalance));\n }\n const newD = Big(getD(aValue, newTokenBalance.toFixed(), newVUsdBalance.toFixed()));\n return newD.minus(oldD).toFixed();\n}\n\nexport function vUsdToWithdrawalAmount(lpAmount: string): string {\n const lpAmountSP = convertFloatAmountToInt(lpAmount, SYSTEM_PRECISION);\n return Big(lpAmountSP).round().toFixed();\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/accounts.ts"],"names":[],"mappings":"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","sourcesContent":["import * as anchor from \"@project-serum/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nexport async function getAssociatedAccount(publicKey: PublicKey, mintAccount: PublicKey): Promise<PublicKey> {\n return anchor.utils.token.associatedAddress({\n mint: mintAccount,\n owner: publicKey,\n });\n}\n\nexport async function getConfigAccount(programId: PublicKey): Promise<PublicKey> {\n const [configPda] = await PublicKey.findProgramAddress([anchor.utils.bytes.utf8.encode(\"config\")], programId);\n return configPda;\n}\n\nexport async function getLockAccount(nonce: number[], bridgeProgramId: PublicKey): Promise<PublicKey> {\n const [lockPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"lock\"), Uint8Array.from(nonce)],\n bridgeProgramId,\n );\n return lockPda;\n}\n\nexport async function getPriceAccount(chainId: number, gasOracleProgramId: PublicKey): Promise<PublicKey> {\n const [pricePda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"price_v2\"), Uint8Array.from([chainId])],\n gasOracleProgramId,\n );\n return pricePda;\n}\n\nexport async function getAuthorityAccount(bridgeProgramId: PublicKey): Promise<PublicKey> {\n const configAccount = await getConfigAccount(bridgeProgramId);\n const [poolAuthority] = await PublicKey.findProgramAddress([configAccount.toBuffer()], bridgeProgramId);\n return poolAuthority;\n}\n\nexport async function getCctpAuthorityAccount(\n cctpBridgeAccount: PublicKey,\n cctpBridgeProgramId: PublicKey,\n): Promise<PublicKey> {\n const [poolAuthority] = await PublicKey.findProgramAddress([cctpBridgeAccount.toBuffer()], cctpBridgeProgramId);\n return poolAuthority;\n}\n\nexport async function getBridgeTokenAccount(mintAccount: PublicKey, bridgeProgramId: PublicKey): Promise<PublicKey> {\n const [poolPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"token\"), mintAccount.toBytes()],\n bridgeProgramId,\n );\n return poolPda;\n}\n\nexport async function getOtherChainTokenAccount(\n chainId: number,\n token: Buffer,\n bridgeProgramId: PublicKey,\n): Promise<PublicKey> {\n const [otherChainTokenPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"other_bridge_token\"), Buffer.from([chainId]), token],\n bridgeProgramId,\n );\n return otherChainTokenPda;\n}\n\nexport async function getChainBridgeAccount(chainId: number, bridgeProgramId: PublicKey): Promise<PublicKey> {\n const [chainBridgePda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"chain_bridge\"), Uint8Array.from([chainId])],\n bridgeProgramId,\n );\n return chainBridgePda;\n}\n\nexport async function getGasUsageAccount(chainId: number, messengerProgramId: PublicKey): Promise<PublicKey> {\n const [chainBridgePda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"gas_usage\"), Uint8Array.from([chainId])],\n messengerProgramId,\n );\n return chainBridgePda;\n}\n\nexport async function getSendMessageAccount(\n messageWithSigner: Uint8Array,\n messengerProgramId: PublicKey,\n): Promise<PublicKey> {\n const [sentMessagePda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"sent_message\"), messageWithSigner],\n messengerProgramId,\n );\n return sentMessagePda;\n}\n\nexport async function getUserDepositAccount(\n userPublicKey: PublicKey,\n tokenMintAccount: PublicKey,\n bridgeProgramId: PublicKey,\n): Promise<PublicKey> {\n const [userDepositPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"user_deposit\"), tokenMintAccount.toBytes(), userPublicKey.toBytes()],\n bridgeProgramId,\n );\n return userDepositPda;\n}\n\nexport async function getCctpBridgeAccount(mintAccount: PublicKey, cctpBridgeProgramId: PublicKey): Promise<PublicKey> {\n const [configPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"cctp_bridge\"), mintAccount.toBytes()],\n cctpBridgeProgramId,\n );\n return configPda;\n}\n\nexport async function getCctpBridgeTokenAccount(token: PublicKey, cctpBridgeProgramId: PublicKey): Promise<PublicKey> {\n const [poolPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"token\"), token.toBytes()],\n cctpBridgeProgramId,\n );\n return poolPda;\n}\n\nexport function getCctpLockAccount(cctpBridgeProgramId: PublicKey, messageSentEventDataAccount: PublicKey): PublicKey {\n const [tokenMessengerEventAuthority] = PublicKey.findProgramAddressSync(\n [anchor.utils.bytes.utf8.encode(\"lock\"), messageSentEventDataAccount.toBuffer()],\n cctpBridgeProgramId,\n );\n return tokenMessengerEventAuthority;\n}\n\nexport function getCctpAccounts(\n domain: number,\n mintAccount: PublicKey,\n cctpTransmitterProgramId: PublicKey,\n cctpTokenMessengerMinter: PublicKey,\n) {\n const messageTransmitterAccount = findProgramAddress(\"message_transmitter\", cctpTransmitterProgramId);\n const tokenMessenger = findProgramAddress(\"token_messenger\", cctpTokenMessengerMinter);\n const tokenMessengerEventAuthority = findProgramAddress(\"__event_authority\", cctpTokenMessengerMinter);\n const tokenMinter = findProgramAddress(\"token_minter\", cctpTokenMessengerMinter);\n const localToken = findProgramAddress(\"local_token\", cctpTokenMessengerMinter, [mintAccount]);\n const remoteTokenMessengerKey = findProgramAddress(\"remote_token_messenger\", cctpTokenMessengerMinter, [\n domain.toString(),\n ]);\n const authorityPda = findProgramAddress(\"sender_authority\", cctpTokenMessengerMinter);\n return {\n messageTransmitterAccount,\n tokenMessenger,\n tokenMessengerEventAuthority,\n tokenMinter,\n localToken,\n remoteTokenMessengerKey,\n authorityPda,\n };\n}\n\nfunction findProgramAddress(\n label: string,\n programId: PublicKey,\n extraSeeds: (string | number[] | Buffer | PublicKey)[] = [],\n): PublicKey {\n const seeds = [Buffer.from(anchor.utils.bytes.utf8.encode(label))];\n for (const extraSeed of extraSeeds) {\n if (typeof extraSeed === \"string\") {\n seeds.push(Buffer.from(anchor.utils.bytes.utf8.encode(extraSeed)));\n } else if (Array.isArray(extraSeed)) {\n seeds.push(Buffer.from(Uint8Array.from(extraSeed)));\n } else if (Buffer.isBuffer(extraSeed)) {\n seeds.push(Buffer.from(Uint8Array.from(extraSeed)));\n } else {\n seeds.push(Buffer.from(Uint8Array.from(extraSeed.toBuffer())));\n }\n }\n const res = PublicKey.findProgramAddressSync(seeds, programId);\n return res[0];\n}\n"]}
1
+ {"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/accounts.ts"],"names":[],"mappings":"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","sourcesContent":["import * as anchor from \"@project-serum/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\n\nexport async function getAssociatedAccount(publicKey: PublicKey, mintAccount: PublicKey): Promise<PublicKey> {\n return anchor.utils.token.associatedAddress({\n mint: mintAccount,\n owner: publicKey,\n });\n}\n\nexport async function getConfigAccount(programId: PublicKey): Promise<PublicKey> {\n const [configPda] = await PublicKey.findProgramAddress([anchor.utils.bytes.utf8.encode(\"config\")], programId);\n return configPda;\n}\n\nexport async function getLockAccount(nonce: number[], bridgeProgramId: PublicKey): Promise<PublicKey> {\n const [lockPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"lock\"), Uint8Array.from(nonce)],\n bridgeProgramId\n );\n return lockPda;\n}\n\nexport async function getPriceAccount(chainId: number, gasOracleProgramId: PublicKey): Promise<PublicKey> {\n const [pricePda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"price_v2\"), Uint8Array.from([chainId])],\n gasOracleProgramId\n );\n return pricePda;\n}\n\nexport async function getAuthorityAccount(bridgeProgramId: PublicKey): Promise<PublicKey> {\n const configAccount = await getConfigAccount(bridgeProgramId);\n const [poolAuthority] = await PublicKey.findProgramAddress([configAccount.toBuffer()], bridgeProgramId);\n return poolAuthority;\n}\n\nexport async function getCctpAuthorityAccount(\n cctpBridgeAccount: PublicKey,\n cctpBridgeProgramId: PublicKey\n): Promise<PublicKey> {\n const [poolAuthority] = await PublicKey.findProgramAddress([cctpBridgeAccount.toBuffer()], cctpBridgeProgramId);\n return poolAuthority;\n}\n\nexport async function getBridgeTokenAccount(mintAccount: PublicKey, bridgeProgramId: PublicKey): Promise<PublicKey> {\n const [poolPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"token\"), mintAccount.toBytes()],\n bridgeProgramId\n );\n return poolPda;\n}\n\nexport async function getOtherChainTokenAccount(\n chainId: number,\n token: Buffer,\n bridgeProgramId: PublicKey\n): Promise<PublicKey> {\n const [otherChainTokenPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"other_bridge_token\"), Buffer.from([chainId]), token],\n bridgeProgramId\n );\n return otherChainTokenPda;\n}\n\nexport async function getChainBridgeAccount(chainId: number, bridgeProgramId: PublicKey): Promise<PublicKey> {\n const [chainBridgePda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"chain_bridge\"), Uint8Array.from([chainId])],\n bridgeProgramId\n );\n return chainBridgePda;\n}\n\nexport async function getGasUsageAccount(chainId: number, messengerProgramId: PublicKey): Promise<PublicKey> {\n const [chainBridgePda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"gas_usage\"), Uint8Array.from([chainId])],\n messengerProgramId\n );\n return chainBridgePda;\n}\n\nexport async function getSendMessageAccount(\n messageWithSigner: Uint8Array,\n messengerProgramId: PublicKey\n): Promise<PublicKey> {\n const [sentMessagePda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"sent_message\"), messageWithSigner],\n messengerProgramId\n );\n return sentMessagePda;\n}\n\nexport async function getUserDepositAccount(\n userPublicKey: PublicKey,\n tokenMintAccount: PublicKey,\n bridgeProgramId: PublicKey\n): Promise<PublicKey> {\n const [userDepositPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"user_deposit\"), tokenMintAccount.toBytes(), userPublicKey.toBytes()],\n bridgeProgramId\n );\n return userDepositPda;\n}\n\nexport async function getCctpBridgeAccount(mintAccount: PublicKey, cctpBridgeProgramId: PublicKey): Promise<PublicKey> {\n const [configPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"cctp_bridge\"), mintAccount.toBytes()],\n cctpBridgeProgramId\n );\n return configPda;\n}\n\nexport async function getCctpBridgeTokenAccount(token: PublicKey, cctpBridgeProgramId: PublicKey): Promise<PublicKey> {\n const [poolPda] = await PublicKey.findProgramAddress(\n [anchor.utils.bytes.utf8.encode(\"token\"), token.toBytes()],\n cctpBridgeProgramId\n );\n return poolPda;\n}\n\nexport function getCctpLockAccount(cctpBridgeProgramId: PublicKey, messageSentEventDataAccount: PublicKey): PublicKey {\n const [tokenMessengerEventAuthority] = PublicKey.findProgramAddressSync(\n [anchor.utils.bytes.utf8.encode(\"lock\"), messageSentEventDataAccount.toBuffer()],\n cctpBridgeProgramId\n );\n return tokenMessengerEventAuthority;\n}\n\nexport function getCctpAccounts(\n domain: number,\n mintAccount: PublicKey,\n cctpTransmitterProgramId: PublicKey,\n cctpTokenMessengerMinter: PublicKey\n) {\n const messageTransmitterAccount = findProgramAddress(\"message_transmitter\", cctpTransmitterProgramId);\n const tokenMessenger = findProgramAddress(\"token_messenger\", cctpTokenMessengerMinter);\n const tokenMessengerEventAuthority = findProgramAddress(\"__event_authority\", cctpTokenMessengerMinter);\n const tokenMinter = findProgramAddress(\"token_minter\", cctpTokenMessengerMinter);\n const localToken = findProgramAddress(\"local_token\", cctpTokenMessengerMinter, [mintAccount]);\n const remoteTokenMessengerKey = findProgramAddress(\"remote_token_messenger\", cctpTokenMessengerMinter, [\n domain.toString(),\n ]);\n const authorityPda = findProgramAddress(\"sender_authority\", cctpTokenMessengerMinter);\n return {\n messageTransmitterAccount,\n tokenMessenger,\n tokenMessengerEventAuthority,\n tokenMinter,\n localToken,\n remoteTokenMessengerKey,\n authorityPda,\n };\n}\n\nfunction findProgramAddress(\n label: string,\n programId: PublicKey,\n extraSeeds: (string | number[] | Buffer | PublicKey)[] = []\n): PublicKey {\n const seeds = [Buffer.from(anchor.utils.bytes.utf8.encode(label))];\n for (const extraSeed of extraSeeds) {\n if (typeof extraSeed === \"string\") {\n seeds.push(Buffer.from(anchor.utils.bytes.utf8.encode(extraSeed)));\n } else if (Array.isArray(extraSeed)) {\n seeds.push(Buffer.from(Uint8Array.from(extraSeed)));\n } else if (Buffer.isBuffer(extraSeed)) {\n seeds.push(Buffer.from(Uint8Array.from(extraSeed)));\n } else {\n seeds.push(Buffer.from(Uint8Array.from(extraSeed.toBuffer())));\n }\n }\n const res = PublicKey.findProgramAddressSync(seeds, programId);\n return res[0];\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"anchor-provider.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/anchor-provider.ts"],"names":[],"mappings":";;AAGA,kDAcC;AAjBD,kDAAiE;AACjE,6CAAwD;AAExD,SAAgB,mBAAmB,CAAC,YAAoB,EAAE,cAAsB;IAC9E,MAAM,UAAU,GAAG,IAAI,oBAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,IAAI,mBAAS,CAAC,cAAc,CAAC,CAAC;IAEhD,OAAO,IAAI,uBAAc,CACvB,UAAU;IACV,mDAAmD;IACnD,EAAE,SAAS,EAAE,SAAS,EAAE,EACxB;QACE,mBAAmB,EAAE,WAAW;QAChC,UAAU,EAAE,WAAW;KACxB,CACF,CAAC;AACJ,CAAC","sourcesContent":["import { AnchorProvider, Provider } from \"@project-serum/anchor\";\nimport { Connection, PublicKey } from \"@solana/web3.js\";\n\nexport function buildAnchorProvider(solanaRpcUrl: string, accountAddress: string): Provider {\n const connection = new Connection(solanaRpcUrl, \"confirmed\");\n\n const publicKey = new PublicKey(accountAddress);\n\n return new AnchorProvider(\n connection,\n // @ts-expect-error enough wallet for fetch actions\n { publicKey: publicKey },\n {\n preflightCommitment: \"confirmed\",\n commitment: \"confirmed\",\n },\n );\n}\n"]}
1
+ {"version":3,"file":"anchor-provider.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/anchor-provider.ts"],"names":[],"mappings":";;AAGA,kDAcC;AAjBD,kDAAiE;AACjE,6CAAwD;AAExD,SAAgB,mBAAmB,CAAC,YAAoB,EAAE,cAAsB;IAC9E,MAAM,UAAU,GAAG,IAAI,oBAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,IAAI,mBAAS,CAAC,cAAc,CAAC,CAAC;IAEhD,OAAO,IAAI,uBAAc,CACvB,UAAU;IACV,mDAAmD;IACnD,EAAE,SAAS,EAAE,SAAS,EAAE,EACxB;QACE,mBAAmB,EAAE,WAAW;QAChC,UAAU,EAAE,WAAW;KACxB,CACF,CAAC;AACJ,CAAC","sourcesContent":["import { AnchorProvider, Provider } from \"@project-serum/anchor\";\nimport { Connection, PublicKey } from \"@solana/web3.js\";\n\nexport function buildAnchorProvider(solanaRpcUrl: string, accountAddress: string): Provider {\n const connection = new Connection(solanaRpcUrl, \"confirmed\");\n\n const publicKey = new PublicKey(accountAddress);\n\n return new AnchorProvider(\n connection,\n // @ts-expect-error enough wallet for fetch actions\n { publicKey: publicKey },\n {\n preflightCommitment: \"confirmed\",\n commitment: \"confirmed\",\n }\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"compute-budget.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/compute-budget.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ComputeBudgetInstruction,\n ComputeBudgetProgram,\n Connection,\n Transaction,\n TransactionInstruction,\n TransactionMessage,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport { Big } from \"big.js\";\nimport { TxTooLargeError } from \"../../../exceptions\";\nimport { toPowBase10 } from \"../../../utils/calculation\";\nimport { fetchAddressLookupTableAccountsFromTx } from \"../../../utils/sol/utils\";\nimport { SolanaAutoTxFee, TxFeeParams } from \"../../models\";\n\nexport async function addUnitLimitAndUnitPriceToTx(\n transaction: Transaction,\n txFeeParams: TxFeeParams | undefined,\n solanaRpcUrl: string,\n) {\n const connection = new Connection(solanaRpcUrl, \"confirmed\");\n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */\n const simUnitsConsumed = (await connection.simulateTransaction(transaction)).value.unitsConsumed!;\n await addUnitLimitAndUnitPriceToInstructions(transaction.instructions, simUnitsConsumed, txFeeParams, connection);\n}\n\nexport async function addUnitLimitAndUnitPriceToVersionedTx(\n transaction: VersionedTransaction,\n txFeeParams: TxFeeParams | undefined,\n solanaRpcUrl: string,\n) {\n const connection = new Connection(solanaRpcUrl, \"confirmed\");\n const addressLookupTableAccounts = await fetchAddressLookupTableAccountsFromTx(transaction, connection);\n const message = TransactionMessage.decompile(transaction.message, {\n addressLookupTableAccounts: addressLookupTableAccounts,\n });\n\n if (transaction.serialize().length > 1232) {\n throw new TxTooLargeError();\n }\n\n // const simUnitsConsumed = (await connection.simulateTransaction(transaction, { replaceRecentBlockhash: true })).value\n // .unitsConsumed!;\n const simUnitsConsumed = 769230; // 1000000/1.3\n\n await addUnitLimitAndUnitPriceToInstructions(message.instructions, simUnitsConsumed, txFeeParams, connection);\n\n transaction.message = message.compileToV0Message(addressLookupTableAccounts);\n}\n\nasync function addUnitLimitAndUnitPriceToInstructions(\n instructions: TransactionInstruction[],\n simUnitsConsumed: number,\n txFeeParams: TxFeeParams | undefined,\n connection: Connection,\n) {\n if (simUnitsConsumed > 0) {\n const units = updateUnitLimit(simUnitsConsumed, instructions);\n if (txFeeParams?.solana) {\n const solanaTxFee = txFeeParams.solana;\n if (solanaTxFee === SolanaAutoTxFee) {\n await updateUnitPrice(instructions, connection);\n } else if (\"pricePerUnitInMicroLamports\" in solanaTxFee) {\n await updateUnitPrice(instructions, connection, solanaTxFee.pricePerUnitInMicroLamports);\n } else {\n const pricePerUnitInMicroLamports = Big(solanaTxFee.extraFeeInLamports)\n .div(units)\n .mul(toPowBase10(6))\n .toFixed(0);\n await updateUnitPrice(instructions, connection, pricePerUnitInMicroLamports);\n }\n }\n }\n}\n\nfunction updateUnitLimit(simUnitsConsumed: number, instructions: TransactionInstruction[]): string {\n const computeUnitLimitIndex = instructions.findIndex(\n (instruction) =>\n instruction.programId.equals(ComputeBudgetProgram.programId) &&\n ComputeBudgetInstruction.decodeInstructionType(instruction) === \"SetComputeUnitLimit\",\n );\n const units = Number((simUnitsConsumed * 1.3).toFixed(0));\n const computeUnitLimitInstruction = ComputeBudgetProgram.setComputeUnitLimit({\n units: units,\n });\n if (computeUnitLimitIndex >= 0) {\n instructions[computeUnitLimitIndex] = computeUnitLimitInstruction;\n } else {\n instructions.push(computeUnitLimitInstruction);\n }\n return units.toString();\n}\n\nasync function updateUnitPrice(\n instructions: TransactionInstruction[],\n connection: Connection,\n pricePerUnitInMicroLamports?: string,\n): Promise<string> {\n const computeUnitPriceIndex = instructions.findIndex(\n (instruction) =>\n instruction.programId.equals(ComputeBudgetProgram.programId) &&\n ComputeBudgetInstruction.decodeInstructionType(instruction) === \"SetComputeUnitPrice\",\n );\n const unitPrice = pricePerUnitInMicroLamports\n ? BigInt(pricePerUnitInMicroLamports)\n : BigInt(await getAveragePrioritizationFee(connection));\n const computeUnitPriceInstruction = ComputeBudgetProgram.setComputeUnitPrice({\n microLamports: unitPrice,\n });\n if (computeUnitPriceIndex >= 0) {\n instructions[computeUnitPriceIndex] = computeUnitPriceInstruction;\n } else {\n instructions.push(computeUnitPriceInstruction);\n }\n return unitPrice.toString();\n}\n\nasync function getAveragePrioritizationFee(connection: Connection) {\n const prioritizationFees = await connection.getRecentPrioritizationFees();\n let sum = 0;\n for (const prioritizationFee of prioritizationFees) {\n sum += prioritizationFee.prioritizationFee;\n }\n return (sum / prioritizationFees.length).toFixed(0);\n}\n"]}
1
+ {"version":3,"file":"compute-budget.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/compute-budget.ts"],"names":[],"mappings":";;AAeA,oEASC;AAED,sFAsBC;AAhDD,6CAQyB;AACzB,mCAA6B;AAC7B,oDAAsD;AACtD,4DAAyD;AACzD,oDAAiF;AACjF,yCAA4D;AAErD,KAAK,UAAU,4BAA4B,CAChD,WAAwB,EACxB,WAAoC,EACpC,YAAoB;IAEpB,MAAM,UAAU,GAAG,IAAI,oBAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC7D,uEAAuE;IACvE,MAAM,gBAAgB,GAAG,CAAC,MAAM,UAAU,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,aAAc,CAAC;IAClG,MAAM,sCAAsC,CAAC,WAAW,CAAC,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AACpH,CAAC;AAEM,KAAK,UAAU,qCAAqC,CACzD,WAAiC,EACjC,WAAoC,EACpC,YAAoB;IAEpB,MAAM,UAAU,GAAG,IAAI,oBAAU,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC7D,MAAM,0BAA0B,GAAG,MAAM,IAAA,6CAAqC,EAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACxG,MAAM,OAAO,GAAG,4BAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE;QAChE,0BAA0B,EAAE,0BAA0B;KACvD,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;QAC1C,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAED,uHAAuH;IACvH,qBAAqB;IACrB,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,cAAc;IAE/C,MAAM,sCAAsC,CAAC,OAAO,CAAC,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IAE9G,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,CAAC;AAC/E,CAAC;AAED,KAAK,UAAU,sCAAsC,CACnD,YAAsC,EACtC,gBAAwB,EACxB,WAAoC,EACpC,UAAsB;IAEtB,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,eAAe,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;QAC9D,IAAI,WAAW,EAAE,MAAM,EAAE,CAAC;YACxB,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;YACvC,IAAI,WAAW,KAAK,wBAAe,EAAE,CAAC;gBACpC,MAAM,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YAClD,CAAC;iBAAM,IAAI,6BAA6B,IAAI,WAAW,EAAE,CAAC;gBACxD,MAAM,eAAe,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,2BAA2B,CAAC,CAAC;YAC3F,CAAC;iBAAM,CAAC;gBACN,MAAM,2BAA2B,GAAG,IAAA,YAAG,EAAC,WAAW,CAAC,kBAAkB,CAAC;qBACpE,GAAG,CAAC,KAAK,CAAC;qBACV,GAAG,CAAC,IAAA,yBAAW,EAAC,CAAC,CAAC,CAAC;qBACnB,OAAO,CAAC,CAAC,CAAC,CAAC;gBACd,MAAM,eAAe,CAAC,YAAY,EAAE,UAAU,EAAE,2BAA2B,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,gBAAwB,EAAE,YAAsC;IACvF,MAAM,qBAAqB,GAAG,YAAY,CAAC,SAAS,CAClD,CAAC,WAAW,EAAE,EAAE,CACd,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,8BAAoB,CAAC,SAAS,CAAC;QAC5D,kCAAwB,CAAC,qBAAqB,CAAC,WAAW,CAAC,KAAK,qBAAqB,CACxF,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,2BAA2B,GAAG,8BAAoB,CAAC,mBAAmB,CAAC;QAC3E,KAAK,EAAE,KAAK;KACb,CAAC,CAAC;IACH,IAAI,qBAAqB,IAAI,CAAC,EAAE,CAAC;QAC/B,YAAY,CAAC,qBAAqB,CAAC,GAAG,2BAA2B,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,YAAsC,EACtC,UAAsB,EACtB,2BAAoC;IAEpC,MAAM,qBAAqB,GAAG,YAAY,CAAC,SAAS,CAClD,CAAC,WAAW,EAAE,EAAE,CACd,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,8BAAoB,CAAC,SAAS,CAAC;QAC5D,kCAAwB,CAAC,qBAAqB,CAAC,WAAW,CAAC,KAAK,qBAAqB,CACxF,CAAC;IACF,MAAM,SAAS,GAAG,2BAA2B;QAC3C,CAAC,CAAC,MAAM,CAAC,2BAA2B,CAAC;QACrC,CAAC,CAAC,MAAM,CAAC,MAAM,2BAA2B,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,MAAM,2BAA2B,GAAG,8BAAoB,CAAC,mBAAmB,CAAC;QAC3E,aAAa,EAAE,SAAS;KACzB,CAAC,CAAC;IACH,IAAI,qBAAqB,IAAI,CAAC,EAAE,CAAC;QAC/B,YAAY,CAAC,qBAAqB,CAAC,GAAG,2BAA2B,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,YAAY,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,SAAS,CAAC,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,2BAA2B,CAAC,UAAsB;IAC/D,MAAM,kBAAkB,GAAG,MAAM,UAAU,CAAC,2BAA2B,EAAE,CAAC;IAC1E,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;QACnD,GAAG,IAAI,iBAAiB,CAAC,iBAAiB,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACtD,CAAC","sourcesContent":["import {\n ComputeBudgetInstruction,\n ComputeBudgetProgram,\n Connection,\n Transaction,\n TransactionInstruction,\n TransactionMessage,\n VersionedTransaction,\n} from \"@solana/web3.js\";\nimport { Big } from \"big.js\";\nimport { TxTooLargeError } from \"../../../exceptions\";\nimport { toPowBase10 } from \"../../../utils/calculation\";\nimport { fetchAddressLookupTableAccountsFromTx } from \"../../../utils/sol/utils\";\nimport { SolanaAutoTxFee, TxFeeParams } from \"../../models\";\n\nexport async function addUnitLimitAndUnitPriceToTx(\n transaction: Transaction,\n txFeeParams: TxFeeParams | undefined,\n solanaRpcUrl: string\n) {\n const connection = new Connection(solanaRpcUrl, \"confirmed\");\n /* eslint-disable-next-line @typescript-eslint/no-non-null-assertion */\n const simUnitsConsumed = (await connection.simulateTransaction(transaction)).value.unitsConsumed!;\n await addUnitLimitAndUnitPriceToInstructions(transaction.instructions, simUnitsConsumed, txFeeParams, connection);\n}\n\nexport async function addUnitLimitAndUnitPriceToVersionedTx(\n transaction: VersionedTransaction,\n txFeeParams: TxFeeParams | undefined,\n solanaRpcUrl: string\n) {\n const connection = new Connection(solanaRpcUrl, \"confirmed\");\n const addressLookupTableAccounts = await fetchAddressLookupTableAccountsFromTx(transaction, connection);\n const message = TransactionMessage.decompile(transaction.message, {\n addressLookupTableAccounts: addressLookupTableAccounts,\n });\n\n if (transaction.serialize().length > 1232) {\n throw new TxTooLargeError();\n }\n\n // const simUnitsConsumed = (await connection.simulateTransaction(transaction, { replaceRecentBlockhash: true })).value\n // .unitsConsumed!;\n const simUnitsConsumed = 769230; // 1000000/1.3\n\n await addUnitLimitAndUnitPriceToInstructions(message.instructions, simUnitsConsumed, txFeeParams, connection);\n\n transaction.message = message.compileToV0Message(addressLookupTableAccounts);\n}\n\nasync function addUnitLimitAndUnitPriceToInstructions(\n instructions: TransactionInstruction[],\n simUnitsConsumed: number,\n txFeeParams: TxFeeParams | undefined,\n connection: Connection\n) {\n if (simUnitsConsumed > 0) {\n const units = updateUnitLimit(simUnitsConsumed, instructions);\n if (txFeeParams?.solana) {\n const solanaTxFee = txFeeParams.solana;\n if (solanaTxFee === SolanaAutoTxFee) {\n await updateUnitPrice(instructions, connection);\n } else if (\"pricePerUnitInMicroLamports\" in solanaTxFee) {\n await updateUnitPrice(instructions, connection, solanaTxFee.pricePerUnitInMicroLamports);\n } else {\n const pricePerUnitInMicroLamports = Big(solanaTxFee.extraFeeInLamports)\n .div(units)\n .mul(toPowBase10(6))\n .toFixed(0);\n await updateUnitPrice(instructions, connection, pricePerUnitInMicroLamports);\n }\n }\n }\n}\n\nfunction updateUnitLimit(simUnitsConsumed: number, instructions: TransactionInstruction[]): string {\n const computeUnitLimitIndex = instructions.findIndex(\n (instruction) =>\n instruction.programId.equals(ComputeBudgetProgram.programId) &&\n ComputeBudgetInstruction.decodeInstructionType(instruction) === \"SetComputeUnitLimit\"\n );\n const units = Number((simUnitsConsumed * 1.3).toFixed(0));\n const computeUnitLimitInstruction = ComputeBudgetProgram.setComputeUnitLimit({\n units: units,\n });\n if (computeUnitLimitIndex >= 0) {\n instructions[computeUnitLimitIndex] = computeUnitLimitInstruction;\n } else {\n instructions.push(computeUnitLimitInstruction);\n }\n return units.toString();\n}\n\nasync function updateUnitPrice(\n instructions: TransactionInstruction[],\n connection: Connection,\n pricePerUnitInMicroLamports?: string\n): Promise<string> {\n const computeUnitPriceIndex = instructions.findIndex(\n (instruction) =>\n instruction.programId.equals(ComputeBudgetProgram.programId) &&\n ComputeBudgetInstruction.decodeInstructionType(instruction) === \"SetComputeUnitPrice\"\n );\n const unitPrice = pricePerUnitInMicroLamports\n ? BigInt(pricePerUnitInMicroLamports)\n : BigInt(await getAveragePrioritizationFee(connection));\n const computeUnitPriceInstruction = ComputeBudgetProgram.setComputeUnitPrice({\n microLamports: unitPrice,\n });\n if (computeUnitPriceIndex >= 0) {\n instructions[computeUnitPriceIndex] = computeUnitPriceInstruction;\n } else {\n instructions.push(computeUnitPriceInstruction);\n }\n return unitPrice.toString();\n}\n\nasync function getAveragePrioritizationFee(connection: Connection) {\n const prioritizationFees = await connection.getRecentPrioritizationFees();\n let sum = 0;\n for (const prioritizationFee of prioritizationFees) {\n sum += prioritizationFee.prioritizationFee;\n }\n return (sum / prioritizationFees.length).toFixed(0);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Program, Provider, Spl } from \"@project-serum/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\n/* eslint-disable-next-line import/no-named-as-default */\nimport Big from \"big.js\";\nimport { Web3 } from \"web3\";\nimport { InvalidTxError, SdkError } from \"../../../exceptions\";\nimport { PoolInfo } from \"../../../tokens-info\";\nimport { swapToVUsd } from \"../../../utils/calculation\";\nimport { TokenAccountData } from \"../../models/sol\";\nimport { Bridge as BridgeType } from \"../../models/sol/types/bridge\";\n\nexport async function getTokenAccountData(account: PublicKey, provider: Provider): Promise<TokenAccountData> {\n return await Spl.token(provider).account.token.fetch(account);\n}\n\nexport async function getVUsdAmount(\n amount: string,\n bridge: Program<BridgeType>,\n poolAccount: PublicKey,\n): Promise<string> {\n const poolAccountInfo = await bridge.account.pool.fetch(poolAccount);\n const decimals = poolAccountInfo.decimals;\n const feeShare = Big(poolAccountInfo.feeShareBp.toString()).div(10000).toFixed();\n const poolInfo: Omit<PoolInfo, \"p\" | \"imbalance\"> = {\n aValue: poolAccountInfo.a.toString(),\n dValue: poolAccountInfo.d.toString(),\n totalLpAmount: poolAccountInfo.totalLpAmount.toString(),\n tokenBalance: poolAccountInfo.tokenBalance.toString(),\n vUsdBalance: poolAccountInfo.vUsdBalance.toString(),\n accRewardPerShareP: poolAccountInfo.accRewardPerShareP.toString(),\n };\n return swapToVUsd(amount, { decimals, feeShare }, poolInfo);\n}\n\nexport function getMessage(args: {\n amount: string;\n recipient: Buffer;\n sourceChainId: number;\n destinationChainId: number;\n receiveToken: Buffer;\n nonce: Buffer;\n chainBridge: Buffer;\n}): Buffer {\n const amount = args.amount;\n const recipient = \"0x\" + args.recipient.toString(\"hex\");\n const sourceChainId = args.sourceChainId;\n const destinationsChainId = args.destinationChainId;\n const receiveToken = \"0x\" + args.receiveToken.toString(\"hex\");\n const nonce = \"0x\" + args.nonce.toString(\"hex\");\n const messenger = 1;\n const chainBridge = \"0x\" + args.chainBridge.toString(\"hex\");\n\n const message = Web3.utils.encodePacked(\n { t: \"uint256\", v: amount },\n { t: \"bytes32\", v: recipient },\n { t: \"uint256\", v: sourceChainId },\n { t: \"bytes32\", v: receiveToken },\n { t: \"uint256\", v: nonce },\n { t: \"uint8\", v: messenger },\n );\n\n if (!message) {\n throw new SdkError(\"message cannot be undefined\");\n }\n const hash = Web3.utils.keccak256(Buffer.from(message.replace(\"0x\", \"\"), \"hex\") as any);\n\n const hashBuffer = Buffer.from(hash.replace(\"0x\", \"\"), \"hex\");\n hashBuffer[0] = sourceChainId;\n hashBuffer[1] = destinationsChainId;\n\n const messageWithSigner = Web3.utils.encodePacked(\n { t: \"bytes32\", v: \"0x\" + hashBuffer.toString(\"hex\") },\n { t: \"bytes32\", v: chainBridge },\n );\n\n if (!messageWithSigner) {\n throw new InvalidTxError(\"messageWithSigner cannot be undefined\");\n }\n\n const hashWithSigner = Web3.utils.keccak256(Buffer.from(messageWithSigner.replace(\"0x\", \"\"), \"hex\") as any);\n\n const hashWithSignerBuffer = Buffer.from(hashWithSigner.replace(\"0x\", \"\"), \"hex\");\n\n hashWithSignerBuffer[0] = hashBuffer[0];\n hashWithSignerBuffer[1] = hashBuffer[1];\n return hashWithSignerBuffer;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/utils/sol/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Program, Provider, Spl } from \"@project-serum/anchor\";\nimport { PublicKey } from \"@solana/web3.js\";\n/* eslint-disable-next-line import/no-named-as-default */\nimport Big from \"big.js\";\nimport { Web3 } from \"web3\";\nimport { InvalidTxError, SdkError } from \"../../../exceptions\";\nimport { PoolInfo } from \"../../../tokens-info\";\nimport { swapToVUsd } from \"../../../utils/calculation\";\nimport { TokenAccountData } from \"../../models/sol\";\nimport { Bridge as BridgeType } from \"../../models/sol/types/bridge\";\n\nexport async function getTokenAccountData(account: PublicKey, provider: Provider): Promise<TokenAccountData> {\n return await Spl.token(provider).account.token.fetch(account);\n}\n\nexport async function getVUsdAmount(\n amount: string,\n bridge: Program<BridgeType>,\n poolAccount: PublicKey\n): Promise<string> {\n const poolAccountInfo = await bridge.account.pool.fetch(poolAccount);\n const decimals = poolAccountInfo.decimals;\n const feeShare = Big(poolAccountInfo.feeShareBp.toString()).div(10000).toFixed();\n const poolInfo: Omit<PoolInfo, \"p\" | \"imbalance\"> = {\n aValue: poolAccountInfo.a.toString(),\n dValue: poolAccountInfo.d.toString(),\n totalLpAmount: poolAccountInfo.totalLpAmount.toString(),\n tokenBalance: poolAccountInfo.tokenBalance.toString(),\n vUsdBalance: poolAccountInfo.vUsdBalance.toString(),\n accRewardPerShareP: poolAccountInfo.accRewardPerShareP.toString(),\n };\n return swapToVUsd(amount, { decimals, feeShare }, poolInfo);\n}\n\nexport function getMessage(args: {\n amount: string;\n recipient: Buffer;\n sourceChainId: number;\n destinationChainId: number;\n receiveToken: Buffer;\n nonce: Buffer;\n chainBridge: Buffer;\n}): Buffer {\n const amount = args.amount;\n const recipient = \"0x\" + args.recipient.toString(\"hex\");\n const sourceChainId = args.sourceChainId;\n const destinationsChainId = args.destinationChainId;\n const receiveToken = \"0x\" + args.receiveToken.toString(\"hex\");\n const nonce = \"0x\" + args.nonce.toString(\"hex\");\n const messenger = 1;\n const chainBridge = \"0x\" + args.chainBridge.toString(\"hex\");\n\n const message = Web3.utils.encodePacked(\n { t: \"uint256\", v: amount },\n { t: \"bytes32\", v: recipient },\n { t: \"uint256\", v: sourceChainId },\n { t: \"bytes32\", v: receiveToken },\n { t: \"uint256\", v: nonce },\n { t: \"uint8\", v: messenger }\n );\n\n if (!message) {\n throw new SdkError(\"message cannot be undefined\");\n }\n const hash = Web3.utils.keccak256(Buffer.from(message.replace(\"0x\", \"\"), \"hex\") as any);\n\n const hashBuffer = Buffer.from(hash.replace(\"0x\", \"\"), \"hex\");\n hashBuffer[0] = sourceChainId;\n hashBuffer[1] = destinationsChainId;\n\n const messageWithSigner = Web3.utils.encodePacked(\n { t: \"bytes32\", v: \"0x\" + hashBuffer.toString(\"hex\") },\n { t: \"bytes32\", v: chainBridge }\n );\n\n if (!messageWithSigner) {\n throw new InvalidTxError(\"messageWithSigner cannot be undefined\");\n }\n\n const hashWithSigner = Web3.utils.keccak256(Buffer.from(messageWithSigner.replace(\"0x\", \"\"), \"hex\") as any);\n\n const hashWithSignerBuffer = Buffer.from(hashWithSigner.replace(\"0x\", \"\"), \"hex\");\n\n hashWithSignerBuffer[0] = hashBuffer[0];\n hashWithSignerBuffer[1] = hashBuffer[1];\n return hashWithSignerBuffer;\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import { CoinStruct } from "@mysten/sui/client";
2
+ import { Transaction } from "@mysten/sui/transactions";
3
+ export declare function getCoinsWithAmounts(amounts: string[], coins: CoinStruct[], tx: Transaction): never[] | ({
4
+ $kind: "Result";
5
+ Result: number;
6
+ } & {
7
+ $kind: "NestedResult";
8
+ NestedResult: [number, number];
9
+ }[]);
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCoinsWithAmounts = getCoinsWithAmounts;
4
+ function getCoinsWithAmounts(amounts, coins, tx) {
5
+ if (coins.length === 0 || !coins[0]) {
6
+ return [];
7
+ }
8
+ const firstCoin = coins[0];
9
+ const requiredAmount = amounts.reduce((total, amount) => total + BigInt(amount), BigInt(0));
10
+ let currentBalance = BigInt(firstCoin.balance);
11
+ const accumulatedCoins = [];
12
+ for (const coin of coins.slice(1)) {
13
+ if (currentBalance > requiredAmount) {
14
+ return splitAndMergeCoins(tx, firstCoin, accumulatedCoins, amounts);
15
+ }
16
+ else {
17
+ currentBalance += BigInt(coin.balance);
18
+ accumulatedCoins.push(coin);
19
+ }
20
+ }
21
+ if (currentBalance >= requiredAmount) {
22
+ return splitAndMergeCoins(tx, firstCoin, accumulatedCoins, amounts);
23
+ }
24
+ else {
25
+ return [];
26
+ }
27
+ }
28
+ function splitAndMergeCoins(tx, firstCoin, accumulatedCoins, amounts) {
29
+ const pureAmounts = amounts.map((amount) => {
30
+ return tx.pure.u64(amount);
31
+ });
32
+ if (accumulatedCoins.length > 0) {
33
+ tx.mergeCoins(firstCoin.coinObjectId, accumulatedCoins.map((c) => c.coinObjectId));
34
+ return tx.splitCoins(firstCoin.coinObjectId, pureAmounts);
35
+ }
36
+ return tx.splitCoins(firstCoin.coinObjectId, pureAmounts);
37
+ }
38
+ //# sourceMappingURL=coins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coins.js","sourceRoot":"","sources":["../../../../../src/services/utils/sui/coins.ts"],"names":[],"mappings":";;AAGA,kDAwBC;AAxBD,SAAgB,mBAAmB,CAAC,OAAiB,EAAE,KAAmB,EAAE,EAAe;IACzF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3B,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5F,IAAI,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,gBAAgB,GAAiB,EAAE,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,IAAI,cAAc,GAAG,cAAc,EAAE,CAAC;YACpC,OAAO,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,IAAI,cAAc,IAAI,cAAc,EAAE,CAAC;QACrC,OAAO,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,EAAe,EAAE,SAAqB,EAAE,gBAA8B,EAAE,OAAiB;IACnH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACzC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IACH,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,EAAE,CAAC,UAAU,CACX,SAAS,CAAC,YAAY,EACtB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAC5C,CAAC;QACF,OAAO,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAC5D,CAAC","sourcesContent":["import { CoinStruct } from \"@mysten/sui/client\";\nimport { Transaction } from \"@mysten/sui/transactions\";\n\nexport function getCoinsWithAmounts(amounts: string[], coins: CoinStruct[], tx: Transaction) {\n if (coins.length === 0 || !coins[0]) {\n return [];\n }\n const firstCoin = coins[0];\n const requiredAmount = amounts.reduce((total, amount) => total + BigInt(amount), BigInt(0));\n\n let currentBalance = BigInt(firstCoin.balance);\n const accumulatedCoins: CoinStruct[] = [];\n\n for (const coin of coins.slice(1)) {\n if (currentBalance > requiredAmount) {\n return splitAndMergeCoins(tx, firstCoin, accumulatedCoins, amounts);\n } else {\n currentBalance += BigInt(coin.balance);\n accumulatedCoins.push(coin);\n }\n }\n\n if (currentBalance >= requiredAmount) {\n return splitAndMergeCoins(tx, firstCoin, accumulatedCoins, amounts);\n } else {\n return [];\n }\n}\n\nfunction splitAndMergeCoins(tx: Transaction, firstCoin: CoinStruct, accumulatedCoins: CoinStruct[], amounts: string[]) {\n const pureAmounts = amounts.map((amount) => {\n return tx.pure.u64(amount);\n });\n if (accumulatedCoins.length > 0) {\n tx.mergeCoins(\n firstCoin.coinObjectId,\n accumulatedCoins.map((c) => c.coinObjectId)\n );\n return tx.splitCoins(firstCoin.coinObjectId, pureAmounts);\n }\n\n return tx.splitCoins(firstCoin.coinObjectId, pureAmounts);\n}\n"]}
@@ -0,0 +1,7 @@
1
+ interface PaginatedResults<Data> {
2
+ data: Data[];
3
+ hasNextPage: boolean;
4
+ nextCursor?: string | null;
5
+ }
6
+ export declare function fetchAllPagesRecursive<Data, Result extends PaginatedResults<Data>>(fetchFunction: (cursor?: string | null) => Promise<Result>, cursor?: string | null, accumulatedData?: Data[]): Promise<Data[]>;
7
+ export {};
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchAllPagesRecursive = fetchAllPagesRecursive;
4
+ async function fetchAllPagesRecursive(fetchFunction, cursor, accumulatedData = []) {
5
+ const result = await fetchFunction(cursor);
6
+ const newAccumulatedData = accumulatedData.concat(result.data);
7
+ if (result.hasNextPage && result.nextCursor) {
8
+ return fetchAllPagesRecursive(fetchFunction, result.nextCursor, newAccumulatedData);
9
+ }
10
+ else {
11
+ return newAccumulatedData;
12
+ }
13
+ }
14
+ //# sourceMappingURL=paginated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paginated.js","sourceRoot":"","sources":["../../../../../src/services/utils/sui/paginated.ts"],"names":[],"mappings":";;AAMA,wDAaC;AAbM,KAAK,UAAU,sBAAsB,CAC1C,aAA0D,EAC1D,MAAsB,EACtB,kBAA0B,EAAE;IAE5B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/D,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC5C,OAAO,sBAAsB,CAAC,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;IACtF,CAAC;SAAM,CAAC;QACN,OAAO,kBAAkB,CAAC;IAC5B,CAAC;AACH,CAAC","sourcesContent":["interface PaginatedResults<Data> {\n data: Data[];\n hasNextPage: boolean;\n nextCursor?: string | null;\n}\n\nexport async function fetchAllPagesRecursive<Data, Result extends PaginatedResults<Data>>(\n fetchFunction: (cursor?: string | null) => Promise<Result>,\n cursor?: string | null,\n accumulatedData: Data[] = []\n): Promise<Data[]> {\n const result = await fetchFunction(cursor);\n const newAccumulatedData = accumulatedData.concat(result.data);\n\n if (result.hasNextPage && result.nextCursor) {\n return fetchAllPagesRecursive(fetchFunction, result.nextCursor, newAccumulatedData);\n } else {\n return newAccumulatedData;\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import { SuiClient } from "@mysten/sui/client";
2
+ import { Transaction } from "@mysten/sui/transactions";
3
+ import { Reified, ToJSON, TypeArgument } from "../../models/sui/_framework/reified";
4
+ export declare function suiView<T extends TypeArgument>(client: SuiClient, tx: Transaction, reified: Reified<T, any>): Promise<ToJSON<T>>;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.suiView = suiView;
4
+ const reified_1 = require("../../models/sui/_framework/reified");
5
+ const mockSender = "0x0000000000000000000000000000000000000000000000000000000000000000";
6
+ async function suiView(client, tx, reified) {
7
+ const inspectionResult = await client.devInspectTransactionBlock({
8
+ sender: mockSender,
9
+ transactionBlock: tx,
10
+ });
11
+ if (inspectionResult.effects.status.status !== "success") {
12
+ throw new Error(`inspectionResult failed. ${JSON.stringify(inspectionResult, null, 2)}`);
13
+ }
14
+ const returnValue = inspectionResult.results?.pop()?.returnValues?.pop();
15
+ if (!returnValue) {
16
+ throw new Error(`Something with inspectionResult went wrong. ${JSON.stringify(inspectionResult, null, 2)}`);
17
+ }
18
+ const [data, _type] = returnValue;
19
+ if (typeof reified === "object") {
20
+ return reified.fromBcs(Uint8Array.from(data)).toJSONField();
21
+ }
22
+ else {
23
+ return (0, reified_1.toBcs)(reified).parse(Uint8Array.from(data));
24
+ }
25
+ }
26
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../../../../src/services/utils/sui/view.ts"],"names":[],"mappings":";;AAMA,0BA0BC;AA9BD,iEAA2F;AAE3F,MAAM,UAAU,GAAG,oEAAoE,CAAC;AAEjF,KAAK,UAAU,OAAO,CAC3B,MAAiB,EACjB,EAAe,EACf,OAAwB;IAExB,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC;QAC/D,MAAM,EAAE,UAAU;QAClB,gBAAgB,EAAE,EAAE;KACrB,CAAC,CAAC;IACH,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;IAEzE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,+CAA+C,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,WAAW,CAAC;IAElC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAe,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,OAAO,IAAA,eAAK,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,CAAC;AACH,CAAC","sourcesContent":["import { SuiClient } from \"@mysten/sui/client\";\nimport { Transaction } from \"@mysten/sui/transactions\";\nimport { Reified, toBcs, ToJSON, TypeArgument } from \"../../models/sui/_framework/reified\";\n\nconst mockSender = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n\nexport async function suiView<T extends TypeArgument>(\n client: SuiClient,\n tx: Transaction,\n reified: Reified<T, any>\n): Promise<ToJSON<T>> {\n const inspectionResult = await client.devInspectTransactionBlock({\n sender: mockSender,\n transactionBlock: tx,\n });\n if (inspectionResult.effects.status.status !== \"success\") {\n throw new Error(`inspectionResult failed. ${JSON.stringify(inspectionResult, null, 2)}`);\n }\n\n const returnValue = inspectionResult.results?.pop()?.returnValues?.pop();\n\n if (!returnValue) {\n throw new Error(`Something with inspectionResult went wrong. ${JSON.stringify(inspectionResult, null, 2)}`);\n }\n\n const [data, _type] = returnValue;\n\n if (typeof reified === \"object\") {\n return reified.fromBcs(Uint8Array.from(data)).toJSONField() as ToJSON<T>;\n } else {\n return toBcs(reified).parse(Uint8Array.from(data));\n }\n}\n"]}
@@ -34,6 +34,11 @@ export interface ChainDetails extends BasicChainProperties {
34
34
  * Number of confirmations required
35
35
  */
36
36
  confirmations: number;
37
+ /**
38
+ * Sui addresses
39
+ * Optional. Defined for SUI
40
+ */
41
+ suiAddresses?: SuiAddresses;
37
42
  }
38
43
  /**
39
44
  * Contains tokens list
@@ -112,6 +117,34 @@ export interface Token {
112
117
  * Token LP rate
113
118
  */
114
119
  lpRate: string;
120
+ /**
121
+ * Sui addresses
122
+ * Optional. Defined for SUI
123
+ */
124
+ suiAddresses?: SuiAddresses;
125
+ }
126
+ export interface SuiAddresses {
127
+ bridgeAddress: string;
128
+ bridgeAddressOrigin?: string;
129
+ bridgeObjectAddress: string;
130
+ allbridgeMessengerAddress: string;
131
+ allbridgeMessengerAddressOrigin?: string;
132
+ allbridgeMessengerObjectAddress: string;
133
+ gasOracleAddress: string;
134
+ gasOracleAddressOrigin?: string;
135
+ gasOracleObjectAddress: string;
136
+ utilsAddress: string;
137
+ wormholeMessengerAddress: string;
138
+ wormholeMessengerAddressOrigin?: string;
139
+ wormholeMessengerObjectAddress: string;
140
+ wormholeStateObjectAddress: string;
141
+ cctpAddress: string;
142
+ cctpAddressOrigin?: string;
143
+ cctpObjectAddress: string;
144
+ cctpDenyListObjectAddress: string;
145
+ cctpMessageTransmitterStateObjectAddress: string;
146
+ cctpTokenMessengerMinterStateObjectAddress: string;
147
+ cctpTreasuryObjectAddress: string;
115
148
  }
116
149
  /**
117
150
  * General Token Interface
@@ -1 +1 @@
1
- {"version":3,"file":"tokens-info.model.js","sourceRoot":"","sources":["../../../src/tokens-info/tokens-info.model.ts"],"names":[],"mappings":"","sourcesContent":["import { ChainSymbol } from \"../chains/chain.enums\";\nimport { BasicChainProperties } from \"../chains/models\";\nimport { Messenger } from \"../client/core-api/core-api.model\";\n\n/**\n * Type representing a map of blockchain chain symbols to their corresponding details, including token information.\n *\n * @typedef {Record<string, ChainDetailsWithTokens>} ChainDetailsMap\n * @property {string} chainSymbol - The symbol of the chain representing one of the supported blockchain networks (e.g., \"ETH\" for Ethereum). For more details, see: {@link ChainSymbol}.\n * @property {ChainDetailsWithTokens} chainDetails - The detailed information of the specified chain, including token information.\n */\nexport type ChainDetailsMap = Record<string, ChainDetailsWithTokens>;\n\nexport type ChainDetailsMapWithFlags = Record<string, ChainDetailsWithTokensWithFlags>;\n\n/**\n * Contains some blockchain details\n */\nexport interface ChainDetails extends BasicChainProperties {\n /**\n * Allbridge's Id\n */\n allbridgeChainId: number;\n /**\n * Bridge contract address\n */\n bridgeAddress: string;\n /**\n * Average transfer time to other blockchains\n */\n transferTime: TransferTime;\n /**\n * Transfers costs\n */\n txCostAmount: TxCostAmount;\n /**\n * Number of confirmations required\n */\n confirmations: number;\n}\n\n/**\n * Contains tokens list\n */\nexport interface ChainDetailsWithTokens extends ChainDetails {\n /**\n * Tokens\n */\n tokens: TokenWithChainDetails[];\n}\n\n/**\n * Contains tokens list\n */\nexport interface ChainDetailsWithTokensWithFlags extends ChainDetails {\n /**\n * Tokens\n */\n tokens: TokenWithChainDetailsWithFlags[];\n}\n\n/**\n * Contains token information\n */\nexport interface Token {\n /**\n * Token symbol\n */\n symbol: string;\n /**\n * Token name\n */\n name: string;\n /**\n * Token decimals\n */\n decimals: number;\n /**\n * Token pool address\n */\n poolAddress: string;\n /**\n * Token address\n */\n tokenAddress: string;\n /**\n * Token origin address\n */\n originTokenAddress?: string;\n /**\n * Token CCTP address</br>\n * Optional. Defined if CCTP supported by token\n */\n cctpAddress?: string;\n /**\n * Token CCTP address</br>\n * Optional. Defined if CCTP supported by token\n */\n cctpFeeShare?: string;\n /**\n * Token fee share\n */\n feeShare: string;\n /**\n * @deprecated use {@link apr7d}</br>\n * Token APR\n */\n apr: string;\n /**\n * Token APR based on last 7 days\n */\n apr7d: string;\n /**\n * Token APR based on last 30 days\n */\n apr30d: string;\n /**\n * Token LP rate\n */\n lpRate: string;\n}\n\n/**\n * General Token Interface\n */\nexport interface TokenWithChainDetails extends Token, Omit<ChainDetails, \"name\"> {\n /**\n * Blockchain network name\n */\n chainName: string;\n}\n\nexport interface TokenWithChainDetailsWithFlags extends TokenWithChainDetails {\n flags: { swap: boolean; pool: boolean };\n}\n\n/**\n * General Pool Interface\n */\nexport interface PoolInfo {\n /**\n * Pool A value\n */\n aValue: string;\n /**\n * Pool D value\n */\n dValue: string;\n /**\n * Pool token balance\n */\n tokenBalance: string;\n /**\n * Pool virtual USD balance\n */\n vUsdBalance: string;\n /**\n * Pool total liquidity amount\n */\n totalLpAmount: string;\n /**\n * Current accumulated reward per share shifted by P bits\n */\n accRewardPerShareP: string;\n /**\n * P value, needed for accRewardPerShareP\n */\n p: number;\n /**\n * Pool imbalance\n */\n imbalance: string;\n}\n\n/**\n * Type representing transfer times for various blockchain chains.\n *\n * @typedef {Record<string, MessengerTransferTime>} TransferTime\n * @property {chain} chainSymbol\n * @property {MessengerTransferTime} transferTime - The average transfer time details for the specified chain.\n */\nexport type TransferTime = {\n [chain in ChainSymbol]?: MessengerTransferTime;\n};\n\n/**\n * Contains Avg transaction time withing different messenger protocols\n */\nexport type MessengerTransferTime = {\n [messenger in Messenger]?: number;\n};\n\nexport interface PoolKeyObject {\n chainSymbol: string;\n poolAddress: string;\n}\n\n/**\n * Contains transfer costs\n */\nexport interface TxCostAmount {\n /**\n * The maximum gas amount that can be received as extra gas for one transfer\n */\n maxAmount: string;\n /**\n * Swap cost\n */\n swap: string;\n /**\n * Transfer cost\n */\n transfer: string;\n}\n\nexport type PoolInfoMap = Record<string, PoolInfo>;\n"]}
1
+ {"version":3,"file":"tokens-info.model.js","sourceRoot":"","sources":["../../../src/tokens-info/tokens-info.model.ts"],"names":[],"mappings":"","sourcesContent":["import { ChainSymbol } from \"../chains/chain.enums\";\nimport { BasicChainProperties } from \"../chains/models\";\nimport { Messenger } from \"../client/core-api/core-api.model\";\n\n/**\n * Type representing a map of blockchain chain symbols to their corresponding details, including token information.\n *\n * @typedef {Record<string, ChainDetailsWithTokens>} ChainDetailsMap\n * @property {string} chainSymbol - The symbol of the chain representing one of the supported blockchain networks (e.g., \"ETH\" for Ethereum). For more details, see: {@link ChainSymbol}.\n * @property {ChainDetailsWithTokens} chainDetails - The detailed information of the specified chain, including token information.\n */\nexport type ChainDetailsMap = Record<string, ChainDetailsWithTokens>;\n\nexport type ChainDetailsMapWithFlags = Record<string, ChainDetailsWithTokensWithFlags>;\n\n/**\n * Contains some blockchain details\n */\nexport interface ChainDetails extends BasicChainProperties {\n /**\n * Allbridge's Id\n */\n allbridgeChainId: number;\n /**\n * Bridge contract address\n */\n bridgeAddress: string;\n /**\n * Average transfer time to other blockchains\n */\n transferTime: TransferTime;\n /**\n * Transfers costs\n */\n txCostAmount: TxCostAmount;\n /**\n * Number of confirmations required\n */\n confirmations: number;\n /**\n * Sui addresses\n * Optional. Defined for SUI\n */\n suiAddresses?: SuiAddresses;\n}\n\n/**\n * Contains tokens list\n */\nexport interface ChainDetailsWithTokens extends ChainDetails {\n /**\n * Tokens\n */\n tokens: TokenWithChainDetails[];\n}\n\n/**\n * Contains tokens list\n */\nexport interface ChainDetailsWithTokensWithFlags extends ChainDetails {\n /**\n * Tokens\n */\n tokens: TokenWithChainDetailsWithFlags[];\n}\n\n/**\n * Contains token information\n */\nexport interface Token {\n /**\n * Token symbol\n */\n symbol: string;\n /**\n * Token name\n */\n name: string;\n /**\n * Token decimals\n */\n decimals: number;\n /**\n * Token pool address\n */\n poolAddress: string;\n /**\n * Token address\n */\n tokenAddress: string;\n /**\n * Token origin address\n */\n originTokenAddress?: string;\n /**\n * Token CCTP address</br>\n * Optional. Defined if CCTP supported by token\n */\n cctpAddress?: string;\n /**\n * Token CCTP address</br>\n * Optional. Defined if CCTP supported by token\n */\n cctpFeeShare?: string;\n /**\n * Token fee share\n */\n feeShare: string;\n /**\n * @deprecated use {@link apr7d}</br>\n * Token APR\n */\n apr: string;\n /**\n * Token APR based on last 7 days\n */\n apr7d: string;\n /**\n * Token APR based on last 30 days\n */\n apr30d: string;\n /**\n * Token LP rate\n */\n lpRate: string;\n /**\n * Sui addresses\n * Optional. Defined for SUI\n */\n suiAddresses?: SuiAddresses;\n}\n\nexport interface SuiAddresses {\n bridgeAddress: string;\n bridgeAddressOrigin?: string;\n bridgeObjectAddress: string;\n\n allbridgeMessengerAddress: string;\n allbridgeMessengerAddressOrigin?: string;\n allbridgeMessengerObjectAddress: string;\n\n gasOracleAddress: string;\n gasOracleAddressOrigin?: string;\n gasOracleObjectAddress: string;\n\n utilsAddress: string;\n\n wormholeMessengerAddress: string;\n wormholeMessengerAddressOrigin?: string;\n wormholeMessengerObjectAddress: string;\n wormholeStateObjectAddress: string;\n\n cctpAddress: string;\n cctpAddressOrigin?: string;\n cctpObjectAddress: string;\n\n cctpDenyListObjectAddress: string;\n cctpMessageTransmitterStateObjectAddress: string;\n cctpTokenMessengerMinterStateObjectAddress: string;\n cctpTreasuryObjectAddress: string;\n}\n\n/**\n * General Token Interface\n */\nexport interface TokenWithChainDetails extends Token, Omit<ChainDetails, \"name\"> {\n /**\n * Blockchain network name\n */\n chainName: string;\n}\n\nexport interface TokenWithChainDetailsWithFlags extends TokenWithChainDetails {\n flags: { swap: boolean; pool: boolean };\n}\n\n/**\n * General Pool Interface\n */\nexport interface PoolInfo {\n /**\n * Pool A value\n */\n aValue: string;\n /**\n * Pool D value\n */\n dValue: string;\n /**\n * Pool token balance\n */\n tokenBalance: string;\n /**\n * Pool virtual USD balance\n */\n vUsdBalance: string;\n /**\n * Pool total liquidity amount\n */\n totalLpAmount: string;\n /**\n * Current accumulated reward per share shifted by P bits\n */\n accRewardPerShareP: string;\n /**\n * P value, needed for accRewardPerShareP\n */\n p: number;\n /**\n * Pool imbalance\n */\n imbalance: string;\n}\n\n/**\n * Type representing transfer times for various blockchain chains.\n *\n * @typedef {Record<string, MessengerTransferTime>} TransferTime\n * @property {chain} chainSymbol\n * @property {MessengerTransferTime} transferTime - The average transfer time details for the specified chain.\n */\nexport type TransferTime = {\n [chain in ChainSymbol]?: MessengerTransferTime;\n};\n\n/**\n * Contains Avg transaction time withing different messenger protocols\n */\nexport type MessengerTransferTime = {\n [messenger in Messenger]?: number;\n};\n\nexport interface PoolKeyObject {\n chainSymbol: string;\n poolAddress: string;\n}\n\n/**\n * Contains transfer costs\n */\nexport interface TxCostAmount {\n /**\n * The maximum gas amount that can be received as extra gas for one transfer\n */\n maxAmount: string;\n /**\n * Swap cost\n */\n swap: string;\n /**\n * Transfer cost\n */\n transfer: string;\n}\n\nexport type PoolInfoMap = Record<string, PoolInfo>;\n"]}
@@ -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\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 +1 @@
1
- {"version":3,"file":"swap-and-bridge-details.js","sourceRoot":"","sources":["../../../../src/utils/calculation/swap-and-bridge-details.ts"],"names":[],"mappings":";;AAcA,oDAyCC;AAvDD,mCAA6B;AAE7B,mCAAiG;AAYjG,SAAgB,oBAAoB,CAClC,sBAA8B,EAC9B,WAAkC,EAClC,UAAoB,EACpB,SAAgC,EAChC,QAAkB;IAElB,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC,sBAAsB,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACzE,MAAM,oBAAoB,GAAG,IAAA,2BAAmB,EAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG,IAAA,YAAG,EAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7E,MAAM,cAAc,GAAG,IAAA,YAAG,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAA,YAAG,EAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvF,OAAO;QACL,YAAY,EAAE;YACZ,GAAG,EAAE,IAAA,+BAAuB,EAAC,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC;iBAC7D,GAAG,EAAE;iBACL,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAG,CAAC,OAAO,CAAC;iBACxC,OAAO,EAAE;YACZ,IAAI,EAAE,IAAA,+BAAuB,EAC3B,IAAA,YAAG,EAAC,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,YAAG,CAAC,OAAO,CAAC;iBACxC,OAAO,EAAE;SACb;QACD,UAAU,EAAE;YACV,GAAG,EAAE,IAAA,+BAAuB,EAAC,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC;iBAC7D,GAAG,EAAE;iBACL,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAG,CAAC,OAAO,CAAC;iBACtC,OAAO,EAAE;YACZ,IAAI,EAAE,IAAA,+BAAuB,EAC3B,IAAA,2BAAmB,EAAC,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,YAAG,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":";;AAcA,oDAyCC;AAvDD,mCAA6B;AAE7B,mCAAiG;AAYjG,SAAgB,oBAAoB,CAClC,sBAA8B,EAC9B,WAAkC,EAClC,UAAoB,EACpB,SAAgC,EAChC,QAAkB;IAElB,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC,sBAAsB,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;IACzE,MAAM,oBAAoB,GAAG,IAAA,2BAAmB,EAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,IAAA,oBAAY,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG,IAAA,YAAG,EAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7E,MAAM,cAAc,GAAG,IAAA,YAAG,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAA,YAAG,EAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvF,OAAO;QACL,YAAY,EAAE;YACZ,GAAG,EAAE,IAAA,+BAAuB,EAAC,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC;iBAC7D,GAAG,EAAE;iBACL,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAG,CAAC,OAAO,CAAC;iBACxC,OAAO,EAAE;YACZ,IAAI,EAAE,IAAA,+BAAuB,EAC3B,IAAA,YAAG,EAAC,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,YAAG,CAAC,OAAO,CAAC;iBACxC,OAAO,EAAE;SACb;QACD,UAAU,EAAE;YACV,GAAG,EAAE,IAAA,+BAAuB,EAAC,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC;iBAC7D,GAAG,EAAE;iBACL,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAG,CAAC,OAAO,CAAC;iBACtC,OAAO,EAAE;YACZ,IAAI,EAAE,IAAA,+BAAuB,EAC3B,IAAA,2BAAmB,EAAC,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,YAAG,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"]}