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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/browser/index.js +2 -2
  2. package/dist/browser/index.js.map +4 -4
  3. package/dist/cjs/index.js +2 -2
  4. package/dist/cjs/index.js.map +4 -4
  5. package/dist/esm/index.js +2 -2
  6. package/dist/esm/index.js.map +4 -4
  7. package/dist/src/client/core-api/api-client-caching.d.ts +2 -0
  8. package/dist/src/client/core-api/api-client-caching.js +2 -0
  9. package/dist/src/client/core-api/api-client-caching.js.map +1 -1
  10. package/dist/src/client/core-api/api-client.d.ts +5 -0
  11. package/dist/src/client/core-api/api-client.js +2 -0
  12. package/dist/src/client/core-api/api-client.js.map +1 -1
  13. package/dist/src/client/core-api/core-api-mapper.d.ts +15 -0
  14. package/dist/src/client/core-api/core-api-mapper.js +15 -0
  15. package/dist/src/client/core-api/core-api-mapper.js.map +1 -1
  16. package/dist/src/client/core-api/core-api.model.d.ts +30 -0
  17. package/dist/src/client/core-api/core-api.model.js +4 -0
  18. package/dist/src/client/core-api/core-api.model.js.map +1 -1
  19. package/dist/src/client/core-api/core-client-base.d.ts +9 -0
  20. package/dist/src/client/core-api/core-client-base.js +3 -0
  21. package/dist/src/client/core-api/core-client-base.js.map +1 -1
  22. package/dist/src/client/core-api/core-client-filtered.d.ts +16 -0
  23. package/dist/src/client/core-api/core-client-filtered.js +4 -0
  24. package/dist/src/client/core-api/core-client-filtered.js.map +1 -1
  25. package/dist/src/client/core-api/core-client-pool-info-caching.d.ts +13 -0
  26. package/dist/src/client/core-api/core-client-pool-info-caching.js +7 -0
  27. package/dist/src/client/core-api/core-client-pool-info-caching.js.map +1 -1
  28. package/dist/src/exceptions/exceptions.d.ts +4 -0
  29. package/dist/src/exceptions/exceptions.js +4 -0
  30. package/dist/src/exceptions/exceptions.js.map +1 -1
  31. package/dist/src/index.d.ts +48 -30
  32. package/dist/src/index.js +17 -86
  33. package/dist/src/index.js.map +1 -1
  34. package/dist/src/models/index.d.ts +2 -1
  35. package/dist/src/models/index.js.map +1 -1
  36. package/dist/src/services/bridge/alg/index.d.ts +1 -0
  37. package/dist/src/services/bridge/alg/index.js +1 -0
  38. package/dist/src/services/bridge/alg/index.js.map +1 -1
  39. package/dist/src/services/bridge/evm/index.d.ts +2 -0
  40. package/dist/src/services/bridge/evm/index.js +2 -0
  41. package/dist/src/services/bridge/evm/index.js.map +1 -1
  42. package/dist/src/services/bridge/index.d.ts +4 -2
  43. package/dist/src/services/bridge/index.js +7 -45
  44. package/dist/src/services/bridge/index.js.map +1 -1
  45. package/dist/src/services/bridge/models/bridge.d.ts +1 -0
  46. package/dist/src/services/bridge/models/bridge.js.map +1 -1
  47. package/dist/src/services/bridge/models/bridge.model.d.ts +14 -6
  48. package/dist/src/services/bridge/models/bridge.model.js.map +1 -1
  49. package/dist/src/services/bridge/raw-bridge-transaction-builder.d.ts +6 -0
  50. package/dist/src/services/bridge/raw-bridge-transaction-builder.js +3 -2
  51. package/dist/src/services/bridge/raw-bridge-transaction-builder.js.map +1 -1
  52. package/dist/src/services/bridge/sol/bridge-tx-service.d.ts +3 -1
  53. package/dist/src/services/bridge/sol/bridge-tx-service.js +4 -0
  54. package/dist/src/services/bridge/sol/bridge-tx-service.js.map +1 -1
  55. package/dist/src/services/bridge/sol/index.d.ts +3 -1
  56. package/dist/src/services/bridge/sol/index.js +1 -0
  57. package/dist/src/services/bridge/sol/index.js.map +1 -1
  58. package/dist/src/services/bridge/sol/payer-with-token-service.js +3 -0
  59. package/dist/src/services/bridge/sol/payer-with-token-service.js.map +1 -1
  60. package/dist/src/services/bridge/spender.d.ts +4 -0
  61. package/dist/src/services/bridge/spender.js +45 -0
  62. package/dist/src/services/bridge/spender.js.map +1 -0
  63. package/dist/src/services/bridge/srb/index.d.ts +2 -0
  64. package/dist/src/services/bridge/srb/index.js +2 -0
  65. package/dist/src/services/bridge/srb/index.js.map +1 -1
  66. package/dist/src/services/bridge/stx/index.d.ts +1 -0
  67. package/dist/src/services/bridge/stx/index.js +1 -0
  68. package/dist/src/services/bridge/stx/index.js.map +1 -1
  69. package/dist/src/services/bridge/sui/index.d.ts +1 -0
  70. package/dist/src/services/bridge/sui/index.js +1 -0
  71. package/dist/src/services/bridge/sui/index.js.map +1 -1
  72. package/dist/src/services/bridge/trx/index.d.ts +2 -0
  73. package/dist/src/services/bridge/trx/index.js +2 -0
  74. package/dist/src/services/bridge/trx/index.js.map +1 -1
  75. package/dist/src/services/bridge/utils.d.ts +4 -0
  76. package/dist/src/services/bridge/utils.js +1 -0
  77. package/dist/src/services/bridge/utils.js.map +1 -1
  78. package/dist/src/services/index.d.ts +25 -2
  79. package/dist/src/services/index.js +17 -2
  80. package/dist/src/services/index.js.map +1 -1
  81. package/dist/src/services/liquidity-pool/alg/index.d.ts +3 -0
  82. package/dist/src/services/liquidity-pool/alg/index.js +3 -0
  83. package/dist/src/services/liquidity-pool/alg/index.js.map +1 -1
  84. package/dist/src/services/liquidity-pool/evm/index.d.ts +3 -0
  85. package/dist/src/services/liquidity-pool/evm/index.js +3 -0
  86. package/dist/src/services/liquidity-pool/evm/index.js.map +1 -1
  87. package/dist/src/services/liquidity-pool/index.d.ts +19 -0
  88. package/dist/src/services/liquidity-pool/index.js +9 -1
  89. package/dist/src/services/liquidity-pool/index.js.map +1 -1
  90. package/dist/src/services/liquidity-pool/models/pool.d.ts +8 -0
  91. package/dist/src/services/liquidity-pool/models/pool.js +3 -0
  92. package/dist/src/services/liquidity-pool/models/pool.js.map +1 -1
  93. package/dist/src/services/liquidity-pool/models/pool.model.d.ts +27 -0
  94. package/dist/src/services/liquidity-pool/models/pool.model.js +3 -0
  95. package/dist/src/services/liquidity-pool/models/pool.model.js.map +1 -1
  96. package/dist/src/services/liquidity-pool/raw-pool-transaction-builder.d.ts +11 -0
  97. package/dist/src/services/liquidity-pool/raw-pool-transaction-builder.js +3 -0
  98. package/dist/src/services/liquidity-pool/raw-pool-transaction-builder.js.map +1 -1
  99. package/dist/src/services/liquidity-pool/sol/index.d.ts +3 -0
  100. package/dist/src/services/liquidity-pool/sol/index.js +3 -0
  101. package/dist/src/services/liquidity-pool/sol/index.js.map +1 -1
  102. package/dist/src/services/liquidity-pool/srb/index.d.ts +3 -0
  103. package/dist/src/services/liquidity-pool/srb/index.js +3 -0
  104. package/dist/src/services/liquidity-pool/srb/index.js.map +1 -1
  105. package/dist/src/services/liquidity-pool/stx/index.d.ts +3 -0
  106. package/dist/src/services/liquidity-pool/stx/index.js +3 -0
  107. package/dist/src/services/liquidity-pool/stx/index.js.map +1 -1
  108. package/dist/src/services/liquidity-pool/sui/index.d.ts +3 -0
  109. package/dist/src/services/liquidity-pool/sui/index.js +3 -0
  110. package/dist/src/services/liquidity-pool/sui/index.js.map +1 -1
  111. package/dist/src/services/liquidity-pool/trx/index.d.ts +3 -0
  112. package/dist/src/services/liquidity-pool/trx/index.js +3 -0
  113. package/dist/src/services/liquidity-pool/trx/index.js.map +1 -1
  114. package/dist/src/services/utils/calculation/index.d.ts +6 -0
  115. package/dist/src/services/utils/calculation/index.js +6 -0
  116. package/dist/src/services/utils/calculation/index.js.map +1 -1
  117. package/dist/src/services/utils/sol/index.d.ts +6 -0
  118. package/dist/src/services/utils/sol/index.js +6 -0
  119. package/dist/src/services/utils/sol/index.js.map +1 -1
  120. package/dist/src/tokens-info/tokens-info.model.d.ts +24 -0
  121. package/dist/src/tokens-info/tokens-info.model.js.map +1 -1
  122. package/dist/src/utils/calculation/index.d.ts +26 -0
  123. package/dist/src/utils/calculation/index.js +26 -0
  124. package/dist/src/utils/calculation/index.js.map +1 -1
  125. package/dist/src/utils/calculation/swap-and-bridge-details.d.ts +9 -0
  126. package/dist/src/utils/calculation/swap-and-bridge-details.js +3 -0
  127. package/dist/src/utils/calculation/swap-and-bridge-details.js.map +1 -1
  128. package/dist/src/utils/calculation/swap-and-bridge-fee-calc.d.ts +18 -0
  129. package/dist/src/utils/calculation/swap-and-bridge-fee-calc.js +6 -0
  130. package/dist/src/utils/calculation/swap-and-bridge-fee-calc.js.map +1 -1
  131. package/dist/src/utils/utils.d.ts +3 -0
  132. package/dist/src/utils/utils.js +3 -0
  133. package/dist/src/utils/utils.js.map +1 -1
  134. package/dist/src/version.d.ts +1 -1
  135. package/dist/src/version.js +1 -1
  136. package/dist/src/version.js.map +1 -1
  137. package/package.json +1 -1
@@ -4,6 +4,9 @@ import { AllbridgeCoreSdkOptions } from "../../../index";
4
4
  import { PoolInfo, TokenWithChainDetails } from "../../../tokens-info";
5
5
  import { RawStxTransaction } from "../../models";
6
6
  import { ChainPoolService, LiquidityPoolsParams, LiquidityPoolsParamsWithAmount, UserBalanceInfo } from "../models";
