@sodax/sdk 0.0.1-rc.23 → 0.0.1-rc.24

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.d.cts CHANGED
@@ -6123,7 +6123,7 @@ declare class SonicSpokeService {
6123
6123
  */
6124
6124
  static isBorrowApproved(from: Address, borrowInfo: BorrowInfo, spokeProvider: SonicSpokeProvider, spender?: HubAddress): Promise<Result<boolean>>;
6125
6125
  static approveBorrow<R extends boolean = false>(from: Address, borrowInfo: BorrowInfo, spokeProvider: SonicSpokeProvider, raw?: R): PromiseEvmTxReturnType<R>;
6126
- static buildWithdrawData(from: Address, withdrawInfo: WithdrawInfo, amount: bigint, spokeProvider: SonicSpokeProvider, moneyMarketService: MoneyMarketService): Promise<Hex$1>;
6126
+ static buildWithdrawData(from: Address, withdrawInfo: WithdrawInfo, amount: bigint, spokeProvider: SonicSpokeProvider, moneyMarketService: MoneyMarketService, userRouterAddress?: HubAddress): Promise<Hex$1>;
6127
6127
  }
6128
6128
 
6129
6129
  type CreateIntentParams = {
package/dist/index.d.ts CHANGED
@@ -6123,7 +6123,7 @@ declare class SonicSpokeService {
6123
6123
  */
6124
6124
  static isBorrowApproved(from: Address, borrowInfo: BorrowInfo, spokeProvider: SonicSpokeProvider, spender?: HubAddress): Promise<Result<boolean>>;
6125
6125
  static approveBorrow<R extends boolean = false>(from: Address, borrowInfo: BorrowInfo, spokeProvider: SonicSpokeProvider, raw?: R): PromiseEvmTxReturnType<R>;
6126
- static buildWithdrawData(from: Address, withdrawInfo: WithdrawInfo, amount: bigint, spokeProvider: SonicSpokeProvider, moneyMarketService: MoneyMarketService): Promise<Hex$1>;
6126
+ static buildWithdrawData(from: Address, withdrawInfo: WithdrawInfo, amount: bigint, spokeProvider: SonicSpokeProvider, moneyMarketService: MoneyMarketService, userRouterAddress?: HubAddress): Promise<Hex$1>;
6127
6127
  }
6128
6128
 
6129
6129
  type CreateIntentParams = {
package/dist/index.mjs CHANGED
@@ -7162,7 +7162,7 @@ var getAllLegacybnUSDTokens = () => {
7162
7162
  var hubAssets = {
7163
7163
  [SONIC_MAINNET_CHAIN_ID]: {
7164
7164
  [spokeChainConfig[SONIC_MAINNET_CHAIN_ID].nativeToken]: {
7165
- asset: spokeChainConfig[SONIC_MAINNET_CHAIN_ID].supportedTokens.wS.address,
7165
+ asset: spokeChainConfig[SONIC_MAINNET_CHAIN_ID].supportedTokens.S.address,
7166
7166
  decimal: 18,
7167
7167
  symbol: "S",
7168
7168
  name: "Sonic",
@@ -10044,7 +10044,7 @@ var SonicSpokeService = class _SonicSpokeService {
10044
10044
  params.data
10045
10045
  )[0]
10046
10046
  );
10047
- if (params.token === spokeProvider.chainConfig.nativeToken) {
10047
+ if (params.token.toLowerCase() === spokeProvider.chainConfig.nativeToken.toLowerCase()) {
10048
10048
  const wrapCall = {
10049
10049
  address: spokeProvider.chainConfig.addresses.wrappedSonic,
10050
10050
  value: params.amount,
@@ -10078,7 +10078,7 @@ var SonicSpokeService = class _SonicSpokeService {
10078
10078
  from: params.from,
10079
10079
  to: spokeProvider.chainConfig.addresses.walletRouter,
10080
10080
  data: txData,
10081
- value: params.token === spokeProvider.chainConfig.nativeToken ? params.amount : 0n
10081
+ value: params.token.toLowerCase() === spokeProvider.chainConfig.nativeToken.toLowerCase() ? params.amount : 0n
10082
10082
  };
10083
10083
  if (raw) {
10084
10084
  return rawTx;
@@ -10293,12 +10293,16 @@ var SonicSpokeService = class _SonicSpokeService {
10293
10293
  }
10294
10294
  return spokeProvider.walletProvider.sendTransaction(rawTx);
10295
10295
  }
10296
- static async buildWithdrawData(from, withdrawInfo, amount, spokeProvider, moneyMarketService) {
10297
- const userRouter = await _SonicSpokeService.getUserRouter(from, spokeProvider);
10296
+ static async buildWithdrawData(from, withdrawInfo, amount, spokeProvider, moneyMarketService, userRouterAddress) {
10297
+ const userRouter = userRouterAddress ?? await _SonicSpokeService.getUserRouter(from, spokeProvider);
10298
+ let token = withdrawInfo.token;
10299
+ if (withdrawInfo.token.toLowerCase() === spokeProvider.chainConfig.nativeToken.toLowerCase()) {
10300
+ token = spokeProvider.chainConfig.addresses.wrappedSonic;
10301
+ }
10298
10302
  const withdrawCall = moneyMarketService.buildWithdrawData(
10299
10303
  userRouter,
10300
10304
  from,
10301
- withdrawInfo.token,
10305
+ token,
10302
10306
  amount,
10303
10307
  spokeProvider.chainConfig.chain.id
10304
10308
  );
@@ -10316,17 +10320,6 @@ var SonicSpokeService = class _SonicSpokeService {
10316
10320
  ],
10317
10321
  withdrawCall
10318
10322
  )[0];
10319
- const transferFromCall = Erc20Service.encodeTransferFrom(
10320
- withdrawInfo.aTokenAddress,
10321
- from,
10322
- userRouter,
10323
- withdrawInfo.aTokenAmount
10324
- );
10325
- calls.unshift({
10326
- address: transferFromCall.address,
10327
- value: transferFromCall.value,
10328
- data: transferFromCall.data
10329
- });
10330
10323
  return encodeContractCalls(calls);
10331
10324
  }
10332
10325
  };
@@ -13832,7 +13825,7 @@ function calculateAllUserIncentives({
13832
13825
  (reserve2) => reserve2.underlyingAsset === userIncentive.underlyingAsset
13833
13826
  );
13834
13827
  const userReserve = userReserves.find(
13835
- (userReserve2) => userReserve2.reserve.underlyingAsset === userIncentive.underlyingAsset
13828
+ (userReserve2) => userReserve2.reserve.underlyingAsset.toLowerCase() === userIncentive.underlyingAsset.toLowerCase()
13836
13829
  );
13837
13830
  if (reserve) {
13838
13831
  const reserveRewards = calculateUserReserveIncentives({
@@ -14847,7 +14840,11 @@ var MoneyMarketDataService = class {
14847
14840
  */
14848
14841
  async getUserReservesData(spokeProvider) {
14849
14842
  const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
14850
- const hubWalletAddress = spokeProvider.chainConfig.chain.id === this.hubProvider.chainConfig.chain.id ? walletAddress : await WalletAbstractionService.getUserHubWalletAddress(walletAddress, spokeProvider, this.hubProvider);
14843
+ const hubWalletAddress = await WalletAbstractionService.getUserHubWalletAddress(
14844
+ walletAddress,
14845
+ spokeProvider,
14846
+ this.hubProvider
14847
+ );
14851
14848
  return this.uiPoolDataProviderService.getUserReservesData(hubWalletAddress);
14852
14849
  }
14853
14850
  /**
@@ -14878,7 +14875,11 @@ var MoneyMarketDataService = class {
14878
14875
  */
14879
14876
  async getUserReservesHumanized(spokeProvider) {
14880
14877
  const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
14881
- const hubWalletAddress = spokeProvider.chainConfig.chain.id === this.hubProvider.chainConfig.chain.id ? walletAddress : await WalletAbstractionService.getUserHubWalletAddress(walletAddress, spokeProvider, this.hubProvider);
14878
+ const hubWalletAddress = await WalletAbstractionService.getUserHubWalletAddress(
14879
+ walletAddress,
14880
+ spokeProvider,
14881
+ this.hubProvider
14882
+ );
14882
14883
  return this.uiPoolDataProviderService.getUserReservesHumanized(hubWalletAddress);
14883
14884
  }
14884
14885
  /**
@@ -15616,13 +15617,31 @@ var MoneyMarketService = class _MoneyMarketService {
15616
15617
  spokeProvider,
15617
15618
  this.hubProvider
15618
15619
  );
15619
- const data = this.buildWithdrawData(
15620
- hubWallet,
15621
- encodedAddress,
15622
- params.token,
15623
- params.amount,
15624
- spokeProvider.chainConfig.chain.id
15625
- );
15620
+ let data;
15621
+ if (spokeProvider instanceof SonicSpokeProvider) {
15622
+ const withdrawInfo = await SonicSpokeService.getWithdrawInfo(
15623
+ params.token,
15624
+ params.amount,
15625
+ spokeProvider,
15626
+ this.data
15627
+ );
15628
+ data = await SonicSpokeService.buildWithdrawData(
15629
+ walletAddress,
15630
+ withdrawInfo,
15631
+ params.amount,
15632
+ spokeProvider,
15633
+ this,
15634
+ hubWallet
15635
+ );
15636
+ } else {
15637
+ data = this.buildWithdrawData(
15638
+ hubWallet,
15639
+ encodedAddress,
15640
+ params.token,
15641
+ params.amount,
15642
+ spokeProvider.chainConfig.chain.id
15643
+ );
15644
+ }
15626
15645
  const txResult = await SpokeService.callWallet(hubWallet, data, spokeProvider, this.hubProvider, raw);
15627
15646
  return {
15628
15647
  ok: true,
@@ -15786,9 +15805,14 @@ var MoneyMarketService = class _MoneyMarketService {
15786
15805
  const calls = [];
15787
15806
  const assetConfig = getHubAssetInfo(spokeChainId, token);
15788
15807
  invariant10(assetConfig, `hub asset not found for spoke chain token (token): ${token}`);
15789
- const assetAddress = assetConfig.asset;
15808
+ let assetAddress = assetConfig.asset;
15790
15809
  const vaultAddress = assetConfig.vault;
15791
15810
  const lendingPool = this.config.lendingPool;
15811
+ if (spokeChainId === this.hubProvider.chainConfig.chain.id) {
15812
+ if (token.toLowerCase() === spokeChainConfig[this.hubProvider.chainConfig.chain.id].nativeToken.toLowerCase()) {
15813
+ assetAddress = spokeChainConfig[this.hubProvider.chainConfig.chain.id].supportedTokens.wS.address;
15814
+ }
15815
+ }
15792
15816
  calls.push(Erc20Service.encodeApprove(assetAddress, vaultAddress, amount));
15793
15817
  calls.push(EvmVaultTokenService.encodeDeposit(vaultAddress, assetAddress, amount));
15794
15818
  const translatedAmount = EvmVaultTokenService.translateIncomingDecimals(assetConfig.decimal, amount);
@@ -15818,10 +15842,15 @@ var MoneyMarketService = class _MoneyMarketService {
15818
15842
  );
15819
15843
  const assetConfig = getHubAssetInfo(spokeChainId, token);
15820
15844
  invariant10(assetConfig, `hub asset not found for spoke chain token (token): ${token}`);
15821
- const assetAddress = assetConfig.asset;
15845
+ let assetAddress = assetConfig.asset;
15822
15846
  const vaultAddress = assetConfig.vault;
15823
15847
  const bnUSDVault = this.config.bnUSDVault;
15824
15848
  const bnUSD = this.config.bnUSD;
15849
+ if (spokeChainId === this.hubProvider.chainConfig.chain.id) {
15850
+ if (token.toLowerCase() === spokeChainConfig[this.hubProvider.chainConfig.chain.id].nativeToken.toLowerCase()) {
15851
+ assetAddress = spokeChainConfig[this.hubProvider.chainConfig.chain.id].supportedTokens.wS.address;
15852
+ }
15853
+ }
15825
15854
  const feeAmount = calculateFeeAmount(amount, this.config.partnerFee);
15826
15855
  const calls = [];
15827
15856
  if (bnUSDVault && bnUSD && bnUSDVault.toLowerCase() === vaultAddress.toLowerCase()) {
@@ -15942,10 +15971,15 @@ var MoneyMarketService = class _MoneyMarketService {
15942
15971
  if (!assetConfig) {
15943
15972
  throw new Error("[buildRepayData] Hub asset not found");
15944
15973
  }
15945
- const assetAddress = assetConfig.asset;
15974
+ let assetAddress = assetConfig.asset;
15946
15975
  const vaultAddress = assetConfig.vault;
15947
15976
  const bnUSDVault = this.config.bnUSDVault;
15948
15977
  const bnUSD = this.config.bnUSD;
15978
+ if (spokeChainId === this.hubProvider.chainConfig.chain.id) {
15979
+ if (token.toLowerCase() === spokeChainConfig[this.hubProvider.chainConfig.chain.id].nativeToken.toLowerCase()) {
15980
+ assetAddress = spokeChainConfig[this.hubProvider.chainConfig.chain.id].supportedTokens.wS.address;
15981
+ }
15982
+ }
15949
15983
  calls.push(Erc20Service.encodeApprove(assetAddress, vaultAddress, amount));
15950
15984
  calls.push(EvmVaultTokenService.encodeDeposit(vaultAddress, assetAddress, amount));
15951
15985
  const translatedAmount = EvmVaultTokenService.translateIncomingDecimals(assetConfig.decimal, amount);