@stableflow/bridges 3.1.0 → 3.1.1-rc-d81122780a-20260712

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.
package/dist/index.js CHANGED
@@ -23,6 +23,7 @@ var ONECLICK_PROXY = {
23
23
  ["Avalanche"]: "0xc8dB1175132C64e311D01258dD05D4e2e75fD7b8",
24
24
  ["Ethereum"]: "0xc8dB1175132C64e311D01258dD05D4e2e75fD7b8",
25
25
  ["Berachain"]: "0x1766A6B8453c7dbcA8c70d17980B6EA87ACA4F60",
26
+ ["Gnosis"]: "0x53812Feae0fd2C43f8E6D8847A7f5d035F1d1f8f",
26
27
  ["Tron"]: "TMqM35eVd3D9d7JbShRrMzMPyWLFweKYvW",
27
28
  ["Solana"]: "HWk6MsFEGzXxpe9B4mfEHpvVoCwNeVVMFxb5Mi7qNTM",
28
29
  ["Near"]: "stbflow.near",
@@ -210,9 +211,6 @@ var OneClickService = class {
210
211
  amount: amountWei,
211
212
  slippageTolerance: slippageTolerance * 100
212
213
  };
213
- if (swapType === "EXACT_OUTPUT") {
214
- quoteParams.amount = Big__default.default(amountWei || 0).div(10 ** fromToken.decimals).times(10 ** toToken.decimals).toFixed(0);
215
- }
216
214
  for (const k in restParams) {
217
215
  if (["evmAddress", "evmWallet", "destinationChain", "originChain"].includes(k)) {
218
216
  continue;
@@ -3939,7 +3937,8 @@ var CCTP_TOKEN_PROXY = {
3939
3937
  ["Optimism"]: "0x54Cf68aB8f68813F2a2dF20Af72D19c44485a0b2",
3940
3938
  ["Avalanche"]: "0xB6E3a1165aC3E0c370e316C27E959482460dBeDD",
3941
3939
  ["Solana"]: "8whUZNSbjJXC2UDRpo3PXo5MHzhptwVTTwpSYuTgQJNY",
3942
- ["Base"]: "0x7092B8E5445Fca836B0f9780c77C38C7cbb9A43D"
3940
+ ["Base"]: "0x7092B8E5445Fca836B0f9780c77C38C7cbb9A43D",
3941
+ ["Pharos"]: "0x53812feae0fd2c43f8e6d8847a7f5d035f1d1f8f"
3943
3942
  };
3944
3943
  var CCTP_TOKEN_PROXY_ABI = [
3945
3944
  {
@@ -4024,7 +4023,8 @@ var CCTP_DOMAINS = {
4024
4023
  Optimism: 2,
4025
4024
  Avalanche: 1,
4026
4025
  Solana: 5,
4027
- Base: 6
4026
+ Base: 6,
4027
+ Pharos: 31
4028
4028
  };
4029
4029
  var excludeFees3 = ["estimateGasUsd"];
4030
4030
  var CCTPService = class {
@@ -5009,10 +5009,16 @@ var OneClick2FraxZeroService = class extends FraxZeroService {
5009
5009
  gasLimit = FRAXZERO_GAS_USED.MINT.TO_FRAXTAL;
5010
5010
  }
5011
5011
  gasLimit = gasLimit * 120n / 100n;
5012
+ let firstStepAmountWei = Big__default.default(params.amountWei || 0).div(10 ** fromToken.decimals).times(10 ** FRAXZERO_MIDDLE_TOKEN_USDC.decimals).toFixed(0, 0);
5013
+ if (!core.isStableToken(fromToken)) {
5014
+ const inputPrice = core.getPrice(prices, fromToken.symbol);
5015
+ const inputValue = Big__default.default(params.amountWei || 0).div(10 ** fromToken.decimals).times(inputPrice);
5016
+ firstStepAmountWei = Big__default.default(inputValue).times(10 ** FRAXZERO_MIDDLE_TOKEN_USDC.decimals).toFixed(0, 0);
5017
+ }
5012
5018
  execTime.breakpoint();
5013
5019
  previewMintResult = await middleChainWallet.previewMintFrxUSD({
5014
5020
  dry,
5015
- amountWei: Big__default.default(amountWei || 0).div(10 ** fromToken.decimals).times(10 ** FRAXZERO_MIDDLE_TOKEN_USDC.decimals).toFixed(0, 0),
5021
+ amountWei: firstStepAmountWei,
5016
5022
  fromToken: FRAXZERO_MIDDLE_TOKEN_USDC,
5017
5023
  abi: FRAXZERO_REDEEM_MINT_ABI,
5018
5024
  usdcCustodianAddress: FRAXZERO_REDEEM_USDC_CONTRACT
@@ -5062,6 +5068,7 @@ var OneClick2FraxZeroService = class extends FraxZeroService {
5062
5068
  execTime.breakpoint();
5063
5069
  const firstStepResult2 = await oneclick_default.quote({
5064
5070
  ...params,
5071
+ amountWei: firstStepAmountWei,
5065
5072
  toToken: FRAXZERO_MIDDLE_TOKEN_USDC,
5066
5073
  destinationAsset: FRAXZERO_MIDDLE_TOKEN_USDC.assetId,
5067
5074
  swapType: "EXACT_OUTPUT",
@@ -5392,9 +5399,15 @@ var OneClickUsdt0Service = class {
5392
5399
  if (!middleChainRecipientAddress) {
5393
5400
  throw new Error("evmAddress is required");
5394
5401
  }
5402
+ let secondStepAmountWei = Big__default.default(params.amountWei || 0).div(10 ** fromToken.decimals).times(10 ** MIDDLE_TOKEN_CHAIN.decimals).toFixed(0);
5403
+ if (!core.isStableToken(fromToken)) {
5404
+ const inputPrice = core.getPrice(prices, fromToken.symbol);
5405
+ const inputValue = Big__default.default(params.amountWei || 0).div(10 ** fromToken.decimals).times(inputPrice);
5406
+ secondStepAmountWei = Big__default.default(inputValue).times(10 ** MIDDLE_TOKEN_CHAIN.decimals).toFixed(0);
5407
+ }
5395
5408
  const usdt0Params = {
5396
5409
  ...params,
5397
- amountWei: Big__default.default(params.amountWei || 0).div(10 ** fromToken.decimals).times(10 ** MIDDLE_TOKEN_CHAIN.decimals).toFixed(0),
5410
+ amountWei: secondStepAmountWei,
5398
5411
  fromToken: MIDDLE_TOKEN_CHAIN,
5399
5412
  originChain: MIDDLE_TOKEN_CHAIN.chainName,
5400
5413
  refundTo: middleChainRecipientAddress,
@@ -5407,17 +5420,19 @@ var OneClickUsdt0Service = class {
5407
5420
  usdt0Result.fees.nativeFeeUsd = core.numberRemoveEndZero(Big__default.default(usdt0Result.fees?.nativeFeeUsd || 0).times(1 + usdt0MessageFeeBuffer).toFixed(20));
5408
5421
  usdt0Result.fees.nativeFee = core.numberRemoveEndZero(Big__default.default(usdt0Result.fees?.nativeFee || 0).times(1 + usdt0MessageFeeBuffer).toFixed(fromToken.nativeToken.decimals));
5409
5422
  const usdt0MessageFeeUsd = usdt0Result.fees.nativeFeeUsd;
5410
- const usdt0MessageFeeAmount = Big__default.default(usdt0MessageFeeUsd || 0).div(core.getPrice(prices, MIDDLE_TOKEN_CHAIN.symbol) || 1).toFixed(MIDDLE_TOKEN_CHAIN.decimals);
5411
5423
  if (usdt0Result.errMsg) {
5412
5424
  return usdt0Result;
5413
5425
  }
5414
- const oneClickFeeRatio = Big__default.default(usdt0MessageFeeAmount || 0).div(Big__default.default(usdt0MessageFeeAmount || 0).plus(Big__default.default(params.amountWei).div(10 ** fromToken.decimals).toFixed(fromToken.decimals))).times(1e4).toFixed(0, Big__default.default.roundUp);
5426
+ const usdt0MessageFeeAmountInFromToken = Big__default.default(usdt0MessageFeeUsd || 0).div(core.getPrice(prices, fromToken.symbol) || 1).toFixed(fromToken.decimals);
5427
+ const fromTokenAmount = Big__default.default(params.amountWei).div(10 ** fromToken.decimals).toFixed(fromToken.decimals);
5428
+ const oneClickFeeRatio = Big__default.default(usdt0MessageFeeAmountInFromToken || 0).div(Big__default.default(usdt0MessageFeeAmountInFromToken || 0).plus(fromTokenAmount)).times(1e4).toFixed(0, Big__default.default.roundUp);
5415
5429
  if (Big__default.default(oneClickFeeRatio).gt(1e4)) {
5416
- return { errMsg: `Amount is too low, at least ${usdt0MessageFeeAmount}` };
5430
+ return { errMsg: `Amount is too low, at least ${usdt0MessageFeeAmountInFromToken}` };
5417
5431
  }
5418
5432
  execTime.breakpoint();
5419
5433
  const oneClickResult = await oneclick_default.quote({
5420
5434
  ...params,
5435
+ amountWei: secondStepAmountWei,
5421
5436
  toToken: MIDDLE_TOKEN_CHAIN,
5422
5437
  destinationAsset: MIDDLE_TOKEN_CHAIN.assetId,
5423
5438
  swapType: "EXACT_OUTPUT",