@sodax/sdk 0.0.1-rc.25 → 0.0.1-rc.26

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.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var viem = require('viem');
4
- var invariant10 = require('tiny-invariant');
4
+ var invariant11 = require('tiny-invariant');
5
5
  var bcs = require('@mysten/sui/bcs');
6
6
  var web3_js = require('@solana/web3.js');
7
7
  var stellarSdk = require('@stellar/stellar-sdk');
@@ -39,7 +39,7 @@ function _interopNamespace(e) {
39
39
  return Object.freeze(n);
40
40
  }
41
41
 
42
- var invariant10__default = /*#__PURE__*/_interopDefault(invariant10);
42
+ var invariant11__default = /*#__PURE__*/_interopDefault(invariant11);
43
43
  var IconSdkRaw__namespace = /*#__PURE__*/_interopNamespace(IconSdkRaw);
44
44
  var rlp__namespace = /*#__PURE__*/_interopNamespace(rlp);
45
45
  var anchor__namespace = /*#__PURE__*/_interopNamespace(anchor);
@@ -6169,16 +6169,16 @@ function calculateFeeAmount(inputAmount, fee) {
6169
6169
  if (!fee) {
6170
6170
  return 0n;
6171
6171
  }
6172
- invariant10__default.default(inputAmount > 0n, "Input amount must be greater than 0");
6172
+ invariant11__default.default(inputAmount > 0n, "Input amount must be greater than 0");
6173
6173
  let feeAmount = 0n;
6174
6174
  if (isPartnerFeeAmount(fee)) {
6175
- invariant10__default.default(
6175
+ invariant11__default.default(
6176
6176
  fee.amount >= 0 && fee.amount <= inputAmount,
6177
6177
  `Fee amount must be greater than 0 and less than or equal to the input amount: ${fee.amount}`
6178
6178
  );
6179
6179
  feeAmount = fee.amount;
6180
6180
  } else if (isPartnerFeePercentage(fee)) {
6181
- invariant10__default.default(
6181
+ invariant11__default.default(
6182
6182
  fee.percentage >= 0 && fee.percentage <= FEE_PERCENTAGE_SCALE,
6183
6183
  `Fee percentage must be between 0 and ${FEE_PERCENTAGE_SCALE}}`
6184
6184
  );
@@ -6187,8 +6187,8 @@ function calculateFeeAmount(inputAmount, fee) {
6187
6187
  return feeAmount;
6188
6188
  }
6189
6189
  function adjustAmountByFee(amount, fee, quoteType) {
6190
- invariant10__default.default(amount > 0n, "Amount must be greater than 0");
6191
- invariant10__default.default(quoteType === "exact_input" || quoteType === "exact_output", "Invalid quote type");
6190
+ invariant11__default.default(amount > 0n, "Amount must be greater than 0");
6191
+ invariant11__default.default(quoteType === "exact_input" || quoteType === "exact_output", "Invalid quote type");
6192
6192
  if (quoteType === "exact_input") {
6193
6193
  return amount - calculateFeeAmount(amount, fee);
6194
6194
  }
@@ -10269,6 +10269,58 @@ var SonicSpokeService = class _SonicSpokeService {
10269
10269
  }
10270
10270
  return spokeProvider.walletProvider.sendTransaction(rawTx);
10271
10271
  }
10272
+ static async createSwapIntent(createIntentParams, creatorHubWalletAddress, solverConfig2, fee, spokeProvider, hubProvider, raw) {
10273
+ let inputToken = getHubAssetInfo(createIntentParams.srcChain, createIntentParams.inputToken)?.asset;
10274
+ if (createIntentParams.srcChain === hubProvider.chainConfig.chain.id && createIntentParams.inputToken.toLowerCase() === hubProvider.chainConfig.nativeToken.toLowerCase()) {
10275
+ inputToken = hubProvider.chainConfig.nativeToken;
10276
+ }
10277
+ const outputToken = getHubAssetInfo(createIntentParams.dstChain, createIntentParams.outputToken)?.asset;
10278
+ invariant11__default.default(
10279
+ inputToken,
10280
+ `hub asset not found for spoke chain token (intent.inputToken): ${createIntentParams.inputToken}`
10281
+ );
10282
+ invariant11__default.default(
10283
+ outputToken,
10284
+ `hub asset not found for spoke chain token (intent.outputToken): ${createIntentParams.outputToken}`
10285
+ );
10286
+ const [feeData, feeAmount] = EvmSolverService.createIntentFeeData(fee, createIntentParams.inputAmount);
10287
+ const intentsContract = solverConfig2.intentsContract;
10288
+ const intent = {
10289
+ ...createIntentParams,
10290
+ inputToken,
10291
+ outputToken,
10292
+ inputAmount: createIntentParams.inputAmount - feeAmount,
10293
+ srcChain: getIntentRelayChainId(createIntentParams.srcChain),
10294
+ dstChain: getIntentRelayChainId(createIntentParams.dstChain),
10295
+ srcAddress: encodeAddress(createIntentParams.srcChain, createIntentParams.srcAddress),
10296
+ dstAddress: encodeAddress(createIntentParams.dstChain, createIntentParams.dstAddress),
10297
+ intentId: randomUint256(),
10298
+ creator: creatorHubWalletAddress,
10299
+ data: feeData
10300
+ // fee amount will be deducted from the input amount
10301
+ };
10302
+ const txData = EvmSolverService.encodeCreateIntent(intent, intentsContract);
10303
+ const rawTx = {
10304
+ from: await spokeProvider.walletProvider.getWalletAddress(),
10305
+ to: txData.address,
10306
+ data: txData.data,
10307
+ value: createIntentParams.inputToken.toLowerCase() === hubProvider.chainConfig.nativeToken.toLowerCase() ? createIntentParams.inputAmount : 0n
10308
+ };
10309
+ if (raw) {
10310
+ return [
10311
+ rawTx,
10312
+ intent,
10313
+ feeAmount,
10314
+ txData.data
10315
+ ];
10316
+ }
10317
+ return [
10318
+ await spokeProvider.walletProvider.sendTransaction(rawTx),
10319
+ intent,
10320
+ feeAmount,
10321
+ txData.data
10322
+ ];
10323
+ }
10272
10324
  /**
10273
10325
  * Get the balance of the token in the spoke chain.
10274
10326
  * @param {Address} token - The address of the token to get the balance of.
@@ -10999,19 +11051,19 @@ async function postRequest(payload, apiUrl) {
10999
11051
  return response.json();
11000
11052
  }
11001
11053
  async function submitTransaction(payload, apiUrl) {
11002
- invariant10__default.default(payload.params.chain_id.length > 0, "Invalid input parameters. source_chain_id empty");
11003
- invariant10__default.default(payload.params.tx_hash.length > 0, "Invalid input parameters. tx_hash empty");
11054
+ invariant11__default.default(payload.params.chain_id.length > 0, "Invalid input parameters. source_chain_id empty");
11055
+ invariant11__default.default(payload.params.tx_hash.length > 0, "Invalid input parameters. tx_hash empty");
11004
11056
  return postRequest(payload, apiUrl);
11005
11057
  }
11006
11058
  async function getTransactionPackets(payload, apiUrl) {
11007
- invariant10__default.default(payload.params.chain_id.length > 0, "Invalid input parameters. source_chain_id empty");
11008
- invariant10__default.default(payload.params.tx_hash.length > 0, "Invalid input parameters. tx_hash empty");
11059
+ invariant11__default.default(payload.params.chain_id.length > 0, "Invalid input parameters. source_chain_id empty");
11060
+ invariant11__default.default(payload.params.tx_hash.length > 0, "Invalid input parameters. tx_hash empty");
11009
11061
  return postRequest(payload, apiUrl);
11010
11062
  }
11011
11063
  async function getPacket(payload, apiUrl) {
11012
- invariant10__default.default(payload.params.chain_id.length > 0, "Invalid input parameters. source_chain_id empty");
11013
- invariant10__default.default(payload.params.tx_hash.length > 0, "Invalid input parameters. tx_hash empty");
11014
- invariant10__default.default(payload.params.conn_sn.length > 0, "Invalid input parameters. conn_sn empty");
11064
+ invariant11__default.default(payload.params.chain_id.length > 0, "Invalid input parameters. source_chain_id empty");
11065
+ invariant11__default.default(payload.params.tx_hash.length > 0, "Invalid input parameters. tx_hash empty");
11066
+ invariant11__default.default(payload.params.conn_sn.length > 0, "Invalid input parameters. conn_sn empty");
11015
11067
  return postRequest(payload, apiUrl);
11016
11068
  }
11017
11069
  async function waitUntilIntentExecuted(payload) {
@@ -11142,11 +11194,11 @@ var EvmSolverService = class _EvmSolverService {
11142
11194
  inputToken = hubProvider.chainConfig.wrappedNativeToken;
11143
11195
  }
11144
11196
  const outputToken = getHubAssetInfo(createIntentParams.dstChain, createIntentParams.outputToken)?.asset;
11145
- invariant10__default.default(
11197
+ invariant11__default.default(
11146
11198
  inputToken,
11147
11199
  `hub asset not found for spoke chain token (intent.inputToken): ${createIntentParams.inputToken}`
11148
11200
  );
11149
- invariant10__default.default(
11201
+ invariant11__default.default(
11150
11202
  outputToken,
11151
11203
  `hub asset not found for spoke chain token (intent.outputToken): ${createIntentParams.outputToken}`
11152
11204
  );
@@ -11178,7 +11230,7 @@ var EvmSolverService = class _EvmSolverService {
11178
11230
  * @returns A tuple containing [encoded fee data, fee amount]. Fee amount will be 0n if no fee.
11179
11231
  */
11180
11232
  static createIntentFeeData(fee, inputAmount) {
11181
- invariant10__default.default(inputAmount > 0n, "Input amount must be greater than 0");
11233
+ invariant11__default.default(inputAmount > 0n, "Input amount must be greater than 0");
11182
11234
  if (!fee) {
11183
11235
  return ["0x", 0n];
11184
11236
  }
@@ -11186,7 +11238,7 @@ var EvmSolverService = class _EvmSolverService {
11186
11238
  if (isPartnerFeeAmount(fee)) {
11187
11239
  feeAmount = fee.amount;
11188
11240
  } else if (isPartnerFeePercentage(fee)) {
11189
- invariant10__default.default(
11241
+ invariant11__default.default(
11190
11242
  fee.percentage >= 0 && fee.percentage <= FEE_PERCENTAGE_SCALE,
11191
11243
  `Fee percentage must be between 0 and ${FEE_PERCENTAGE_SCALE}}`
11192
11244
  );
@@ -11313,23 +11365,23 @@ var SolverApiService = class {
11313
11365
  * }
11314
11366
  */
11315
11367
  static async getQuote(payload, config) {
11316
- invariant10__default.default(payload.token_src.length > 0, "Empty token_src");
11317
- invariant10__default.default(payload.token_src_blockchain_id.length > 0, "Empty token_src_blockchain_id");
11318
- invariant10__default.default(payload.token_dst.length > 0, "Empty token_dst");
11319
- invariant10__default.default(payload.token_dst_blockchain_id.length > 0, "Empty token_dst_blockchain_id");
11320
- invariant10__default.default(payload.amount > 0n, "amount must be greater than 0");
11321
- invariant10__default.default(
11368
+ invariant11__default.default(payload.token_src.length > 0, "Empty token_src");
11369
+ invariant11__default.default(payload.token_src_blockchain_id.length > 0, "Empty token_src_blockchain_id");
11370
+ invariant11__default.default(payload.token_dst.length > 0, "Empty token_dst");
11371
+ invariant11__default.default(payload.token_dst_blockchain_id.length > 0, "Empty token_dst_blockchain_id");
11372
+ invariant11__default.default(payload.amount > 0n, "amount must be greater than 0");
11373
+ invariant11__default.default(
11322
11374
  isValidOriginalAssetAddress(payload.token_src_blockchain_id, payload.token_src),
11323
11375
  "unsupported token_src for src chain"
11324
11376
  );
11325
- invariant10__default.default(
11377
+ invariant11__default.default(
11326
11378
  isValidOriginalAssetAddress(payload.token_dst_blockchain_id, payload.token_dst),
11327
11379
  "unsupported token_dst for dst chain"
11328
11380
  );
11329
11381
  const tokenSrc = getHubAssetInfo(payload.token_src_blockchain_id, payload.token_src)?.asset;
11330
11382
  const tokenDst = getHubAssetInfo(payload.token_dst_blockchain_id, payload.token_dst)?.asset;
11331
- invariant10__default.default(tokenSrc, "hub asset not found for token_src");
11332
- invariant10__default.default(tokenDst, "hub asset not found for token_dst");
11383
+ invariant11__default.default(tokenSrc, "hub asset not found for token_src");
11384
+ invariant11__default.default(tokenDst, "hub asset not found for token_dst");
11333
11385
  try {
11334
11386
  const response = await fetch(`${config.solverApiEndpoint}/quote`, {
11335
11387
  method: "POST",
@@ -11424,7 +11476,7 @@ var SolverApiService = class {
11424
11476
  }
11425
11477
  }
11426
11478
  static async getStatus(request, config) {
11427
- invariant10__default.default(request.intent_tx_hash.length > 0, "Empty intent_tx_hash");
11479
+ invariant11__default.default(request.intent_tx_hash.length > 0, "Empty intent_tx_hash");
11428
11480
  try {
11429
11481
  const response = await fetch(`${config.solverApiEndpoint}/status`, {
11430
11482
  method: "POST",
@@ -11885,13 +11937,23 @@ var SolverService = class {
11885
11937
  spokeProvider
11886
11938
  }) {
11887
11939
  try {
11888
- if (spokeProvider instanceof EvmSpokeProvider || spokeProvider instanceof SonicSpokeProvider) {
11940
+ if (spokeProvider instanceof EvmSpokeProvider) {
11941
+ const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
11942
+ return await Erc20Service.isAllowanceValid(
11943
+ params.inputToken,
11944
+ params.inputAmount,
11945
+ walletAddress,
11946
+ spokeProvider.chainConfig.addresses.assetManager,
11947
+ spokeProvider
11948
+ );
11949
+ }
11950
+ if (spokeProvider instanceof SonicSpokeProvider) {
11889
11951
  const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
11890
11952
  return await Erc20Service.isAllowanceValid(
11891
11953
  params.inputToken,
11892
11954
  params.inputAmount,
11893
11955
  walletAddress,
11894
- spokeProvider instanceof EvmSpokeProvider ? spokeProvider.chainConfig.addresses.assetManager : spokeProvider.chainConfig.addresses.walletRouter,
11956
+ getSolverConfig(types.SONIC_MAINNET_CHAIN_ID).intentsContract,
11895
11957
  spokeProvider
11896
11958
  );
11897
11959
  }
@@ -11950,7 +12012,7 @@ var SolverService = class {
11950
12012
  raw
11951
12013
  }) {
11952
12014
  try {
11953
- if (spokeProvider instanceof EvmSpokeProvider || spokeProvider instanceof SonicSpokeProvider) {
12015
+ if (spokeProvider instanceof EvmSpokeProvider) {
11954
12016
  const result = await Erc20Service.approve(
11955
12017
  params.inputToken,
11956
12018
  params.inputAmount,
@@ -11963,6 +12025,19 @@ var SolverService = class {
11963
12025
  value: result
11964
12026
  };
11965
12027
  }
12028
+ if (spokeProvider instanceof SonicSpokeProvider) {
12029
+ const result = await Erc20Service.approve(
12030
+ params.inputToken,
12031
+ params.inputAmount,
12032
+ getSolverConfig(types.SONIC_MAINNET_CHAIN_ID).intentsContract,
12033
+ spokeProvider,
12034
+ raw
12035
+ );
12036
+ return {
12037
+ ok: true,
12038
+ value: result
12039
+ };
12040
+ }
11966
12041
  return {
11967
12042
  ok: false,
11968
12043
  error: new Error("Approve only supported for EVM spoke chains")
@@ -12022,49 +12097,70 @@ var SolverService = class {
12022
12097
  fee = this.config.partnerFee,
12023
12098
  raw
12024
12099
  }) {
12025
- invariant10__default.default(
12100
+ invariant11__default.default(
12026
12101
  isValidOriginalAssetAddress(params.srcChain, params.inputToken),
12027
12102
  `Unsupported spoke chain token (params.srcChain): ${params.srcChain}, params.inputToken): ${params.inputToken}`
12028
12103
  );
12029
- invariant10__default.default(
12104
+ invariant11__default.default(
12030
12105
  isValidOriginalAssetAddress(params.dstChain, params.outputToken),
12031
12106
  `Unsupported spoke chain token (params.dstChain): ${params.dstChain}, params.outputToken): ${params.outputToken}`
12032
12107
  );
12033
- invariant10__default.default(isValidSpokeChainId(params.srcChain), `Invalid spoke chain (params.srcChain): ${params.srcChain}`);
12034
- invariant10__default.default(isValidSpokeChainId(params.dstChain), `Invalid spoke chain (params.dstChain): ${params.dstChain}`);
12108
+ invariant11__default.default(isValidSpokeChainId(params.srcChain), `Invalid spoke chain (params.srcChain): ${params.srcChain}`);
12109
+ invariant11__default.default(isValidSpokeChainId(params.dstChain), `Invalid spoke chain (params.dstChain): ${params.dstChain}`);
12035
12110
  try {
12036
12111
  const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
12037
- invariant10__default.default(
12112
+ invariant11__default.default(
12038
12113
  params.srcAddress.toLowerCase() === walletAddress.toLowerCase(),
12039
12114
  "srcAddress must be the same as wallet address"
12040
12115
  );
12041
12116
  const creatorHubWalletAddress = spokeProvider.chainConfig.chain.id === this.hubProvider.chainConfig.chain.id ? walletAddress : await WalletAbstractionService.getUserHubWalletAddress(walletAddress, spokeProvider, this.hubProvider);
12042
- const [data, intent, feeAmount] = EvmSolverService.constructCreateIntentData(
12043
- {
12044
- ...params,
12045
- srcAddress: walletAddress
12046
- },
12047
- creatorHubWalletAddress,
12048
- this.config,
12049
- fee,
12050
- this.hubProvider
12051
- );
12052
- const txResult = await SpokeService.deposit(
12053
- {
12054
- from: walletAddress,
12055
- to: creatorHubWalletAddress,
12056
- token: params.inputToken,
12057
- amount: params.inputAmount,
12058
- data
12059
- },
12060
- spokeProvider,
12061
- this.hubProvider,
12062
- raw
12063
- );
12064
- return {
12065
- ok: true,
12066
- value: [txResult, { ...intent, feeAmount }, data]
12067
- };
12117
+ if (spokeProvider.chainConfig.chain.id === this.hubProvider.chainConfig.chain.id) {
12118
+ const [txResult, intent, feeAmount, data] = await SonicSpokeService.createSwapIntent(
12119
+ params,
12120
+ creatorHubWalletAddress,
12121
+ this.config,
12122
+ fee,
12123
+ spokeProvider,
12124
+ this.hubProvider,
12125
+ raw
12126
+ );
12127
+ return {
12128
+ ok: true,
12129
+ value: [
12130
+ txResult,
12131
+ { ...intent, feeAmount },
12132
+ data
12133
+ ]
12134
+ };
12135
+ }
12136
+ {
12137
+ const [data, intent, feeAmount] = EvmSolverService.constructCreateIntentData(
12138
+ {
12139
+ ...params,
12140
+ srcAddress: walletAddress
12141
+ },
12142
+ creatorHubWalletAddress,
12143
+ this.config,
12144
+ fee,
12145
+ this.hubProvider
12146
+ );
12147
+ const txResult = await SpokeService.deposit(
12148
+ {
12149
+ from: walletAddress,
12150
+ to: creatorHubWalletAddress,
12151
+ token: params.inputToken,
12152
+ amount: params.inputAmount,
12153
+ data
12154
+ },
12155
+ spokeProvider,
12156
+ this.hubProvider,
12157
+ raw
12158
+ );
12159
+ return {
12160
+ ok: true,
12161
+ value: [txResult, { ...intent, feeAmount }, data]
12162
+ };
12163
+ }
12068
12164
  } catch (error) {
12069
12165
  return {
12070
12166
  ok: false,
@@ -12087,8 +12183,8 @@ var SolverService = class {
12087
12183
  */
12088
12184
  async cancelIntent(intent, spokeProvider, raw) {
12089
12185
  try {
12090
- invariant10__default.default(isValidIntentRelayChainId(intent.srcChain), `Invalid intent.srcChain: ${intent.srcChain}`);
12091
- invariant10__default.default(isValidIntentRelayChainId(intent.dstChain), `Invalid intent.dstChain: ${intent.dstChain}`);
12186
+ invariant11__default.default(isValidIntentRelayChainId(intent.srcChain), `Invalid intent.srcChain: ${intent.srcChain}`);
12187
+ invariant11__default.default(isValidIntentRelayChainId(intent.dstChain), `Invalid intent.dstChain: ${intent.dstChain}`);
12092
12188
  const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
12093
12189
  const creatorHubWalletAddress = spokeProvider.chainConfig.chain.id === this.hubProvider.chainConfig.chain.id ? walletAddress : await WalletAbstractionService.getUserHubWalletAddress(walletAddress, spokeProvider, this.hubProvider);
12094
12190
  const calls = [];
@@ -12600,7 +12696,7 @@ var IcxMigrationService = class {
12600
12696
  migrateData(params) {
12601
12697
  const calls = [];
12602
12698
  const assetConfig = getHubAssetInfo(types.ICON_MAINNET_CHAIN_ID, params.address);
12603
- invariant10__default.default(assetConfig, `hub asset not found for spoke chain token (token): ${params.address}`);
12699
+ invariant11__default.default(assetConfig, `hub asset not found for spoke chain token (token): ${params.address}`);
12604
12700
  calls.push(
12605
12701
  Erc20Service.encodeApprove(assetConfig.asset, this.hubProvider.chainConfig.addresses.icxMigration, params.amount)
12606
12702
  );
@@ -12616,7 +12712,7 @@ var IcxMigrationService = class {
12616
12712
  revertMigration(params) {
12617
12713
  const calls = [];
12618
12714
  const assetConfig = getHubAssetInfo(types.ICON_MAINNET_CHAIN_ID, params.wICX);
12619
- invariant10__default.default(assetConfig, `hub asset not found for spoke chain token (token): ${params.wICX}`);
12715
+ invariant11__default.default(assetConfig, `hub asset not found for spoke chain token (token): ${params.wICX}`);
12620
12716
  calls.push(
12621
12717
  Erc20Service.encodeApprove(
12622
12718
  this.hubProvider.chainConfig.addresses.sodaToken,
@@ -12712,9 +12808,9 @@ var MigrationService = class {
12712
12808
  async isAllowanceValid(params, action, spokeProvider) {
12713
12809
  try {
12714
12810
  if (action === "migrate") {
12715
- invariant10__default.default(params.amount > 0n, "Amount must be greater than 0");
12716
- invariant10__default.default(viem.isAddress(params.to) || isIconAddress(params.to), "To address is required");
12717
- invariant10__default.default(
12811
+ invariant11__default.default(params.amount > 0n, "Amount must be greater than 0");
12812
+ invariant11__default.default(viem.isAddress(params.to) || isIconAddress(params.to), "To address is required");
12813
+ invariant11__default.default(
12718
12814
  isIcxMigrateParams(params) || isBalnMigrateParams(params) || isUnifiedBnUSDMigrateParams(params),
12719
12815
  "Invalid params"
12720
12816
  );
@@ -12740,9 +12836,9 @@ var MigrationService = class {
12740
12836
  };
12741
12837
  }
12742
12838
  if (action === "revert") {
12743
- invariant10__default.default(params.amount > 0n, "Amount must be greater than 0");
12744
- invariant10__default.default(params.to.length > 0, "To address is required");
12745
- invariant10__default.default(isIcxCreateRevertMigrationParams(params) || isUnifiedBnUSDMigrateParams(params), "Invalid params");
12839
+ invariant11__default.default(params.amount > 0n, "Amount must be greater than 0");
12840
+ invariant11__default.default(params.to.length > 0, "To address is required");
12841
+ invariant11__default.default(isIcxCreateRevertMigrationParams(params) || isUnifiedBnUSDMigrateParams(params), "Invalid params");
12746
12842
  if (spokeProvider instanceof SonicSpokeProvider && isIcxCreateRevertMigrationParams(params)) {
12747
12843
  const wallet = await spokeProvider.walletProvider.getWalletAddress();
12748
12844
  const userRouter = await SonicSpokeService.getUserRouter(wallet, spokeProvider);
@@ -12798,9 +12894,9 @@ var MigrationService = class {
12798
12894
  async approve(params, action, spokeProvider, raw) {
12799
12895
  try {
12800
12896
  if (action === "migrate") {
12801
- invariant10__default.default(params.amount > 0n, "Amount must be greater than 0");
12802
- invariant10__default.default(params.to.length > 0, "To address is required");
12803
- invariant10__default.default(isUnifiedBnUSDMigrateParams(params), "Invalid params");
12897
+ invariant11__default.default(params.amount > 0n, "Amount must be greater than 0");
12898
+ invariant11__default.default(params.to.length > 0, "To address is required");
12899
+ invariant11__default.default(isUnifiedBnUSDMigrateParams(params), "Invalid params");
12804
12900
  if (isUnifiedBnUSDMigrateParams(params) && spokeProvider.chainConfig.chain.type === "EVM") {
12805
12901
  const evmSpokeProvider = spokeProvider;
12806
12902
  const result = await Erc20Service.approve(
@@ -12821,9 +12917,9 @@ var MigrationService = class {
12821
12917
  };
12822
12918
  }
12823
12919
  if (action === "revert") {
12824
- invariant10__default.default(params.amount > 0n, "Amount must be greater than 0");
12825
- invariant10__default.default(params.to.length > 0, "To address is required");
12826
- invariant10__default.default(isIcxCreateRevertMigrationParams(params) || isUnifiedBnUSDMigrateParams(params), "Invalid params");
12920
+ invariant11__default.default(params.amount > 0n, "Amount must be greater than 0");
12921
+ invariant11__default.default(params.to.length > 0, "To address is required");
12922
+ invariant11__default.default(isIcxCreateRevertMigrationParams(params) || isUnifiedBnUSDMigrateParams(params), "Invalid params");
12827
12923
  if (spokeProvider instanceof SonicSpokeProvider && isIcxCreateRevertMigrationParams(params)) {
12828
12924
  const wallet = await spokeProvider.walletProvider.getWalletAddress();
12829
12925
  const userRouter = await SonicSpokeService.getUserRouter(wallet, spokeProvider);
@@ -13235,13 +13331,13 @@ var MigrationService = class {
13235
13331
  async createMigratebnUSDIntent(params, spokeProvider, unchecked = false, raw) {
13236
13332
  try {
13237
13333
  if (!unchecked) {
13238
- invariant10__default.default(isValidSpokeChainId(params.srcChainId), "Invalid spoke source chain ID");
13239
- invariant10__default.default(isValidSpokeChainId(params.dstChainId), "Invalid spoke destination chain ID");
13240
- invariant10__default.default(params.srcbnUSD.length > 0, "Legacy bnUSD token address is required");
13241
- invariant10__default.default(params.dstbnUSD.length > 0, "New bnUSD token address is required");
13242
- invariant10__default.default(params.amount > 0, "Amount must be greater than 0");
13243
- invariant10__default.default(params.to.length > 0, "Recipient address is required");
13244
- invariant10__default.default(
13334
+ invariant11__default.default(isValidSpokeChainId(params.srcChainId), "Invalid spoke source chain ID");
13335
+ invariant11__default.default(isValidSpokeChainId(params.dstChainId), "Invalid spoke destination chain ID");
13336
+ invariant11__default.default(params.srcbnUSD.length > 0, "Legacy bnUSD token address is required");
13337
+ invariant11__default.default(params.dstbnUSD.length > 0, "New bnUSD token address is required");
13338
+ invariant11__default.default(params.amount > 0, "Amount must be greater than 0");
13339
+ invariant11__default.default(params.to.length > 0, "Recipient address is required");
13340
+ invariant11__default.default(
13245
13341
  !(isLegacybnUSDToken(params.srcbnUSD) && isLegacybnUSDToken(params.dstbnUSD)),
13246
13342
  "srcbnUSD and dstbnUSD cannot both be legacy bnUSD tokens"
13247
13343
  );
@@ -13249,11 +13345,11 @@ var MigrationService = class {
13249
13345
  let migrationData;
13250
13346
  if (isLegacybnUSDToken(params.srcbnUSD)) {
13251
13347
  if (!unchecked) {
13252
- invariant10__default.default(
13348
+ invariant11__default.default(
13253
13349
  isLegacybnUSDChainId(params.srcChainId),
13254
13350
  "srcChainId must be a legacy bnUSD chain (icon, sui, stellar) if srcbnUSD is a legacy bnUSD token"
13255
13351
  );
13256
- invariant10__default.default(
13352
+ invariant11__default.default(
13257
13353
  isNewbnUSDChainId(params.dstChainId),
13258
13354
  "dstChainId must be a new bnUSD chain (all spoke chains besides Icon) if dstbnUSD is a legacy bnUSD token"
13259
13355
  );
@@ -13268,15 +13364,15 @@ var MigrationService = class {
13268
13364
  });
13269
13365
  } else if (isLegacybnUSDToken(params.dstbnUSD)) {
13270
13366
  if (!unchecked) {
13271
- invariant10__default.default(
13367
+ invariant11__default.default(
13272
13368
  isLegacybnUSDChainId(params.dstChainId),
13273
13369
  "dstChainId must be a legacy bnUSD chain (sui, stellar, icon) if dstbnUSD is a legacy bnUSD token"
13274
13370
  );
13275
- invariant10__default.default(
13371
+ invariant11__default.default(
13276
13372
  isNewbnUSDToken(params.srcbnUSD),
13277
13373
  "srcbnUSD must be a new bnUSD token if dstbnUSD is a legacy bnUSD token"
13278
13374
  );
13279
- invariant10__default.default(
13375
+ invariant11__default.default(
13280
13376
  isNewbnUSDChainId(params.srcChainId),
13281
13377
  "srcChainId must be a new bnUSD chain (all spoke chains besides Icon) if srcbnUSD is a new bnUSD token"
13282
13378
  );
@@ -13349,13 +13445,13 @@ var MigrationService = class {
13349
13445
  */
13350
13446
  async createMigrateIcxToSodaIntent(params, spokeProvider, raw) {
13351
13447
  try {
13352
- invariant10__default.default(params.amount > 0, "Amount must be greater than 0");
13353
- invariant10__default.default(viem.isAddress(params.to), "Recipient address is required");
13354
- invariant10__default.default(
13448
+ invariant11__default.default(params.amount > 0, "Amount must be greater than 0");
13449
+ invariant11__default.default(viem.isAddress(params.to), "Recipient address is required");
13450
+ invariant11__default.default(
13355
13451
  params.address.toLowerCase() === spokeProvider.chainConfig.addresses.wICX.toLowerCase() || params.address.toLowerCase() === spokeProvider.chainConfig.nativeToken.toLowerCase(),
13356
13452
  "Token must be wICX or native ICX token"
13357
13453
  );
13358
- invariant10__default.default(spokeProvider instanceof IconSpokeProvider, "Spoke provider must be an instance of IconSpokeProvider");
13454
+ invariant11__default.default(spokeProvider instanceof IconSpokeProvider, "Spoke provider must be an instance of IconSpokeProvider");
13359
13455
  const availableAmount = await this.icxMigration.getAvailableAmount();
13360
13456
  if (availableAmount < params.amount) {
13361
13457
  throw new Error(
@@ -13467,7 +13563,7 @@ var BnUSDMigrationService = class {
13467
13563
  migrateData(params) {
13468
13564
  const calls = [];
13469
13565
  const assetConfig = getHubAssetInfo(params.srcChainId, params.legacybnUSD);
13470
- invariant10__default.default(assetConfig, `hub asset not found for legacy bnUSD token: ${params.legacybnUSD}`);
13566
+ invariant11__default.default(assetConfig, `hub asset not found for legacy bnUSD token: ${params.legacybnUSD}`);
13471
13567
  const bnUSDVault = getMoneyMarketConfig(types.SONIC_MAINNET_CHAIN_ID).bnUSDVault;
13472
13568
  calls.push(Erc20Service.encodeApprove(assetConfig.asset, assetConfig.vault, params.amount));
13473
13569
  calls.push(EvmVaultTokenService.encodeDeposit(assetConfig.vault, assetConfig.asset, params.amount));
@@ -13479,7 +13575,7 @@ var BnUSDMigrationService = class {
13479
13575
  return encodeContractCalls(calls);
13480
13576
  }
13481
13577
  const dstAssetConfig = getHubAssetInfo(params.dstChainId, params.newbnUSD);
13482
- invariant10__default.default(dstAssetConfig, `hub asset not found for new bnUSD token: ${params.newbnUSD}`);
13578
+ invariant11__default.default(dstAssetConfig, `hub asset not found for new bnUSD token: ${params.newbnUSD}`);
13483
13579
  calls.push(EvmVaultTokenService.encodeWithdraw(bnUSDVault, dstAssetConfig.asset, translatedAmount));
13484
13580
  const translatedAmountOut = EvmVaultTokenService.translateOutgoingDecimals(
13485
13581
  dstAssetConfig.decimal,
@@ -13512,14 +13608,14 @@ var BnUSDMigrationService = class {
13512
13608
  let decimals = 18;
13513
13609
  if (params.newbnUSD.toLowerCase() !== bnUSDVault.toLowerCase()) {
13514
13610
  const assetConfig = getHubAssetInfo(params.srcChainId, params.newbnUSD);
13515
- invariant10__default.default(assetConfig, `hub asset not found for new bnUSD token: ${params.newbnUSD}`);
13611
+ invariant11__default.default(assetConfig, `hub asset not found for new bnUSD token: ${params.newbnUSD}`);
13516
13612
  decimals = assetConfig.decimal;
13517
13613
  calls.push(Erc20Service.encodeApprove(assetConfig.asset, bnUSDVault, params.amount));
13518
13614
  calls.push(EvmVaultTokenService.encodeDeposit(bnUSDVault, assetConfig.asset, params.amount));
13519
13615
  }
13520
13616
  const translatedAmount = EvmVaultTokenService.translateIncomingDecimals(decimals, params.amount);
13521
13617
  const dstAssetConfig = getHubAssetInfo(params.dstChainId, params.legacybnUSD);
13522
- invariant10__default.default(dstAssetConfig, `hub asset not found for new bnUSD token: ${params.legacybnUSD}`);
13618
+ invariant11__default.default(dstAssetConfig, `hub asset not found for new bnUSD token: ${params.legacybnUSD}`);
13523
13619
  calls.push(EvmVaultTokenService.encodeWithdraw(bnUSDVault, dstAssetConfig.vault, translatedAmount));
13524
13620
  calls.push(EvmVaultTokenService.encodeWithdraw(dstAssetConfig.vault, dstAssetConfig.asset, translatedAmount));
13525
13621
  const translatedAmountOut = EvmVaultTokenService.translateOutgoingDecimals(
@@ -13602,7 +13698,7 @@ var BalnSwapService = class {
13602
13698
  */
13603
13699
  async swapData(balnToken, params) {
13604
13700
  const assetConfig = getHubAssetInfo(types.ICON_MAINNET_CHAIN_ID, balnToken);
13605
- invariant10__default.default(assetConfig, `hub asset not found for baln token: ${balnToken}`);
13701
+ invariant11__default.default(assetConfig, `hub asset not found for baln token: ${balnToken}`);
13606
13702
  const calls = [];
13607
13703
  calls.push(
13608
13704
  Erc20Service.encodeApprove(assetConfig.asset, this.hubProvider.chainConfig.addresses.balnSwap, params.amount)
@@ -15366,9 +15462,9 @@ var MoneyMarketService = class _MoneyMarketService {
15366
15462
  */
15367
15463
  async isAllowanceValid(params, spokeProvider) {
15368
15464
  try {
15369
- invariant10__default.default(params.amount > 0n, "Amount must be greater than 0");
15370
- invariant10__default.default(params.token.length > 0, "Token is required");
15371
- invariant10__default.default(
15465
+ invariant11__default.default(params.amount > 0n, "Amount must be greater than 0");
15466
+ invariant11__default.default(params.token.length > 0, "Token is required");
15467
+ invariant11__default.default(
15372
15468
  isMoneyMarketSupportedToken(spokeProvider.chainConfig.chain.id, params.token),
15373
15469
  `Unsupported spoke chain (${spokeProvider.chainConfig.chain.id}) token: ${params.token}`
15374
15470
  );
@@ -15463,19 +15559,19 @@ var MoneyMarketService = class _MoneyMarketService {
15463
15559
  */
15464
15560
  async approve(params, spokeProvider, raw) {
15465
15561
  try {
15466
- invariant10__default.default(params.amount > 0n, "Amount must be greater than 0");
15467
- invariant10__default.default(params.token.length > 0, "Token is required");
15468
- invariant10__default.default(
15562
+ invariant11__default.default(params.amount > 0n, "Amount must be greater than 0");
15563
+ invariant11__default.default(params.token.length > 0, "Token is required");
15564
+ invariant11__default.default(
15469
15565
  isMoneyMarketSupportedToken(spokeProvider.chainConfig.chain.id, params.token),
15470
15566
  `Unsupported spoke chain (${spokeProvider.chainConfig.chain.id}) token: ${params.token}`
15471
15567
  );
15472
15568
  const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
15473
15569
  if (spokeProvider instanceof EvmSpokeProvider) {
15474
- invariant10__default.default(
15570
+ invariant11__default.default(
15475
15571
  params.action === "supply" || params.action === "repay",
15476
15572
  "Invalid action (only supply and repay are supported on evm)"
15477
15573
  );
15478
- invariant10__default.default(viem.isAddress(params.token), "Invalid token address");
15574
+ invariant11__default.default(viem.isAddress(params.token), "Invalid token address");
15479
15575
  const result = await Erc20Service.approve(
15480
15576
  params.token,
15481
15577
  params.amount,
@@ -15489,11 +15585,11 @@ var MoneyMarketService = class _MoneyMarketService {
15489
15585
  };
15490
15586
  }
15491
15587
  if (spokeProvider instanceof SonicSpokeProvider && spokeProvider.chainConfig.chain.id === this.hubProvider.chainConfig.chain.id) {
15492
- invariant10__default.default(
15588
+ invariant11__default.default(
15493
15589
  params.action === "withdraw" || params.action === "borrow" || params.action === "supply" || params.action === "repay",
15494
15590
  "Invalid action (only withdraw, borrow, supply and repay are supported on sonic)"
15495
15591
  );
15496
- invariant10__default.default(viem.isAddress(params.token), "Invalid token address");
15592
+ invariant11__default.default(viem.isAddress(params.token), "Invalid token address");
15497
15593
  if (params.action === "withdraw") {
15498
15594
  const withdrawInfo = await SonicSpokeService.getWithdrawInfo(
15499
15595
  params.token,
@@ -15665,10 +15761,10 @@ var MoneyMarketService = class _MoneyMarketService {
15665
15761
  */
15666
15762
  async createSupplyIntent(params, spokeProvider, raw) {
15667
15763
  try {
15668
- invariant10__default.default(params.action === "supply", "Invalid action");
15669
- invariant10__default.default(params.token.length > 0, "Token is required");
15670
- invariant10__default.default(params.amount > 0n, "Amount must be greater than 0");
15671
- invariant10__default.default(
15764
+ invariant11__default.default(params.action === "supply", "Invalid action");
15765
+ invariant11__default.default(params.token.length > 0, "Token is required");
15766
+ invariant11__default.default(params.amount > 0n, "Amount must be greater than 0");
15767
+ invariant11__default.default(
15672
15768
  isMoneyMarketSupportedToken(spokeProvider.chainConfig.chain.id, params.token),
15673
15769
  `Unsupported spoke chain (${spokeProvider.chainConfig.chain.id}) token: ${params.token}`
15674
15770
  );
@@ -15820,10 +15916,10 @@ var MoneyMarketService = class _MoneyMarketService {
15820
15916
  * }
15821
15917
  */
15822
15918
  async createBorrowIntent(params, spokeProvider, raw) {
15823
- invariant10__default.default(params.action === "borrow", "Invalid action");
15824
- invariant10__default.default(params.token.length > 0, "Token is required");
15825
- invariant10__default.default(params.amount > 0n, "Amount must be greater than 0");
15826
- invariant10__default.default(
15919
+ invariant11__default.default(params.action === "borrow", "Invalid action");
15920
+ invariant11__default.default(params.token.length > 0, "Token is required");
15921
+ invariant11__default.default(params.amount > 0n, "Amount must be greater than 0");
15922
+ invariant11__default.default(
15827
15923
  isMoneyMarketSupportedToken(spokeProvider.chainConfig.chain.id, params.token),
15828
15924
  `Unsupported spoke chain (${spokeProvider.chainConfig.chain.id}) token: ${params.token}`
15829
15925
  );
@@ -15955,10 +16051,10 @@ var MoneyMarketService = class _MoneyMarketService {
15955
16051
  * }
15956
16052
  */
15957
16053
  async createWithdrawIntent(params, spokeProvider, raw) {
15958
- invariant10__default.default(params.action === "withdraw", "Invalid action");
15959
- invariant10__default.default(params.token.length > 0, "Token is required");
15960
- invariant10__default.default(params.amount > 0n, "Amount must be greater than 0");
15961
- invariant10__default.default(
16054
+ invariant11__default.default(params.action === "withdraw", "Invalid action");
16055
+ invariant11__default.default(params.token.length > 0, "Token is required");
16056
+ invariant11__default.default(params.amount > 0n, "Amount must be greater than 0");
16057
+ invariant11__default.default(
15962
16058
  isMoneyMarketSupportedToken(spokeProvider.chainConfig.chain.id, params.token),
15963
16059
  `Unsupported spoke chain (${spokeProvider.chainConfig.chain.id}) token: ${params.token}`
15964
16060
  );
@@ -16110,10 +16206,10 @@ var MoneyMarketService = class _MoneyMarketService {
16110
16206
  * }
16111
16207
  */
16112
16208
  async createRepayIntent(params, spokeProvider, raw) {
16113
- invariant10__default.default(params.action === "repay", "Invalid action");
16114
- invariant10__default.default(params.token.length > 0, "Token is required");
16115
- invariant10__default.default(params.amount > 0n, "Amount must be greater than 0");
16116
- invariant10__default.default(
16209
+ invariant11__default.default(params.action === "repay", "Invalid action");
16210
+ invariant11__default.default(params.token.length > 0, "Token is required");
16211
+ invariant11__default.default(params.amount > 0n, "Amount must be greater than 0");
16212
+ invariant11__default.default(
16117
16213
  isMoneyMarketSupportedToken(spokeProvider.chainConfig.chain.id, params.token),
16118
16214
  `Unsupported spoke chain (${spokeProvider.chainConfig.chain.id}) token: ${params.token}`
16119
16215
  );
@@ -16156,7 +16252,7 @@ var MoneyMarketService = class _MoneyMarketService {
16156
16252
  buildSupplyData(token, to, amount, spokeChainId) {
16157
16253
  const calls = [];
16158
16254
  const assetConfig = getHubAssetInfo(spokeChainId, token);
16159
- invariant10__default.default(assetConfig, `hub asset not found for spoke chain token (token): ${token}`);
16255
+ invariant11__default.default(assetConfig, `hub asset not found for spoke chain token (token): ${token}`);
16160
16256
  let assetAddress = assetConfig.asset;
16161
16257
  const vaultAddress = assetConfig.vault;
16162
16258
  const lendingPool = this.config.lendingPool;
@@ -16187,13 +16283,13 @@ var MoneyMarketService = class _MoneyMarketService {
16187
16283
  * @returns {Hex} The transaction data.
16188
16284
  */
16189
16285
  buildBorrowData(from, to, token, amount, spokeChainId) {
16190
- invariant10__default.default(isValidSpokeChainId(spokeChainId), `Invalid spokeChainId: ${spokeChainId}`);
16191
- invariant10__default.default(
16286
+ invariant11__default.default(isValidSpokeChainId(spokeChainId), `Invalid spokeChainId: ${spokeChainId}`);
16287
+ invariant11__default.default(
16192
16288
  isValidOriginalAssetAddress(spokeChainId, token),
16193
16289
  `Unsupported spoke chain (${spokeChainId}) token: ${token}`
16194
16290
  );
16195
16291
  const assetConfig = getHubAssetInfo(spokeChainId, token);
16196
- invariant10__default.default(assetConfig, `hub asset not found for spoke chain token (token): ${token}`);
16292
+ invariant11__default.default(assetConfig, `hub asset not found for spoke chain token (token): ${token}`);
16197
16293
  let assetAddress = assetConfig.asset;
16198
16294
  const vaultAddress = assetConfig.vault;
16199
16295
  const bnUSDVault = this.config.bnUSDVault;