7
+ /**
8
+ * @deprecated Do not use.
9
+ */
7
10
  export declare class StxPoolService extends ChainPoolService {
8
11
  nodeRpcUrl: string;
9
12
  params: AllbridgeCoreSdkOptions;
@@ -9,6 +9,9 @@ import { stacksContracts as contracts } from "../../models/stx/clarigen-types";
9
9
  import { getTokenName } from "../../utils/stx/get-token-name";
10
10
  import { getFungiblePostCondition } from "../../utils/stx/post-conditions";
11
11
  import { ChainPoolService, UserBalance, } from "../models";
12
+ /**
13
+ * @deprecated Do not use.
14
+ */
12
15
  export class StxPoolService extends ChainPoolService {
13
16
  nodeRpcUrl;
14
17
  params;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/stx/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { ClarigenClient, contractFactory } from \"@clarigen/core\";\nimport { createNetwork } from \"@stacks/network\";\nimport {\n makeRandomPrivKey,\n makeUnsignedContractCall,\n PostConditionMode,\n privateKeyToPublic,\n} from \"@stacks/transactions\";\nimport { Big } from \"big.js\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { SdkError } from \"../../../exceptions\";\nimport { AllbridgeCoreSdkOptions } from \"../../../index\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../../tokens-info\";\nimport { calculatePoolInfoImbalance, fromSystemPrecision } from \"../../../utils/calculation\";\nimport { RawStxTransaction } from \"../../models\";\nimport { stacksContracts as contracts } from \"../../models/stx/clarigen-types\";\nimport { getTokenName } from \"../../utils/stx/get-token-name\";\nimport { getFungiblePostCondition } from \"../../utils/stx/post-conditions\";\nimport {\n ChainPoolService,\n LiquidityPoolsParams,\n LiquidityPoolsParamsWithAmount,\n UserBalance,\n UserBalanceInfo,\n} from \"../models\";\n\nexport class StxPoolService extends ChainPoolService {\n chainType: ChainType.STX = ChainType.STX;\n\n private P = 48;\n private A = \"20\";\n private client: ClarigenClient;\n\n constructor(\n public nodeRpcUrl: string,\n public params: AllbridgeCoreSdkOptions,\n public api: AllbridgeCoreClient\n ) {\n super();\n const network = createNetwork({\n network: this.params.stxIsTestnet ? \"testnet\" : \"mainnet\",\n client: { baseUrl: this.nodeRpcUrl },\n apiKey: this.params.stxHeroApiKey,\n });\n this.client = new ClarigenClient(network, this.params.stxHeroApiKey);\n }\n\n async getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo> {\n const pool = contractFactory(contracts.pool, token.poolAddress);\n\n const lpAmount = await this.client.ro(pool.getLpBalance({ user: accountAddress }));\n const rewardDebt = await this.client.ro(pool.getUserRewardDebt({ user: accountAddress }));\n\n return new UserBalance({ lpAmount: lpAmount.toString(), rewardDebt: rewardDebt.toString() });\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo> {\n const pool = contractFactory(contracts.pool, token.poolAddress);\n\n const [dValueRaw, tokenBalanceRaw, vUsdBalanceRaw, totalLpAmountRaw, accRewardPerSharePRaw] = await Promise.all([\n this.client.ro(pool.getD()),\n this.client.ro(pool.getTokenBalance()),\n this.client.ro(pool.getVusdBalance()),\n this.client.ro(pool.getLpTotalSupply()),\n this.client.ro(pool.getAccRewardPerShareP()),\n ]);\n\n const dValue = dValueRaw.toString();\n const tokenBalance = tokenBalanceRaw.toString();\n const vUsdBalance = vUsdBalanceRaw.toString();\n const totalLpAmount = totalLpAmountRaw.toString();\n const accRewardPerShareP = accRewardPerSharePRaw.toString();\n if (dValue && tokenBalance && vUsdBalance && totalLpAmount && accRewardPerShareP) {\n const imbalance = calculatePoolInfoImbalance({ tokenBalance, vUsdBalance });\n return {\n aValue: this.A,\n dValue,\n tokenBalance,\n vUsdBalance,\n totalLpAmount,\n accRewardPerShareP,\n p: this.P,\n imbalance,\n };\n }\n throw new SdkError(\"Unable to pool info from chain\");\n }\n\n async buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawStxTransaction> {\n const pool = contractFactory(contracts.pool, params.token.poolAddress);\n\n const { contractAddress, contractName, functionName, functionArgs } = pool.deposit({\n amount: BigInt(params.amount),\n ftRef: params.token.tokenAddress,\n });\n\n const privateKey = makeRandomPrivKey();\n const publicKey = privateKeyToPublic(privateKey);\n\n const userPostFungibleCondition = getFungiblePostCondition(\n params.amount,\n \"lte\",\n params.accountAddress,\n params.token.tokenAddress,\n getTokenName(params.token)\n );\n\n const claimRewardsPostFungibleCondition = getFungiblePostCondition(\n 0,\n \"gte\",\n params.token.poolAddress,\n params.token.tokenAddress,\n getTokenName(params.token)\n );\n\n const txOptions = {\n contractAddress,\n contractName,\n functionName,\n functionArgs,\n publicKey,\n validateWithAbi: true,\n network: this.client.network,\n postConditions: [userPostFungibleCondition, claimRewardsPostFungibleCondition],\n postConditionMode: PostConditionMode.Deny,\n };\n const transaction = await makeUnsignedContractCall(txOptions);\n return transaction.serialize();\n }\n\n async buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawStxTransaction> {\n const pool = contractFactory(contracts.pool, params.token.poolAddress);\n\n const { contractAddress, contractName, functionName, functionArgs } = pool.withdraw({\n amountLp: BigInt(params.amount),\n ftRef: params.token.tokenAddress,\n });\n\n const privateKey = makeRandomPrivKey();\n const publicKey = privateKeyToPublic(privateKey);\n\n const poolPostFungibleCondition = getFungiblePostCondition(\n fromSystemPrecision(params.amount, params.token.decimals).toFixed(0, Big.roundDown),\n \"gte\",\n params.token.poolAddress,\n params.token.tokenAddress,\n getTokenName(params.token)\n );\n const txOptions = {\n contractAddress,\n contractName,\n functionName,\n functionArgs,\n publicKey,\n validateWithAbi: true,\n network: this.client.network,\n postConditions: [poolPostFungibleCondition],\n postConditionMode: PostConditionMode.Deny,\n };\n const transaction = await makeUnsignedContractCall(txOptions);\n return transaction.serialize();\n }\n\n async buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawStxTransaction> {\n const pool = contractFactory(contracts.pool, params.token.poolAddress);\n\n const { contractAddress, contractName, functionName, functionArgs } = pool.claimRewards({\n ftRef: params.token.tokenAddress,\n });\n\n const privateKey = makeRandomPrivKey();\n const publicKey = privateKeyToPublic(privateKey);\n\n const poolPostFungibleCondition = getFungiblePostCondition(\n 0,\n \"gte\",\n params.token.poolAddress,\n params.token.tokenAddress,\n getTokenName(params.token)\n );\n const txOptions = {\n contractAddress,\n contractName,\n functionName,\n functionArgs,\n publicKey,\n validateWithAbi: true,\n network: this.client.network,\n postConditions: [poolPostFungibleCondition],\n postConditionMode: PostConditionMode.Deny,\n };\n const transaction = await makeUnsignedContractCall(txOptions);\n return transaction.serialize();\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/stx/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C,OAAO,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE7F,OAAO,EAAE,eAAe,IAAI,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EACL,gBAAgB,EAGhB,WAAW,GAEZ,MAAM,WAAW,CAAC;AAEnB;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IAQzC;IACA;IACA;IATT,SAAS,GAAkB,SAAS,CAAC,GAAG,CAAC;IAEjC,CAAC,GAAG,EAAE,CAAC;IACP,CAAC,GAAG,IAAI,CAAC;IACT,MAAM,CAAiB;IAE/B,YACS,UAAkB,EAClB,MAA+B,EAC/B,GAAwB;QAE/B,KAAK,EAAE,CAAC;QAJD,eAAU,GAAV,UAAU,CAAQ;QAClB,WAAM,GAAN,MAAM,CAAyB;QAC/B,QAAG,GAAH,GAAG,CAAqB;QAG/B,MAAM,OAAO,GAAG,aAAa,CAAC;YAC5B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACzD,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,cAAsB,EAAE,KAA4B;QAC3E,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAEhE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QACnF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;QAE1F,OAAO,IAAI,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAA4B;QACrD,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;QAEhE,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9G,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC7C,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC;QAClD,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,QAAQ,EAAE,CAAC;QAC5D,IAAI,MAAM,IAAI,YAAY,IAAI,WAAW,IAAI,aAAa,IAAI,kBAAkB,EAAE,CAAC;YACjF,MAAM,SAAS,GAAG,0BAA0B,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;YAC5E,OAAO;gBACL,MAAM,EAAE,IAAI,CAAC,CAAC;gBACd,MAAM;gBACN,YAAY;gBACZ,WAAW;gBACX,aAAa;gBACb,kBAAkB;gBAClB,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,SAAS;aACV,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,QAAQ,CAAC,gCAAgC,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,MAAsC;QACrE,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAEvE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YACjF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY;SACjC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAEjD,MAAM,yBAAyB,GAAG,wBAAwB,CACxD,MAAM,CAAC,MAAM,EACb,KAAK,EACL,MAAM,CAAC,cAAc,EACrB,MAAM,CAAC,KAAK,CAAC,YAAY,EACzB,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAC3B,CAAC;QAEF,MAAM,iCAAiC,GAAG,wBAAwB,CAChE,CAAC,EACD,KAAK,EACL,MAAM,CAAC,KAAK,CAAC,WAAW,EACxB,MAAM,CAAC,KAAK,CAAC,YAAY,EACzB,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAC3B,CAAC;QAEF,MAAM,SAAS,GAAG;YAChB,eAAe;YACf,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,SAAS;YACT,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,cAAc,EAAE,CAAC,yBAAyB,EAAE,iCAAiC,CAAC;YAC9E,iBAAiB,EAAE,iBAAiB,CAAC,IAAI;SAC1C,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAC9D,OAAO,WAAW,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,MAAsC;QACtE,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAEvE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC;YAClF,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAC/B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY;SACjC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAEjD,MAAM,yBAAyB,GAAG,wBAAwB,CACxD,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,EACnF,KAAK,EACL,MAAM,CAAC,KAAK,CAAC,WAAW,EACxB,MAAM,CAAC,KAAK,CAAC,YAAY,EACzB,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAC3B,CAAC;QACF,MAAM,SAAS,GAAG;YAChB,eAAe;YACf,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,SAAS;YACT,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,cAAc,EAAE,CAAC,yBAAyB,CAAC;YAC3C,iBAAiB,EAAE,iBAAiB,CAAC,IAAI;SAC1C,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAC9D,OAAO,WAAW,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,+BAA+B,CAAC,MAA4B;QAChE,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAEvE,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;YACtF,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY;SACjC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAEjD,MAAM,yBAAyB,GAAG,wBAAwB,CACxD,CAAC,EACD,KAAK,EACL,MAAM,CAAC,KAAK,CAAC,WAAW,EACxB,MAAM,CAAC,KAAK,CAAC,YAAY,EACzB,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAC3B,CAAC;QACF,MAAM,SAAS,GAAG;YAChB,eAAe;YACf,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,SAAS;YACT,eAAe,EAAE,IAAI;YACrB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,cAAc,EAAE,CAAC,yBAAyB,CAAC;YAC3C,iBAAiB,EAAE,iBAAiB,CAAC,IAAI;SAC1C,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,SAAS,CAAC,CAAC;QAC9D,OAAO,WAAW,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC;CACF","sourcesContent":["import { ClarigenClient, contractFactory } from \"@clarigen/core\";\nimport { createNetwork } from \"@stacks/network\";\nimport {\n makeRandomPrivKey,\n makeUnsignedContractCall,\n PostConditionMode,\n privateKeyToPublic,\n} from \"@stacks/transactions\";\nimport { Big } from \"big.js\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { SdkError } from \"../../../exceptions\";\nimport { AllbridgeCoreSdkOptions } from \"../../../index\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../../tokens-info\";\nimport { calculatePoolInfoImbalance, fromSystemPrecision } from \"../../../utils/calculation\";\nimport { RawStxTransaction } from \"../../models\";\nimport { stacksContracts as contracts } from \"../../models/stx/clarigen-types\";\nimport { getTokenName } from \"../../utils/stx/get-token-name\";\nimport { getFungiblePostCondition } from \"../../utils/stx/post-conditions\";\nimport {\n ChainPoolService,\n LiquidityPoolsParams,\n LiquidityPoolsParamsWithAmount,\n UserBalance,\n UserBalanceInfo,\n} from \"../models\";\n\n/**\n * @deprecated Do not use.\n */\nexport class StxPoolService extends ChainPoolService {\n chainType: ChainType.STX = ChainType.STX;\n\n private P = 48;\n private A = \"20\";\n private client: ClarigenClient;\n\n constructor(\n public nodeRpcUrl: string,\n public params: AllbridgeCoreSdkOptions,\n public api: AllbridgeCoreClient\n ) {\n super();\n const network = createNetwork({\n network: this.params.stxIsTestnet ? \"testnet\" : \"mainnet\",\n client: { baseUrl: this.nodeRpcUrl },\n apiKey: this.params.stxHeroApiKey,\n });\n this.client = new ClarigenClient(network, this.params.stxHeroApiKey);\n }\n\n async getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo> {\n const pool = contractFactory(contracts.pool, token.poolAddress);\n\n const lpAmount = await this.client.ro(pool.getLpBalance({ user: accountAddress }));\n const rewardDebt = await this.client.ro(pool.getUserRewardDebt({ user: accountAddress }));\n\n return new UserBalance({ lpAmount: lpAmount.toString(), rewardDebt: rewardDebt.toString() });\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo> {\n const pool = contractFactory(contracts.pool, token.poolAddress);\n\n const [dValueRaw, tokenBalanceRaw, vUsdBalanceRaw, totalLpAmountRaw, accRewardPerSharePRaw] = await Promise.all([\n this.client.ro(pool.getD()),\n this.client.ro(pool.getTokenBalance()),\n this.client.ro(pool.getVusdBalance()),\n this.client.ro(pool.getLpTotalSupply()),\n this.client.ro(pool.getAccRewardPerShareP()),\n ]);\n\n const dValue = dValueRaw.toString();\n const tokenBalance = tokenBalanceRaw.toString();\n const vUsdBalance = vUsdBalanceRaw.toString();\n const totalLpAmount = totalLpAmountRaw.toString();\n const accRewardPerShareP = accRewardPerSharePRaw.toString();\n if (dValue && tokenBalance && vUsdBalance && totalLpAmount && accRewardPerShareP) {\n const imbalance = calculatePoolInfoImbalance({ tokenBalance, vUsdBalance });\n return {\n aValue: this.A,\n dValue,\n tokenBalance,\n vUsdBalance,\n totalLpAmount,\n accRewardPerShareP,\n p: this.P,\n imbalance,\n };\n }\n throw new SdkError(\"Unable to pool info from chain\");\n }\n\n async buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawStxTransaction> {\n const pool = contractFactory(contracts.pool, params.token.poolAddress);\n\n const { contractAddress, contractName, functionName, functionArgs } = pool.deposit({\n amount: BigInt(params.amount),\n ftRef: params.token.tokenAddress,\n });\n\n const privateKey = makeRandomPrivKey();\n const publicKey = privateKeyToPublic(privateKey);\n\n const userPostFungibleCondition = getFungiblePostCondition(\n params.amount,\n \"lte\",\n params.accountAddress,\n params.token.tokenAddress,\n getTokenName(params.token)\n );\n\n const claimRewardsPostFungibleCondition = getFungiblePostCondition(\n 0,\n \"gte\",\n params.token.poolAddress,\n params.token.tokenAddress,\n getTokenName(params.token)\n );\n\n const txOptions = {\n contractAddress,\n contractName,\n functionName,\n functionArgs,\n publicKey,\n validateWithAbi: true,\n network: this.client.network,\n postConditions: [userPostFungibleCondition, claimRewardsPostFungibleCondition],\n postConditionMode: PostConditionMode.Deny,\n };\n const transaction = await makeUnsignedContractCall(txOptions);\n return transaction.serialize();\n }\n\n async buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawStxTransaction> {\n const pool = contractFactory(contracts.pool, params.token.poolAddress);\n\n const { contractAddress, contractName, functionName, functionArgs } = pool.withdraw({\n amountLp: BigInt(params.amount),\n ftRef: params.token.tokenAddress,\n });\n\n const privateKey = makeRandomPrivKey();\n const publicKey = privateKeyToPublic(privateKey);\n\n const poolPostFungibleCondition = getFungiblePostCondition(\n fromSystemPrecision(params.amount, params.token.decimals).toFixed(0, Big.roundDown),\n \"gte\",\n params.token.poolAddress,\n params.token.tokenAddress,\n getTokenName(params.token)\n );\n const txOptions = {\n contractAddress,\n contractName,\n functionName,\n functionArgs,\n publicKey,\n validateWithAbi: true,\n network: this.client.network,\n postConditions: [poolPostFungibleCondition],\n postConditionMode: PostConditionMode.Deny,\n };\n const transaction = await makeUnsignedContractCall(txOptions);\n return transaction.serialize();\n }\n\n async buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawStxTransaction> {\n const pool = contractFactory(contracts.pool, params.token.poolAddress);\n\n const { contractAddress, contractName, functionName, functionArgs } = pool.claimRewards({\n ftRef: params.token.tokenAddress,\n });\n\n const privateKey = makeRandomPrivKey();\n const publicKey = privateKeyToPublic(privateKey);\n\n const poolPostFungibleCondition = getFungiblePostCondition(\n 0,\n \"gte\",\n params.token.poolAddress,\n params.token.tokenAddress,\n getTokenName(params.token)\n );\n const txOptions = {\n contractAddress,\n contractName,\n functionName,\n functionArgs,\n publicKey,\n validateWithAbi: true,\n network: this.client.network,\n postConditions: [poolPostFungibleCondition],\n postConditionMode: PostConditionMode.Deny,\n };\n const transaction = await makeUnsignedContractCall(txOptions);\n return transaction.serialize();\n }\n}\n"]}
@@ -4,6 +4,9 @@ import { AllbridgeCoreSdkOptions } from "../../../index";
4
4
  import { PoolInfo, TokenWithChainDetails } from "../../../tokens-info";
5
5
  import { RawSuiTransaction } from "../../models";
6
6
  import { ChainPoolService, LiquidityPoolsParams, LiquidityPoolsParamsWithAmount, UserBalanceInfo } from "../models";
7
+ /**
8
+ * @deprecated Do not use.
9
+ */
7
10
  export declare class SuiPoolService extends ChainPoolService {
8
11
  suiRpcUrl: string;
9
12
  readonly params: AllbridgeCoreSdkOptions;
@@ -12,6 +12,9 @@ import { getCoinsWithAmounts } from "../../utils/sui/coins";
12
12
  import { fetchAllPagesRecursive } from "../../utils/sui/paginated";
13
13
  import { suiView } from "../../utils/sui/view";
14
14
  import { ChainPoolService, UserBalance, } from "../models";
15
+ /**
16
+ * @deprecated Do not use.
17
+ */
15
18
  export class SuiPoolService extends ChainPoolService {
16
19
  suiRpcUrl;
17
20
  params;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/sui/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { CoinStruct, SuiObjectResponse, SuiJsonRpcClient } from \"@mysten/sui/jsonRpc\";\nimport { Transaction, TransactionResult } from \"@mysten/sui/transactions\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { InvalidAmountError, SdkError } from \"../../../exceptions\";\nimport { AllbridgeCoreSdkOptions } from \"../../../index\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../../tokens-info\";\nimport { calculatePoolInfoImbalance } from \"../../../utils/calculation\";\nimport { RawSuiTransaction } from \"../../models\";\nimport { phantom } from \"../../models/sui/_framework/reified\";\nimport { setAddress } from \"../../models/sui/bridge\";\nimport {\n claimReward,\n deposit,\n newUserDeposit,\n pool,\n withdraw,\n} from \"../../models/sui/bridge/bridge-interface/functions\";\nimport { Pool } from \"../../models/sui/bridge/pool/structs\";\nimport { UserDeposit } from \"../../models/sui/bridge/user-deposit/structs\";\nimport { getCoinsWithAmounts } from \"../../utils/sui/coins\";\nimport { fetchAllPagesRecursive } from \"../../utils/sui/paginated\";\nimport { suiView } from \"../../utils/sui/view\";\nimport {\n ChainPoolService,\n LiquidityPoolsParams,\n LiquidityPoolsParamsWithAmount,\n UserBalance,\n UserBalanceInfo,\n} from \"../models\";\n\nexport class SuiPoolService extends ChainPoolService {\n chainType: ChainType.SUI = ChainType.SUI;\n\n private readonly client: SuiJsonRpcClient;\n\n constructor(\n public suiRpcUrl: string,\n readonly params: AllbridgeCoreSdkOptions,\n public api: AllbridgeCoreClient\n ) {\n super();\n this.client = new SuiJsonRpcClient({\n url: suiRpcUrl,\n network: params.suiIsTestnet ? \"testnet\" : \"mainnet\",\n });\n }\n\n async getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo> {\n if (!token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const suiAddresses = token.suiAddresses;\n if (!suiAddresses) {\n throw new SdkError(\"SUI token must contain 'suiAddresses'\");\n }\n setAddress(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);\n\n const deposits = await this.fetchDeposits(accountAddress, token.originTokenAddress);\n const total = deposits.reduce(\n (total, element) => {\n if (element.data) {\n total.lpAmount += BigInt((element.data.content as any).fields.lp_amount);\n total.rewardDebt += BigInt((element.data.content as any).fields.reward_debt);\n return total;\n } else {\n throw new SdkError(\"Deposits fetch failed\");\n }\n },\n { lpAmount: BigInt(0), rewardDebt: BigInt(0) }\n );\n return new UserBalance({ lpAmount: total.lpAmount.toString(), rewardDebt: total.rewardDebt.toString() });\n }\n\n private async fetchDeposits(accountAddress: string, tokenAddress: string): Promise<SuiObjectResponse[]> {\n return await fetchAllPagesRecursive((cursor: string | null | undefined) =>\n this.client.getOwnedObjects({\n owner: accountAddress,\n filter: { StructType: UserDeposit.phantom(phantom(tokenAddress)).phantomType },\n options: { showContent: true },\n cursor,\n })\n );\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo> {\n const suiAddresses = token.suiAddresses;\n if (!suiAddresses) {\n throw new SdkError(\"SUI token must contain 'suiAddresses'\");\n }\n setAddress(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);\n\n if (!token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n\n const P = 48;\n const tx = new Transaction();\n pool(tx, token.originTokenAddress, suiAddresses.bridgeObjectAddress);\n const res = await suiView(this.client, tx, Pool.reified(phantom(token.originTokenAddress)));\n\n const tokenBalance = res.state.tokenBalance;\n const vUsdBalance = res.state.vusdBalance;\n const imbalance = calculatePoolInfoImbalance({ tokenBalance, vUsdBalance });\n\n return {\n dValue: res.state.d,\n aValue: res.state.a,\n totalLpAmount: res.rewards.lpSupply,\n vUsdBalance: vUsdBalance,\n tokenBalance: tokenBalance,\n accRewardPerShareP: res.rewards.accRewardPerShareP,\n p: P,\n imbalance,\n };\n }\n\n async buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawSuiTransaction> {\n const suiAddresses = params.token.suiAddresses;\n if (!suiAddresses) {\n throw new SdkError(\"SUI token must contain 'suiAddresses'\");\n }\n setAddress(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);\n\n if (!params.token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const coins: CoinStruct[] = await fetchAllPagesRecursive((cursor: string | null | undefined) =>\n this.client.getCoins({\n owner: params.accountAddress,\n coinType: params.token.originTokenAddress,\n cursor,\n })\n );\n if (coins.length === 0 || !coins[0]) {\n throw new InvalidAmountError(\"No coins to deposit\");\n }\n const firstCoin = coins[0];\n\n const tx = new Transaction();\n tx.setSender(params.accountAddress);\n const { depositObj, isNewDeposit } = await this.getDepositObject(\n params.accountAddress,\n params.token.originTokenAddress,\n tx\n );\n const [amountCoin] = getCoinsWithAmounts([params.amount], coins, tx);\n if (!amountCoin) {\n throw new InvalidAmountError(\"No coins to deposit\");\n }\n if (!params.token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const rewards = deposit(tx, params.token.originTokenAddress, {\n bridge: suiAddresses.bridgeObjectAddress,\n userDeposit: depositObj,\n coin: amountCoin,\n });\n tx.mergeCoins(firstCoin.coinObjectId, [rewards]);\n if (isNewDeposit) {\n tx.transferObjects([depositObj], params.accountAddress);\n }\n return await tx.toJSON({ client: this.client });\n }\n\n private async getDepositObject(\n accountAddress: string,\n tokenAddress: string,\n tx: Transaction\n ): Promise<{\n depositObj: string | TransactionResult;\n isNewDeposit: boolean;\n }> {\n const deposits = await this.fetchDeposits(accountAddress, tokenAddress);\n if (deposits.length === 0 || !deposits[0]) {\n const tokenType = phantom(tokenAddress).phantomType;\n const depositObj = newUserDeposit(tx, tokenType);\n return { depositObj, isNewDeposit: true };\n } else {\n if (deposits[0].data?.objectId) {\n return { depositObj: deposits[0].data.objectId, isNewDeposit: false };\n } else {\n throw new SdkError(\"Something went wrong while deposit\");\n }\n }\n }\n\n async buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawSuiTransaction> {\n const suiAddresses = params.token.suiAddresses;\n if (!suiAddresses) {\n throw new SdkError(\"SUI token must contain 'suiAddresses'\");\n }\n setAddress(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);\n\n if (!params.token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const tokenType = phantom(params.token.originTokenAddress).phantomType;\n\n const tx = new Transaction();\n tx.setSender(params.accountAddress);\n\n const { depositObj, isNewDeposit } = await this.getDepositObject(\n params.accountAddress,\n params.token.originTokenAddress,\n tx\n );\n if (isNewDeposit) {\n throw new InvalidAmountError(\"No deposit found\");\n }\n\n const rewards = withdraw(tx, tokenType, {\n bridge: suiAddresses.bridgeObjectAddress,\n userDeposit: depositObj,\n amountLp: BigInt(params.amount),\n });\n\n const coins: CoinStruct[] = await fetchAllPagesRecursive((cursor: string | null | undefined) =>\n this.client.getCoins({\n owner: params.accountAddress,\n coinType: params.token.originTokenAddress,\n cursor,\n })\n );\n\n if (!rewards[0] || !rewards[1]) {\n throw new SdkError(\"No rewards found\");\n }\n\n if (coins[0]) {\n tx.mergeCoins(coins[0].coinObjectId, [rewards[0], rewards[1]]);\n } else {\n tx.mergeCoins(rewards[0], [rewards[1]]);\n tx.transferObjects([rewards[0]], params.accountAddress);\n }\n return await tx.toJSON({ client: this.client });\n }\n\n async buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawSuiTransaction> {\n const suiAddresses = params.token.suiAddresses;\n if (!suiAddresses) {\n throw new SdkError(\"SUI token must contain 'suiAddresses'\");\n }\n setAddress(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);\n\n if (!params.token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const tokenType = phantom(params.token.originTokenAddress).phantomType;\n\n const tx = new Transaction();\n tx.setSender(params.accountAddress);\n\n const { depositObj, isNewDeposit } = await this.getDepositObject(\n params.accountAddress,\n params.token.originTokenAddress,\n tx\n );\n if (isNewDeposit) {\n throw new InvalidAmountError(\"No deposit found\");\n }\n\n const reward = claimReward(tx, tokenType, {\n bridge: suiAddresses.bridgeObjectAddress,\n userDeposit: depositObj,\n });\n\n const coins: CoinStruct[] = await fetchAllPagesRecursive((cursor: string | null | undefined) =>\n this.client.getCoins({\n owner: params.accountAddress,\n coinType: params.token.originTokenAddress,\n cursor,\n })\n );\n\n if (coins[0]) {\n tx.mergeCoins(coins[0].coinObjectId, [reward]);\n } else {\n tx.transferObjects([reward], params.accountAddress);\n }\n return await tx.toJSON({ client: this.client });\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/sui/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { CoinStruct, SuiObjectResponse, SuiJsonRpcClient } from \"@mysten/sui/jsonRpc\";\nimport { Transaction, TransactionResult } from \"@mysten/sui/transactions\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { InvalidAmountError, SdkError } from \"../../../exceptions\";\nimport { AllbridgeCoreSdkOptions } from \"../../../index\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../../tokens-info\";\nimport { calculatePoolInfoImbalance } from \"../../../utils/calculation\";\nimport { RawSuiTransaction } from \"../../models\";\nimport { phantom } from \"../../models/sui/_framework/reified\";\nimport { setAddress } from \"../../models/sui/bridge\";\nimport {\n claimReward,\n deposit,\n newUserDeposit,\n pool,\n withdraw,\n} from \"../../models/sui/bridge/bridge-interface/functions\";\nimport { Pool } from \"../../models/sui/bridge/pool/structs\";\nimport { UserDeposit } from \"../../models/sui/bridge/user-deposit/structs\";\nimport { getCoinsWithAmounts } from \"../../utils/sui/coins\";\nimport { fetchAllPagesRecursive } from \"../../utils/sui/paginated\";\nimport { suiView } from \"../../utils/sui/view\";\nimport {\n ChainPoolService,\n LiquidityPoolsParams,\n LiquidityPoolsParamsWithAmount,\n UserBalance,\n UserBalanceInfo,\n} from \"../models\";\n\n/**\n * @deprecated Do not use.\n */\nexport class SuiPoolService extends ChainPoolService {\n chainType: ChainType.SUI = ChainType.SUI;\n\n private readonly client: SuiJsonRpcClient;\n\n constructor(\n public suiRpcUrl: string,\n readonly params: AllbridgeCoreSdkOptions,\n public api: AllbridgeCoreClient\n ) {\n super();\n this.client = new SuiJsonRpcClient({\n url: suiRpcUrl,\n network: params.suiIsTestnet ? \"testnet\" : \"mainnet\",\n });\n }\n\n async getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo> {\n if (!token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const suiAddresses = token.suiAddresses;\n if (!suiAddresses) {\n throw new SdkError(\"SUI token must contain 'suiAddresses'\");\n }\n setAddress(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);\n\n const deposits = await this.fetchDeposits(accountAddress, token.originTokenAddress);\n const total = deposits.reduce(\n (total, element) => {\n if (element.data) {\n total.lpAmount += BigInt((element.data.content as any).fields.lp_amount);\n total.rewardDebt += BigInt((element.data.content as any).fields.reward_debt);\n return total;\n } else {\n throw new SdkError(\"Deposits fetch failed\");\n }\n },\n { lpAmount: BigInt(0), rewardDebt: BigInt(0) }\n );\n return new UserBalance({ lpAmount: total.lpAmount.toString(), rewardDebt: total.rewardDebt.toString() });\n }\n\n private async fetchDeposits(accountAddress: string, tokenAddress: string): Promise<SuiObjectResponse[]> {\n return await fetchAllPagesRecursive((cursor: string | null | undefined) =>\n this.client.getOwnedObjects({\n owner: accountAddress,\n filter: { StructType: UserDeposit.phantom(phantom(tokenAddress)).phantomType },\n options: { showContent: true },\n cursor,\n })\n );\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo> {\n const suiAddresses = token.suiAddresses;\n if (!suiAddresses) {\n throw new SdkError(\"SUI token must contain 'suiAddresses'\");\n }\n setAddress(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);\n\n if (!token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n\n const P = 48;\n const tx = new Transaction();\n pool(tx, token.originTokenAddress, suiAddresses.bridgeObjectAddress);\n const res = await suiView(this.client, tx, Pool.reified(phantom(token.originTokenAddress)));\n\n const tokenBalance = res.state.tokenBalance;\n const vUsdBalance = res.state.vusdBalance;\n const imbalance = calculatePoolInfoImbalance({ tokenBalance, vUsdBalance });\n\n return {\n dValue: res.state.d,\n aValue: res.state.a,\n totalLpAmount: res.rewards.lpSupply,\n vUsdBalance: vUsdBalance,\n tokenBalance: tokenBalance,\n accRewardPerShareP: res.rewards.accRewardPerShareP,\n p: P,\n imbalance,\n };\n }\n\n async buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawSuiTransaction> {\n const suiAddresses = params.token.suiAddresses;\n if (!suiAddresses) {\n throw new SdkError(\"SUI token must contain 'suiAddresses'\");\n }\n setAddress(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);\n\n if (!params.token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const coins: CoinStruct[] = await fetchAllPagesRecursive((cursor: string | null | undefined) =>\n this.client.getCoins({\n owner: params.accountAddress,\n coinType: params.token.originTokenAddress,\n cursor,\n })\n );\n if (coins.length === 0 || !coins[0]) {\n throw new InvalidAmountError(\"No coins to deposit\");\n }\n const firstCoin = coins[0];\n\n const tx = new Transaction();\n tx.setSender(params.accountAddress);\n const { depositObj, isNewDeposit } = await this.getDepositObject(\n params.accountAddress,\n params.token.originTokenAddress,\n tx\n );\n const [amountCoin] = getCoinsWithAmounts([params.amount], coins, tx);\n if (!amountCoin) {\n throw new InvalidAmountError(\"No coins to deposit\");\n }\n if (!params.token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const rewards = deposit(tx, params.token.originTokenAddress, {\n bridge: suiAddresses.bridgeObjectAddress,\n userDeposit: depositObj,\n coin: amountCoin,\n });\n tx.mergeCoins(firstCoin.coinObjectId, [rewards]);\n if (isNewDeposit) {\n tx.transferObjects([depositObj], params.accountAddress);\n }\n return await tx.toJSON({ client: this.client });\n }\n\n private async getDepositObject(\n accountAddress: string,\n tokenAddress: string,\n tx: Transaction\n ): Promise<{\n depositObj: string | TransactionResult;\n isNewDeposit: boolean;\n }> {\n const deposits = await this.fetchDeposits(accountAddress, tokenAddress);\n if (deposits.length === 0 || !deposits[0]) {\n const tokenType = phantom(tokenAddress).phantomType;\n const depositObj = newUserDeposit(tx, tokenType);\n return { depositObj, isNewDeposit: true };\n } else {\n if (deposits[0].data?.objectId) {\n return { depositObj: deposits[0].data.objectId, isNewDeposit: false };\n } else {\n throw new SdkError(\"Something went wrong while deposit\");\n }\n }\n }\n\n async buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawSuiTransaction> {\n const suiAddresses = params.token.suiAddresses;\n if (!suiAddresses) {\n throw new SdkError(\"SUI token must contain 'suiAddresses'\");\n }\n setAddress(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);\n\n if (!params.token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const tokenType = phantom(params.token.originTokenAddress).phantomType;\n\n const tx = new Transaction();\n tx.setSender(params.accountAddress);\n\n const { depositObj, isNewDeposit } = await this.getDepositObject(\n params.accountAddress,\n params.token.originTokenAddress,\n tx\n );\n if (isNewDeposit) {\n throw new InvalidAmountError(\"No deposit found\");\n }\n\n const rewards = withdraw(tx, tokenType, {\n bridge: suiAddresses.bridgeObjectAddress,\n userDeposit: depositObj,\n amountLp: BigInt(params.amount),\n });\n\n const coins: CoinStruct[] = await fetchAllPagesRecursive((cursor: string | null | undefined) =>\n this.client.getCoins({\n owner: params.accountAddress,\n coinType: params.token.originTokenAddress,\n cursor,\n })\n );\n\n if (!rewards[0] || !rewards[1]) {\n throw new SdkError(\"No rewards found\");\n }\n\n if (coins[0]) {\n tx.mergeCoins(coins[0].coinObjectId, [rewards[0], rewards[1]]);\n } else {\n tx.mergeCoins(rewards[0], [rewards[1]]);\n tx.transferObjects([rewards[0]], params.accountAddress);\n }\n return await tx.toJSON({ client: this.client });\n }\n\n async buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawSuiTransaction> {\n const suiAddresses = params.token.suiAddresses;\n if (!suiAddresses) {\n throw new SdkError(\"SUI token must contain 'suiAddresses'\");\n }\n setAddress(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);\n\n if (!params.token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const tokenType = phantom(params.token.originTokenAddress).phantomType;\n\n const tx = new Transaction();\n tx.setSender(params.accountAddress);\n\n const { depositObj, isNewDeposit } = await this.getDepositObject(\n params.accountAddress,\n params.token.originTokenAddress,\n tx\n );\n if (isNewDeposit) {\n throw new InvalidAmountError(\"No deposit found\");\n }\n\n const reward = claimReward(tx, tokenType, {\n bridge: suiAddresses.bridgeObjectAddress,\n userDeposit: depositObj,\n });\n\n const coins: CoinStruct[] = await fetchAllPagesRecursive((cursor: string | null | undefined) =>\n this.client.getCoins({\n owner: params.accountAddress,\n coinType: params.token.originTokenAddress,\n cursor,\n })\n );\n\n if (coins[0]) {\n tx.mergeCoins(coins[0].coinObjectId, [reward]);\n } else {\n tx.transferObjects([reward], params.accountAddress);\n }\n return await tx.toJSON({ client: this.client });\n }\n}\n"]}
@@ -4,6 +4,9 @@ import { AllbridgeCoreClient } from "../../../client/core-api/core-client-base";
4
4
  import { PoolInfo, TokenWithChainDetails } from "../../../tokens-info";
5
5
  import { RawTransaction } from "../../models";
6
6
  import { ChainPoolService, LiquidityPoolsParams, LiquidityPoolsParamsWithAmount, UserBalanceInfo } from "../models";
7
+ /**
8
+ * @deprecated Do not use.
9
+ */
7
10
  export declare class TronPoolService extends ChainPoolService {
8
11
  tronWeb: TronWeb;
9
12
  api: AllbridgeCoreClient;
@@ -6,6 +6,9 @@ import { calculatePoolInfoImbalance } from "../../../utils/calculation";
6
6
  import { tronAddressToEthAddress } from "../../bridge/utils";
7
7
  import Pool from "../../models/abi/Pool";
8
8
  import { ChainPoolService, UserBalance, } from "../models";
9
+ /**
10
+ * @deprecated Do not use.
11
+ */
9
12
  export class TronPoolService extends ChainPoolService {
10
13
  tronWeb;
11
14
  api;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/trx/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { TronWeb } from \"tronweb\";\nimport { AbiItem, Web3 } from \"web3\";\nimport { encodeFunctionCall } from \"web3-eth-abi\";\nimport { AbiFunctionFragment } from \"web3-types\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { SdkError } from \"../../../exceptions\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../../tokens-info\";\nimport { calculatePoolInfoImbalance } from \"../../../utils/calculation\";\nimport { tronAddressToEthAddress } from \"../../bridge/utils\";\nimport { RawTransaction, SmartContractMethodParameter } from \"../../models\";\nimport Pool from \"../../models/abi/Pool\";\nimport {\n ChainPoolService,\n LiquidityPoolsParams,\n LiquidityPoolsParamsWithAmount,\n UserBalance,\n UserBalanceInfo,\n} from \"../models\";\n\nexport class TronPoolService extends ChainPoolService {\n chainType: ChainType.TRX = ChainType.TRX;\n private P = 52;\n\n constructor(\n public tronWeb: TronWeb,\n public api: AllbridgeCoreClient,\n private readonly tronJsonRpc: string | undefined\n ) {\n super();\n }\n\n async getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo> {\n let userBalanceInfo;\n if (this.tronJsonRpc) {\n try {\n userBalanceInfo = await this.getUserBalanceInfoByBatch(this.tronJsonRpc, accountAddress, token);\n } catch (ignoreError) {\n userBalanceInfo = await this.getUserBalanceInfoPerProperty(accountAddress, token);\n }\n } else {\n userBalanceInfo = await this.getUserBalanceInfoPerProperty(accountAddress, token);\n }\n return userBalanceInfo;\n }\n\n private async getUserBalanceInfoByBatch(\n tronJsonRpc: string,\n accountAddress: string,\n token: TokenWithChainDetails\n ): Promise<UserBalanceInfo> {\n const contractAddress = tronAddressToEthAddress(token.poolAddress);\n const userAddress = tronAddressToEthAddress(accountAddress);\n\n const payload = [\n {\n jsonrpc: \"2.0\",\n id: 1,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"userRewardDebt\", userAddress) }, \"latest\"],\n },\n {\n jsonrpc: \"2.0\",\n id: 2,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"balanceOf\", userAddress) }, \"latest\"],\n },\n ];\n\n const response = await fetch(tronJsonRpc, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(payload),\n });\n\n const results = await response.json();\n\n if (Array.isArray(results) && results.length === 2) {\n const getResult = (id: number) => {\n const entry = results.find((r) => r.id === id);\n if (!entry || !entry.result) {\n throw new Error(`Missing or invalid result for id ${id}`);\n }\n return Web3.utils.toBigInt(entry.result).toString();\n };\n\n return new UserBalance({\n lpAmount: Web3.utils.toBigInt(getResult(2)).toString(),\n rewardDebt: Web3.utils.toBigInt(getResult(1)).toString(),\n });\n }\n\n throw new Error(\"Batched HTTP call failed\");\n }\n\n private async getUserBalanceInfoPerProperty(\n accountAddress: string,\n token: TokenWithChainDetails\n ): Promise<UserBalanceInfo> {\n if (!this.tronWeb.defaultAddress.base58) {\n this.tronWeb.setAddress(accountAddress);\n }\n const contract = this.getContract(token.poolAddress);\n const rewardDebt = (await contract.methods.userRewardDebt(accountAddress).call()).toString();\n const lpAmount = (await contract.methods.balanceOf(accountAddress).call()).toString();\n return new UserBalance({ lpAmount, rewardDebt });\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo> {\n let poolInfo;\n if (this.tronJsonRpc) {\n try {\n poolInfo = await this.getPoolInfoByBatch(this.tronJsonRpc, token);\n } catch (ignoreError) {\n poolInfo = await this.getPoolInfoPerProperty(token);\n }\n } else {\n poolInfo = await this.getPoolInfoPerProperty(token);\n }\n return poolInfo;\n }\n\n private async getPoolInfoByBatch(tronJsonRpc: string, token: TokenWithChainDetails): Promise<PoolInfo> {\n const contractAddress = tronAddressToEthAddress(token.poolAddress);\n\n const payload = [\n {\n jsonrpc: \"2.0\",\n id: 1,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"a\") }, \"latest\"],\n },\n {\n jsonrpc: \"2.0\",\n id: 2,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"d\") }, \"latest\"],\n },\n {\n jsonrpc: \"2.0\",\n id: 3,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"tokenBalance\") }, \"latest\"],\n },\n {\n jsonrpc: \"2.0\",\n id: 4,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"vUsdBalance\") }, \"latest\"],\n },\n {\n jsonrpc: \"2.0\",\n id: 5,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"totalSupply\") }, \"latest\"],\n },\n {\n jsonrpc: \"2.0\",\n id: 6,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"accRewardPerShareP\") }, \"latest\"],\n },\n ];\n\n const response = await fetch(tronJsonRpc, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(payload),\n });\n\n const results = await response.json();\n\n if (Array.isArray(results) && results.length === 6) {\n const getResult = (id: number) => {\n const entry = results.find((r) => r.id === id);\n if (!entry || !entry.result) {\n throw new Error(`Missing or invalid result for id ${id}`);\n }\n return Web3.utils.toBigInt(entry.result).toString();\n };\n\n const tokenBalanceStr = getResult(3);\n const vUsdBalanceStr = getResult(4);\n const imbalance = calculatePoolInfoImbalance({ tokenBalance: tokenBalanceStr, vUsdBalance: vUsdBalanceStr });\n\n return {\n aValue: getResult(1),\n dValue: getResult(2),\n tokenBalance: tokenBalanceStr,\n vUsdBalance: vUsdBalanceStr,\n totalLpAmount: getResult(5),\n accRewardPerShareP: getResult(6),\n p: this.P,\n imbalance,\n };\n }\n\n throw new Error(\"Batched pool info call failed\");\n }\n\n private async getPoolInfoPerProperty(token: TokenWithChainDetails): Promise<PoolInfo> {\n if (!this.tronWeb.defaultAddress.base58) {\n this.tronWeb.setAddress(token.poolAddress);\n }\n const poolContract = this.getContract(token.poolAddress);\n const [aValue, dValue, tokenBalance, vUsdBalance, totalLpAmount, accRewardPerShareP] = await Promise.all([\n poolContract.methods.a().call(),\n poolContract.methods.d().call(),\n poolContract.methods.tokenBalance().call(),\n poolContract.methods.vUsdBalance().call(),\n poolContract.methods.totalSupply().call(),\n poolContract.methods.accRewardPerShareP().call(),\n ]);\n const tokenBalanceStr = tokenBalance.toString();\n const vUsdBalanceStr = vUsdBalance.toString();\n const imbalance = calculatePoolInfoImbalance({ tokenBalance: tokenBalanceStr, vUsdBalance: vUsdBalanceStr });\n return {\n aValue: aValue.toString(),\n dValue: dValue.toString(),\n tokenBalance: tokenBalanceStr,\n vUsdBalance: vUsdBalanceStr,\n totalLpAmount: totalLpAmount.toString(),\n accRewardPerShareP: accRewardPerShareP.toString(),\n p: this.P,\n imbalance,\n };\n }\n\n buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const { amount, accountAddress } = params;\n\n const parameter = [{ type: \"uint256\", value: amount }];\n const methodSignature = \"deposit(uint256)\";\n\n return this.buildRawTransaction(params.token.poolAddress, methodSignature, parameter, \"0\", accountAddress);\n }\n\n buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const { amount, accountAddress } = params;\n\n const parameter = [{ type: \"uint256\", value: amount }];\n const methodSignature = \"withdraw(uint256)\";\n\n return this.buildRawTransaction(params.token.poolAddress, methodSignature, parameter, \"0\", accountAddress);\n }\n\n buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawTransaction> {\n const { accountAddress } = params;\n\n const parameter: SmartContractMethodParameter[] = [];\n const methodSignature = \"claimRewards()\";\n\n return this.buildRawTransaction(params.token.poolAddress, methodSignature, parameter, \"0\", accountAddress);\n }\n\n private async buildRawTransaction(\n contractAddress: string,\n methodSignature: string,\n parameter: 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 parameter,\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 private getContract(contractAddress: string): any {\n return (this.tronWeb as any).contract(Pool.abi, contractAddress);\n }\n\n private getFunctionAbi(name: string, ...params: string[]): string {\n const abiItem = (Pool.abi as ReadonlyArray<AbiItem>).find(\n (item) => item.type === \"function\" && \"name\" in item && item.name === name\n );\n\n if (!abiItem) {\n throw new Error(`${name} method not found in Pool ABI`);\n }\n\n return encodeFunctionCall(abiItem as AbiFunctionFragment, params);\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/trx/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { TronWeb } from \"tronweb\";\nimport { AbiItem, Web3 } from \"web3\";\nimport { encodeFunctionCall } from \"web3-eth-abi\";\nimport { AbiFunctionFragment } from \"web3-types\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { SdkError } from \"../../../exceptions\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../../tokens-info\";\nimport { calculatePoolInfoImbalance } from \"../../../utils/calculation\";\nimport { tronAddressToEthAddress } from \"../../bridge/utils\";\nimport { RawTransaction, SmartContractMethodParameter } from \"../../models\";\nimport Pool from \"../../models/abi/Pool\";\nimport {\n ChainPoolService,\n LiquidityPoolsParams,\n LiquidityPoolsParamsWithAmount,\n UserBalance,\n UserBalanceInfo,\n} from \"../models\";\n\n/**\n * @deprecated Do not use.\n */\nexport class TronPoolService extends ChainPoolService {\n chainType: ChainType.TRX = ChainType.TRX;\n private P = 52;\n\n constructor(\n public tronWeb: TronWeb,\n public api: AllbridgeCoreClient,\n private readonly tronJsonRpc: string | undefined\n ) {\n super();\n }\n\n async getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo> {\n let userBalanceInfo;\n if (this.tronJsonRpc) {\n try {\n userBalanceInfo = await this.getUserBalanceInfoByBatch(this.tronJsonRpc, accountAddress, token);\n } catch (ignoreError) {\n userBalanceInfo = await this.getUserBalanceInfoPerProperty(accountAddress, token);\n }\n } else {\n userBalanceInfo = await this.getUserBalanceInfoPerProperty(accountAddress, token);\n }\n return userBalanceInfo;\n }\n\n private async getUserBalanceInfoByBatch(\n tronJsonRpc: string,\n accountAddress: string,\n token: TokenWithChainDetails\n ): Promise<UserBalanceInfo> {\n const contractAddress = tronAddressToEthAddress(token.poolAddress);\n const userAddress = tronAddressToEthAddress(accountAddress);\n\n const payload = [\n {\n jsonrpc: \"2.0\",\n id: 1,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"userRewardDebt\", userAddress) }, \"latest\"],\n },\n {\n jsonrpc: \"2.0\",\n id: 2,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"balanceOf\", userAddress) }, \"latest\"],\n },\n ];\n\n const response = await fetch(tronJsonRpc, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(payload),\n });\n\n const results = await response.json();\n\n if (Array.isArray(results) && results.length === 2) {\n const getResult = (id: number) => {\n const entry = results.find((r) => r.id === id);\n if (!entry || !entry.result) {\n throw new Error(`Missing or invalid result for id ${id}`);\n }\n return Web3.utils.toBigInt(entry.result).toString();\n };\n\n return new UserBalance({\n lpAmount: Web3.utils.toBigInt(getResult(2)).toString(),\n rewardDebt: Web3.utils.toBigInt(getResult(1)).toString(),\n });\n }\n\n throw new Error(\"Batched HTTP call failed\");\n }\n\n private async getUserBalanceInfoPerProperty(\n accountAddress: string,\n token: TokenWithChainDetails\n ): Promise<UserBalanceInfo> {\n if (!this.tronWeb.defaultAddress.base58) {\n this.tronWeb.setAddress(accountAddress);\n }\n const contract = this.getContract(token.poolAddress);\n const rewardDebt = (await contract.methods.userRewardDebt(accountAddress).call()).toString();\n const lpAmount = (await contract.methods.balanceOf(accountAddress).call()).toString();\n return new UserBalance({ lpAmount, rewardDebt });\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo> {\n let poolInfo;\n if (this.tronJsonRpc) {\n try {\n poolInfo = await this.getPoolInfoByBatch(this.tronJsonRpc, token);\n } catch (ignoreError) {\n poolInfo = await this.getPoolInfoPerProperty(token);\n }\n } else {\n poolInfo = await this.getPoolInfoPerProperty(token);\n }\n return poolInfo;\n }\n\n private async getPoolInfoByBatch(tronJsonRpc: string, token: TokenWithChainDetails): Promise<PoolInfo> {\n const contractAddress = tronAddressToEthAddress(token.poolAddress);\n\n const payload = [\n {\n jsonrpc: \"2.0\",\n id: 1,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"a\") }, \"latest\"],\n },\n {\n jsonrpc: \"2.0\",\n id: 2,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"d\") }, \"latest\"],\n },\n {\n jsonrpc: \"2.0\",\n id: 3,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"tokenBalance\") }, \"latest\"],\n },\n {\n jsonrpc: \"2.0\",\n id: 4,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"vUsdBalance\") }, \"latest\"],\n },\n {\n jsonrpc: \"2.0\",\n id: 5,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"totalSupply\") }, \"latest\"],\n },\n {\n jsonrpc: \"2.0\",\n id: 6,\n method: \"eth_call\",\n params: [{ to: contractAddress, data: this.getFunctionAbi(\"accRewardPerShareP\") }, \"latest\"],\n },\n ];\n\n const response = await fetch(tronJsonRpc, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(payload),\n });\n\n const results = await response.json();\n\n if (Array.isArray(results) && results.length === 6) {\n const getResult = (id: number) => {\n const entry = results.find((r) => r.id === id);\n if (!entry || !entry.result) {\n throw new Error(`Missing or invalid result for id ${id}`);\n }\n return Web3.utils.toBigInt(entry.result).toString();\n };\n\n const tokenBalanceStr = getResult(3);\n const vUsdBalanceStr = getResult(4);\n const imbalance = calculatePoolInfoImbalance({ tokenBalance: tokenBalanceStr, vUsdBalance: vUsdBalanceStr });\n\n return {\n aValue: getResult(1),\n dValue: getResult(2),\n tokenBalance: tokenBalanceStr,\n vUsdBalance: vUsdBalanceStr,\n totalLpAmount: getResult(5),\n accRewardPerShareP: getResult(6),\n p: this.P,\n imbalance,\n };\n }\n\n throw new Error(\"Batched pool info call failed\");\n }\n\n private async getPoolInfoPerProperty(token: TokenWithChainDetails): Promise<PoolInfo> {\n if (!this.tronWeb.defaultAddress.base58) {\n this.tronWeb.setAddress(token.poolAddress);\n }\n const poolContract = this.getContract(token.poolAddress);\n const [aValue, dValue, tokenBalance, vUsdBalance, totalLpAmount, accRewardPerShareP] = await Promise.all([\n poolContract.methods.a().call(),\n poolContract.methods.d().call(),\n poolContract.methods.tokenBalance().call(),\n poolContract.methods.vUsdBalance().call(),\n poolContract.methods.totalSupply().call(),\n poolContract.methods.accRewardPerShareP().call(),\n ]);\n const tokenBalanceStr = tokenBalance.toString();\n const vUsdBalanceStr = vUsdBalance.toString();\n const imbalance = calculatePoolInfoImbalance({ tokenBalance: tokenBalanceStr, vUsdBalance: vUsdBalanceStr });\n return {\n aValue: aValue.toString(),\n dValue: dValue.toString(),\n tokenBalance: tokenBalanceStr,\n vUsdBalance: vUsdBalanceStr,\n totalLpAmount: totalLpAmount.toString(),\n accRewardPerShareP: accRewardPerShareP.toString(),\n p: this.P,\n imbalance,\n };\n }\n\n buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const { amount, accountAddress } = params;\n\n const parameter = [{ type: \"uint256\", value: amount }];\n const methodSignature = \"deposit(uint256)\";\n\n return this.buildRawTransaction(params.token.poolAddress, methodSignature, parameter, \"0\", accountAddress);\n }\n\n buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const { amount, accountAddress } = params;\n\n const parameter = [{ type: \"uint256\", value: amount }];\n const methodSignature = \"withdraw(uint256)\";\n\n return this.buildRawTransaction(params.token.poolAddress, methodSignature, parameter, \"0\", accountAddress);\n }\n\n buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawTransaction> {\n const { accountAddress } = params;\n\n const parameter: SmartContractMethodParameter[] = [];\n const methodSignature = \"claimRewards()\";\n\n return this.buildRawTransaction(params.token.poolAddress, methodSignature, parameter, \"0\", accountAddress);\n }\n\n private async buildRawTransaction(\n contractAddress: string,\n methodSignature: string,\n parameter: 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 parameter,\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 private getContract(contractAddress: string): any {\n return (this.tronWeb as any).contract(Pool.abi, contractAddress);\n }\n\n private getFunctionAbi(name: string, ...params: string[]): string {\n const abiItem = (Pool.abi as ReadonlyArray<AbiItem>).find(\n (item) => item.type === \"function\" && \"name\" in item && item.name === name\n );\n\n if (!abiItem) {\n throw new Error(`${name} method not found in Pool ABI`);\n }\n\n return encodeFunctionCall(abiItem as AbiFunctionFragment, params);\n }\n}\n"]}
@@ -1,2 +1,8 @@
1
+ /**
2
+ * @deprecated Do not use.
3
+ */
1
4
  export declare function depositAmountToVUsd(amount: string, aValue: string, dValue: string, tokenBalance: string, vUsdBalance: string): string;
5
+ /**
6
+ * @deprecated Do not use.
7
+ */
2
8
  export declare function vUsdToWithdrawalAmount(lpAmount: string): string;
@@ -1,6 +1,9 @@
1
1
  import { Big } from "big.js";
2
2
  import { convertFloatAmountToInt, getD } from "../../../utils/calculation";
3
3
  import { SYSTEM_PRECISION } from "../../../utils/calculation/constants";
4
+ /**
5
+ * @deprecated Do not use.
6
+ */
4
7
  export function depositAmountToVUsd(amount, aValue, dValue, tokenBalance, vUsdBalance) {
5
8
  const amountSP = convertFloatAmountToInt(amount, SYSTEM_PRECISION);
6
9
  const amountSPBig = Big(amountSP);
@@ -20,6 +23,9 @@ export function depositAmountToVUsd(amount, aValue, dValue, tokenBalance, vUsdBa
20
23
  const newD = Big(getD(aValue, newTokenBalance.toFixed(), newVUsdBalance.toFixed()));
21
24
  return newD.minus(oldD).toFixed();
22
25
  }
26
+ /**
27
+ * @deprecated Do not use.
28
+ */
23
29
  export function vUsdToWithdrawalAmount(lpAmount) {
24
30
  const lpAmountSP = convertFloatAmountToInt(lpAmount, SYSTEM_PRECISION);
25
31
  return Big(lpAmountSP).round().toFixed();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/utils/calculation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,MAAc,EACd,MAAc,EACd,YAAoB,EACpB,WAAmB;IAEnB,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAElC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,UAAU,GAAG,GAAG,CAAC,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,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrD,cAAc,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACxF,cAAc,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,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,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACvE,OAAO,GAAG,CAAC,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":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,MAAc,EACd,MAAc,EACd,YAAoB,EACpB,WAAmB;IAEnB,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IAElC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,UAAU,GAAG,GAAG,CAAC,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,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrD,cAAc,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,eAAe,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACxF,cAAc,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,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;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,MAAM,UAAU,GAAG,uBAAuB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IACvE,OAAO,GAAG,CAAC,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\n/**\n * @deprecated Do not use.\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\n/**\n * @deprecated Do not use.\n */\nexport function vUsdToWithdrawalAmount(lpAmount: string): string {\n const lpAmountSP = convertFloatAmountToInt(lpAmount, SYSTEM_PRECISION);\n return Big(lpAmountSP).round().toFixed();\n}\n"]}
@@ -3,7 +3,13 @@ import { Account } from "@solana/spl-token";
3
3
  import { PublicKey } from "@solana/web3.js";
4
4
  import { Bridge as BridgeType } from "../../models/sol/types/bridge";
5
5
  export declare function getTokenAccountData(account: PublicKey, provider: Provider): Promise<Account>;
6
+ /**
7
+ * @deprecated Do not use.
8
+ */
6
9
  export declare function getVUsdAmount(amount: string, bridge: Program<BridgeType>, poolAccount: PublicKey): Promise<string>;
10
+ /**
11
+ * @deprecated Do not use.
12
+ */
7
13
  export declare function getMessage(args: {
8
14
  amount: string;
9
15
  recipient: Buffer;
@@ -7,6 +7,9 @@ import { convertIntAmountToFloat, swapToVUsd, toSystemPrecision } from "../../..
7
7
  export async function getTokenAccountData(account, provider) {
8
8
  return await getAccount(provider.connection, account);
9
9
  }
10
+ /**
11
+ * @deprecated Do not use.
12
+ */
10
13
  export async function getVUsdAmount(amount, bridge, poolAccount) {
11
14
  const poolAccountInfo = await bridge.account.pool.fetch(poolAccount);
12
15
  const decimals = poolAccountInfo.decimals;
@@ -24,6 +27,9 @@ export async function getVUsdAmount(amount, bridge, poolAccount) {
24
27
  }
25
28
  return swapToVUsd(amount, { decimals, feeShare }, poolInfo);
26
29
  }
30
+ /**
31
+ * @deprecated Do not use.
32
+ */
27
33
  export function getMessage(args) {
28
34
  const amount = args.amount;
29
35
  const recipient = "0x" + args.recipient.toString("hex");
@@ -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 } from \"@coral-xyz/anchor\";\nimport { Account, getAccount } from \"@solana/spl-token\";\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 { AmountNotEnoughError, InvalidTxError, SdkError } from \"../../../exceptions\";\nimport { PoolInfo } from \"../../../tokens-info\";\nimport { convertIntAmountToFloat, swapToVUsd, toSystemPrecision } from \"../../../utils/calculation\";\nimport { Bridge as BridgeType } from \"../../models/sol/types/bridge\";\n\nexport async function getTokenAccountData(account: PublicKey, provider: Provider): Promise<Account> {\n return await getAccount(provider.connection, 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 if (toSystemPrecision(amount, decimals).lte(0)) {\n throw new AmountNotEnoughError(\n `Swap amount ${convertIntAmountToFloat(amount, decimals).toFixed()} is too small for the liquidity pool. Minimum required amount is 0.001.`\n );\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\"));\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\"));\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 } from \"@coral-xyz/anchor\";\nimport { Account, getAccount } from \"@solana/spl-token\";\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 { AmountNotEnoughError, InvalidTxError, SdkError } from \"../../../exceptions\";\nimport { PoolInfo } from \"../../../tokens-info\";\nimport { convertIntAmountToFloat, swapToVUsd, toSystemPrecision } from \"../../../utils/calculation\";\nimport { Bridge as BridgeType } from \"../../models/sol/types/bridge\";\n\nexport async function getTokenAccountData(account: PublicKey, provider: Provider): Promise<Account> {\n return await getAccount(provider.connection, account);\n}\n\n/**\n * @deprecated Do not use.\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 if (toSystemPrecision(amount, decimals).lte(0)) {\n throw new AmountNotEnoughError(\n `Swap amount ${convertIntAmountToFloat(amount, decimals).toFixed()} is too small for the liquidity pool. Minimum required amount is 0.001.`\n );\n }\n return swapToVUsd(amount, { decimals, feeShare }, poolInfo);\n}\n\n/**\n * @deprecated Do not use.\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\"));\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\"));\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"]}
@@ -38,6 +38,7 @@ export interface ChainDetails extends BasicChainProperties {
38
38
  paddingUtilId?: string;
39
39
  /**
40
40
  * Bridge contract address
41
+ * @deprecated Do not use.
41
42
  */
42
43
  bridgeAddress: string;
43
44
  /**
@@ -107,6 +108,7 @@ export interface Token {
107
108
  decimals: number;
108
109
  /**
109
110
  * Token pool address
111
+ * @deprecated Do not use.
110
112
  */
111
113
  poolAddress: string;
112
114
  /**
@@ -153,6 +155,7 @@ export interface Token {
153
155
  oftId?: string;
154
156
  /**
155
157
  * Token fee share
158
+ * @deprecated Do not use.
156
159
  */
157
160
  feeShare: string;
158
161
  /**
@@ -162,14 +165,17 @@ export interface Token {
162
165
  apr: string;
163
166
  /**
164
167
  * Token APR based on last 7 days
168
+ * @deprecated Do not use.
165
169
  */
166
170
  apr7d: string;
167
171
  /**
168
172
  * Token APR based on last 30 days
173
+ * @deprecated Do not use.
169
174
  */
170
175
  apr30d: string;
171
176
  /**
172
177
  * Token LP rate
178
+ * @deprecated Do not use.
173
179
  */
174
180
  lpRate: string;
175
181
  yieldId?: number;
@@ -186,19 +192,29 @@ export interface XReserveTokenInfo {
186
192
  protocolAddress?: string;
187
193
  }
188
194
  export interface SuiAddresses {
195
+ /** @deprecated Do not use. */
189
196
  bridgeAddress: string;
197
+ /** @deprecated Do not use. */
190
198
  bridgeAddressOrigin?: string;
199
+ /** @deprecated Do not use. */
191
200
  bridgeObjectAddress: string;
201
+ /** @deprecated Do not use. */
192
202
  allbridgeMessengerAddress: string;
203
+ /** @deprecated Do not use. */
193
204
  allbridgeMessengerAddressOrigin?: string;
205
+ /** @deprecated Do not use. */
194
206
  allbridgeMessengerObjectAddress: string;
195
207
  gasOracleAddress: string;
196
208
  gasOracleAddressOrigin?: string;
197
209
  gasOracleObjectAddress: string;
198
210
  utilsAddress: string;
211
+ /** @deprecated Do not use. */
199
212
  wormholeMessengerAddress: string;
213
+ /** @deprecated Do not use. */
200
214
  wormholeMessengerAddressOrigin?: string;
215
+ /** @deprecated Do not use. */
201
216
  wormholeMessengerObjectAddress: string;
217
+ /** @deprecated Do not use. */
202
218
  wormholeStateObjectAddress: string;
203
219
  cctpAddress: string;
204
220
  cctpAddressOrigin?: string;
@@ -221,11 +237,13 @@ export type TokenCoreFields = Pick<TokenWithChainDetails, "tokenAddress" | "chai
221
237
  export interface TokenWithChainDetailsWithFlags extends TokenWithChainDetails {
222
238
  flags: {
223
239
  swap: boolean;
240
+ /** @deprecated Do not use. */
224
241
  pool: boolean;
225
242
  };
226
243
  }
227
244
  /**
228
245
  * General Pool Interface
246
+ * @deprecated Do not use.
229
247
  */
230
248
  export interface PoolInfo {
231
249
  /**
@@ -276,6 +294,9 @@ export type TransferTime = Record<string, MessengerTransferTime>;
276
294
  export type MessengerTransferTime = {
277
295
  [messenger in Messenger]?: number;
278
296
  };
297
+ /**
298
+ * @deprecated Do not use.
299
+ */
279
300
  export interface PoolKeyObject {
280
301
  chainSymbol: string;
281
302
  poolAddress: string;
@@ -297,4 +318,7 @@ export interface TxCostAmount {
297
318
  */
298
319
  transfer: string;
299
320
  }
321
+ /**
322
+ * @deprecated Do not use.
323
+ */
300
324
  export type PoolInfoMap = Record<string, PoolInfo>;
@@ -1 +1 @@
1
- {"version":3,"file":"tokens-info.model.js","sourceRoot":"","sources":["../../../src/tokens-info/tokens-info.model.ts"],"names":[],"mappings":"","sourcesContent":["import { 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\nexport interface AbrPayerChainInfo {\n /**\n * ABR proxy for paying fees with ABR\n */\n payerAddress: string;\n abrToken: TokenCoreFields;\n /**\n * Availability to pay by abr\n */\n payerAvailability: AbrPayerAvailability;\n}\n\n/**\n * Contains some blockchain details\n */\nexport interface ChainDetails extends BasicChainProperties {\n /**\n * Allbridge's Id\n */\n allbridgeChainId: number;\n /**\n * Algo Bridge appId\n */\n bridgeId?: string;\n /**\n * Algo Padding appId\n */\n paddingUtilId?: string;\n /**\n * Bridge contract address\n */\n bridgeAddress: string;\n /**\n * OFT Bridge contract address\n * Optional. Defined if the chain supports OFT\n */\n oftBridgeAddress?: string;\n /**\n * Yield contract address\n */\n yieldAddress?: string;\n /**\n * ABR payer chain info\n */\n abrPayer?: AbrPayerChainInfo;\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 the token is supported by CCTP\n */\n cctpAddress?: string;\n /**\n * Token fee share for CCTP</br>\n * Optional. Defined if the token is supported by CCTP\n */\n cctpFeeShare?: string;\n /**\n * Token CCTP address</br>\n * Optional. Defined if the token is supported by CCTP\n */\n cctpV2Address?: string;\n /**\n * Token fee share for CCTP V2</br>\n * Optional. Defined if the token is supported by CCTP\n */\n cctpV2FeeShare?: string;\n /**\n * XReserve bridge configuration for token.\n * Optional. Defined if the token is supported by XReserve\n */\n xReserve?: XReserveTokenInfo;\n /**\n * Internal identifier for the same token across different chains.\n *\n * Used to link representations of a token deployed on multiple networks (e.g., Ethereum, BSC).\n * Tokens with the same `oftId` are considered to be equivalent.\n *\n * Optional. Defined if the token is supported by OFT\n */\n oftId?: 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 yieldId?: number;\n /**\n * Sui addresses\n * Optional. Defined for SUI\n */\n suiAddresses?: SuiAddresses;\n}\n\nexport interface XReserveTokenInfo {\n bridgeAddress: string;\n feeConst: string;\n feeShare: string;\n protocolAddress?: string;\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 type TokenCoreFields = Pick<\n TokenWithChainDetails,\n \"tokenAddress\" | \"chainSymbol\" | \"decimals\" | \"originTokenAddress\"\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\nexport type AbrPayerAvailability = Partial<Record<Messenger, boolean>>;\n\n/**\n * Type representing transfer times for various blockchain chains.\n *\n * @typedef {Record<string, MessengerTransferTime>} TransferTime\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 {MessengerTransferTime} transferTime - The average transfer time details for the specified chain.\n */\nexport type TransferTime = Record<string, MessengerTransferTime>;\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 { 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\nexport interface AbrPayerChainInfo {\n /**\n * ABR proxy for paying fees with ABR\n */\n payerAddress: string;\n abrToken: TokenCoreFields;\n /**\n * Availability to pay by abr\n */\n payerAvailability: AbrPayerAvailability;\n}\n\n/**\n * Contains some blockchain details\n */\nexport interface ChainDetails extends BasicChainProperties {\n /**\n * Allbridge's Id\n */\n allbridgeChainId: number;\n /**\n * Algo Bridge appId\n */\n bridgeId?: string;\n /**\n * Algo Padding appId\n */\n paddingUtilId?: string;\n /**\n * Bridge contract address\n * @deprecated Do not use.\n */\n bridgeAddress: string;\n /**\n * OFT Bridge contract address\n * Optional. Defined if the chain supports OFT\n */\n oftBridgeAddress?: string;\n /**\n * Yield contract address\n */\n yieldAddress?: string;\n /**\n * ABR payer chain info\n */\n abrPayer?: AbrPayerChainInfo;\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 * @deprecated Do not use.\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 the token is supported by CCTP\n */\n cctpAddress?: string;\n /**\n * Token fee share for CCTP</br>\n * Optional. Defined if the token is supported by CCTP\n */\n cctpFeeShare?: string;\n /**\n * Token CCTP address</br>\n * Optional. Defined if the token is supported by CCTP\n */\n cctpV2Address?: string;\n /**\n * Token fee share for CCTP V2</br>\n * Optional. Defined if the token is supported by CCTP\n */\n cctpV2FeeShare?: string;\n /**\n * XReserve bridge configuration for token.\n * Optional. Defined if the token is supported by XReserve\n */\n xReserve?: XReserveTokenInfo;\n /**\n * Internal identifier for the same token across different chains.\n *\n * Used to link representations of a token deployed on multiple networks (e.g., Ethereum, BSC).\n * Tokens with the same `oftId` are considered to be equivalent.\n *\n * Optional. Defined if the token is supported by OFT\n */\n oftId?: string;\n /**\n * Token fee share\n * @deprecated Do not use.\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 * @deprecated Do not use.\n */\n apr7d: string;\n /**\n * Token APR based on last 30 days\n * @deprecated Do not use.\n */\n apr30d: string;\n /**\n * Token LP rate\n * @deprecated Do not use.\n */\n lpRate: string;\n\n yieldId?: number;\n /**\n * Sui addresses\n * Optional. Defined for SUI\n */\n suiAddresses?: SuiAddresses;\n}\n\nexport interface XReserveTokenInfo {\n bridgeAddress: string;\n feeConst: string;\n feeShare: string;\n protocolAddress?: string;\n}\n\nexport interface SuiAddresses {\n /** @deprecated Do not use. */\n bridgeAddress: string;\n /** @deprecated Do not use. */\n bridgeAddressOrigin?: string;\n /** @deprecated Do not use. */\n bridgeObjectAddress: string;\n\n /** @deprecated Do not use. */\n allbridgeMessengerAddress: string;\n /** @deprecated Do not use. */\n allbridgeMessengerAddressOrigin?: string;\n /** @deprecated Do not use. */\n allbridgeMessengerObjectAddress: string;\n\n gasOracleAddress: string;\n gasOracleAddressOrigin?: string;\n gasOracleObjectAddress: string;\n\n utilsAddress: string;\n\n /** @deprecated Do not use. */\n wormholeMessengerAddress: string;\n /** @deprecated Do not use. */\n wormholeMessengerAddressOrigin?: string;\n /** @deprecated Do not use. */\n wormholeMessengerObjectAddress: string;\n /** @deprecated Do not use. */\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 type TokenCoreFields = Pick<\n TokenWithChainDetails,\n \"tokenAddress\" | \"chainSymbol\" | \"decimals\" | \"originTokenAddress\"\n>;\n\nexport interface TokenWithChainDetailsWithFlags extends TokenWithChainDetails {\n flags: {\n swap: boolean;\n /** @deprecated Do not use. */\n pool: boolean;\n };\n}\n\n/**\n * General Pool Interface\n * @deprecated Do not use.\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\nexport type AbrPayerAvailability = Partial<Record<Messenger, boolean>>;\n\n/**\n * Type representing transfer times for various blockchain chains.\n *\n * @typedef {Record<string, MessengerTransferTime>} TransferTime\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 {MessengerTransferTime} transferTime - The average transfer time details for the specified chain.\n */\nexport type TransferTime = Record<string, MessengerTransferTime>;\n\n/**\n * Contains Avg transaction time withing different messenger protocols\n */\nexport type MessengerTransferTime = {\n [messenger in Messenger]?: number;\n};\n\n/**\n * @deprecated Do not use.\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\n/**\n * @deprecated Do not use.\n */\nexport type PoolInfoMap = Record<string, PoolInfo>;\n"]}