@t2000/sdk 5.5.1 → 5.6.0

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.
@@ -1,4 +1,4 @@
1
- export { B as BalanceResponse, C as CLOCK_ID, a as COIN_REGISTRY, b as ClassifyBalanceChange, c as ClassifyResult, d as CoinMeta, D as DEFAULT_NETWORK, e as DepositInfo, E as ETH_TYPE, f as ExtractedTransfer, G as GAS_RESERVE_MIN, I as IKA_TYPE, K as KNOWN_TARGETS, g as KeypairSigner, L as LABEL_PATTERNS, h as LOFI_TYPE, M as MANIFEST_TYPE, i as MIST_PER_SUI, N as NAVX_TYPE, O as OVERLAY_FEE_RATE, j as OverlayFeeConfig, P as PayOptions, k as PayResult, S as STABLE_ASSETS, l as SUI_DECIMALS, m as SUI_TYPE, n as SUPPORTED_ASSETS, o as SendResult, p as SimulationResult, q as StableAsset, r as SuiHolding, s as SuiRpcTxBlock, t as SupportedAsset, u as SwapRouteResult, T as T2000Error, v as T2000ErrorCode, w as T2000ErrorData, x as T2000_OVERLAY_FEE_WALLET, y as TOKEN_MAP, z as TransactionLeg, A as TransactionRecord, F as TransactionSigner, H as TxDirection, U as USDC_DECIMALS, J as USDC_TYPE, Q as USDE_TYPE, R as USDSUI_TYPE, V as USDT_TYPE, W as WAL_TYPE, X as WBTC_TYPE, Z as ZkLoginProof, Y as ZkLoginSigner, _ as buildSwapTx, $ as classifyAction, a0 as classifyLabel, a1 as classifyTransaction, a2 as executeTx, a3 as extractAllUserLegs, a4 as extractTransferDetails, a5 as extractTxCommands, a6 as extractTxSender, a7 as fallbackLabel, a8 as findSwapRoute, a9 as formatAssetAmount, aa as formatSui, ab as formatUsd, ac as getDecimals, ad as getDecimalsForCoinType, ae as mapMoveAbortCode, af as mapWalletError, ag as mistToSui, ah as parseSuiRpcTx, ai as payWithMpp, aj as rawToStable, ak as rawToUsdc, al as refineLendingLabel, am as resolveSymbol, an as resolveTokenType, ao as stableToRaw, ap as suiToMist, aq as truncateAddress, ar as usdcToRaw, as as validateAddress } from './simulate-KETPmlDo.cjs';
1
+ export { B as BalanceResponse, C as CLOCK_ID, a as COIN_REGISTRY, b as ClassifyBalanceChange, c as ClassifyResult, d as CoinMeta, D as DEFAULT_NETWORK, e as DepositInfo, E as ETH_TYPE, f as ExtractedTransfer, G as GAS_RESERVE_MIN, I as IKA_TYPE, K as KNOWN_TARGETS, g as KeypairSigner, L as LABEL_PATTERNS, h as LOFI_TYPE, M as MANIFEST_TYPE, i as MIST_PER_SUI, N as NAVX_TYPE, O as OVERLAY_FEE_RATE, j as OverlayFeeConfig, P as PREFLIGHT_MAX_AMOUNT, k as PREFLIGHT_OK, l as PayOptions, m as PayResult, n as PreflightResult, S as STABLE_ASSETS, o as SUI_DECIMALS, p as SUI_TYPE, q as SUPPORTED_ASSETS, r as SendResult, s as SimulationResult, t as StableAsset, u as SuiHolding, v as SuiRpcTxBlock, w as SupportedAsset, x as SwapRouteResult, T as T2000Error, y as T2000ErrorCode, z as T2000ErrorData, A as T2000_OVERLAY_FEE_WALLET, F as TOKEN_MAP, H as TransactionLeg, J as TransactionRecord, Q as TransactionSigner, R as TxDirection, U as USDC_DECIMALS, V as USDC_TYPE, W as USDE_TYPE, X as USDSUI_TYPE, Y as USDT_TYPE, Z as WAL_TYPE, _ as WBTC_TYPE, $ as ZkLoginProof, a0 as ZkLoginSigner, a1 as buildSendTx, a2 as buildSwapTx, a3 as checkPositiveAmount, a4 as checkSuiAddress, a5 as classifyAction, a6 as classifyLabel, a7 as classifyTransaction, a8 as executeTx, a9 as extractAllUserLegs, aa as extractTransferDetails, ab as extractTxCommands, ac as extractTxSender, ad as fallbackLabel, ae as findSwapRoute, af as formatAssetAmount, ag as formatSui, ah as formatUsd, ai as getDecimals, aj as getDecimalsForCoinType, ak as mapMoveAbortCode, al as mapWalletError, am as mistToSui, an as parseSuiRpcTx, ao as payWithMpp, ap as preflightFail, aq as preflightPay, ar as preflightSend, as as preflightSwap, at as rawToStable, au as rawToUsdc, av as refineLendingLabel, aw as resolveSymbol, ax as resolveTokenType, ay as stableToRaw, az as suiToMist, aA as truncateAddress, aB as usdcToRaw, aC as validateAddress } from './send-D2nKpwJN.cjs';
2
2
  import '@mysten/sui/keypairs/ed25519';
3
3
  import '@mysten/sui/grpc';
4
4
  import '@mysten/sui/client';
package/dist/browser.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { B as BalanceResponse, C as CLOCK_ID, a as COIN_REGISTRY, b as ClassifyBalanceChange, c as ClassifyResult, d as CoinMeta, D as DEFAULT_NETWORK, e as DepositInfo, E as ETH_TYPE, f as ExtractedTransfer, G as GAS_RESERVE_MIN, I as IKA_TYPE, K as KNOWN_TARGETS, g as KeypairSigner, L as LABEL_PATTERNS, h as LOFI_TYPE, M as MANIFEST_TYPE, i as MIST_PER_SUI, N as NAVX_TYPE, O as OVERLAY_FEE_RATE, j as OverlayFeeConfig, P as PayOptions, k as PayResult, S as STABLE_ASSETS, l as SUI_DECIMALS, m as SUI_TYPE, n as SUPPORTED_ASSETS, o as SendResult, p as SimulationResult, q as StableAsset, r as SuiHolding, s as SuiRpcTxBlock, t as SupportedAsset, u as SwapRouteResult, T as T2000Error, v as T2000ErrorCode, w as T2000ErrorData, x as T2000_OVERLAY_FEE_WALLET, y as TOKEN_MAP, z as TransactionLeg, A as TransactionRecord, F as TransactionSigner, H as TxDirection, U as USDC_DECIMALS, J as USDC_TYPE, Q as USDE_TYPE, R as USDSUI_TYPE, V as USDT_TYPE, W as WAL_TYPE, X as WBTC_TYPE, Z as ZkLoginProof, Y as ZkLoginSigner, _ as buildSwapTx, $ as classifyAction, a0 as classifyLabel, a1 as classifyTransaction, a2 as executeTx, a3 as extractAllUserLegs, a4 as extractTransferDetails, a5 as extractTxCommands, a6 as extractTxSender, a7 as fallbackLabel, a8 as findSwapRoute, a9 as formatAssetAmount, aa as formatSui, ab as formatUsd, ac as getDecimals, ad as getDecimalsForCoinType, ae as mapMoveAbortCode, af as mapWalletError, ag as mistToSui, ah as parseSuiRpcTx, ai as payWithMpp, aj as rawToStable, ak as rawToUsdc, al as refineLendingLabel, am as resolveSymbol, an as resolveTokenType, ao as stableToRaw, ap as suiToMist, aq as truncateAddress, ar as usdcToRaw, as as validateAddress } from './simulate-KETPmlDo.js';
1
+ export { B as BalanceResponse, C as CLOCK_ID, a as COIN_REGISTRY, b as ClassifyBalanceChange, c as ClassifyResult, d as CoinMeta, D as DEFAULT_NETWORK, e as DepositInfo, E as ETH_TYPE, f as ExtractedTransfer, G as GAS_RESERVE_MIN, I as IKA_TYPE, K as KNOWN_TARGETS, g as KeypairSigner, L as LABEL_PATTERNS, h as LOFI_TYPE, M as MANIFEST_TYPE, i as MIST_PER_SUI, N as NAVX_TYPE, O as OVERLAY_FEE_RATE, j as OverlayFeeConfig, P as PREFLIGHT_MAX_AMOUNT, k as PREFLIGHT_OK, l as PayOptions, m as PayResult, n as PreflightResult, S as STABLE_ASSETS, o as SUI_DECIMALS, p as SUI_TYPE, q as SUPPORTED_ASSETS, r as SendResult, s as SimulationResult, t as StableAsset, u as SuiHolding, v as SuiRpcTxBlock, w as SupportedAsset, x as SwapRouteResult, T as T2000Error, y as T2000ErrorCode, z as T2000ErrorData, A as T2000_OVERLAY_FEE_WALLET, F as TOKEN_MAP, H as TransactionLeg, J as TransactionRecord, Q as TransactionSigner, R as TxDirection, U as USDC_DECIMALS, V as USDC_TYPE, W as USDE_TYPE, X as USDSUI_TYPE, Y as USDT_TYPE, Z as WAL_TYPE, _ as WBTC_TYPE, $ as ZkLoginProof, a0 as ZkLoginSigner, a1 as buildSendTx, a2 as buildSwapTx, a3 as checkPositiveAmount, a4 as checkSuiAddress, a5 as classifyAction, a6 as classifyLabel, a7 as classifyTransaction, a8 as executeTx, a9 as extractAllUserLegs, aa as extractTransferDetails, ab as extractTxCommands, ac as extractTxSender, ad as fallbackLabel, ae as findSwapRoute, af as formatAssetAmount, ag as formatSui, ah as formatUsd, ai as getDecimals, aj as getDecimalsForCoinType, ak as mapMoveAbortCode, al as mapWalletError, am as mistToSui, an as parseSuiRpcTx, ao as payWithMpp, ap as preflightFail, aq as preflightPay, ar as preflightSend, as as preflightSwap, at as rawToStable, au as rawToUsdc, av as refineLendingLabel, aw as resolveSymbol, ax as resolveTokenType, ay as stableToRaw, az as suiToMist, aA as truncateAddress, aB as usdcToRaw, aC as validateAddress } from './send-D2nKpwJN.js';
2
2
  import '@mysten/sui/keypairs/ed25519';
3
3
  import '@mysten/sui/grpc';
4
4
  import '@mysten/sui/client';
package/dist/browser.js CHANGED
@@ -1,5 +1,5 @@
1
- import { coinWithBalance } from '@mysten/sui/transactions';
2
- import { fromBase64, normalizeSuiAddress, isValidSuiAddress } from '@mysten/sui/utils';
1
+ import { coinWithBalance, Transaction } from '@mysten/sui/transactions';
2
+ import { isValidSuiAddress, normalizeSuiAddress, fromBase64 } from '@mysten/sui/utils';
3
3
  import '@mysten/sui/grpc';
4
4
  import '@mysten/sui/graphql';
5
5
  import { AggregatorClient, Env } from '@cetusprotocol/aggregator-sdk';
@@ -440,10 +440,60 @@ async function executeTx(client, signer, buildTx, options = {}) {
440
440
  }
441
441
  return { digest: txn.digest, gasCostSui, effects };
442
442
  }
443
+ var PREFLIGHT_MAX_AMOUNT = 1e6;
444
+ var PREFLIGHT_OK = { valid: true };
445
+ function preflightFail(code, error) {
446
+ return { valid: false, code, error };
447
+ }
448
+ function checkPositiveAmount(amount, label = "Amount", max = PREFLIGHT_MAX_AMOUNT) {
449
+ if (typeof amount !== "number" || !Number.isFinite(amount)) {
450
+ return preflightFail("INVALID_AMOUNT", `${label} must be a finite number`);
451
+ }
452
+ if (amount <= 0) {
453
+ return preflightFail("INVALID_AMOUNT", `${label} must be greater than zero`);
454
+ }
455
+ if (amount > max) {
456
+ return preflightFail("INVALID_AMOUNT", `${label} ${amount} exceeds the sane maximum (${max})`);
457
+ }
458
+ return PREFLIGHT_OK;
459
+ }
460
+ function checkSuiAddress(address, label = "recipient") {
461
+ try {
462
+ if (typeof address === "string" && address.trim() !== "" && isValidSuiAddress(normalizeSuiAddress(address))) {
463
+ return PREFLIGHT_OK;
464
+ }
465
+ } catch {
466
+ }
467
+ return preflightFail("INVALID_ADDRESS", `Invalid ${label} address: ${address}`);
468
+ }
443
469
 
444
470
  // src/wallet/pay.ts
471
+ function preflightPay(input) {
472
+ if (typeof input.url !== "string" || input.url.trim() === "") {
473
+ return preflightFail("FACILITATOR_REJECTION", "A target URL is required to pay");
474
+ }
475
+ let parsed;
476
+ try {
477
+ parsed = new URL(input.url);
478
+ } catch {
479
+ return preflightFail("FACILITATOR_REJECTION", `Invalid URL: ${input.url}`);
480
+ }
481
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
482
+ return preflightFail(
483
+ "FACILITATOR_REJECTION",
484
+ `URL must be http(s): got ${parsed.protocol}//`
485
+ );
486
+ }
487
+ if (input.maxPrice !== void 0) {
488
+ const priceCheck = checkPositiveAmount(input.maxPrice, "maxPrice");
489
+ if (!priceCheck.valid) return priceCheck;
490
+ }
491
+ return PREFLIGHT_OK;
492
+ }
445
493
  async function payWithMpp(args) {
446
494
  const { signer, client, options } = args;
495
+ const pf = preflightPay({ url: options.url, maxPrice: options.maxPrice });
496
+ if (!pf.valid) throw new T2000Error(pf.code, pf.error);
447
497
  const method = (options.method ?? "GET").toUpperCase();
448
498
  const canHaveBody = method !== "GET" && method !== "HEAD";
449
499
  const reqInit = {
@@ -535,14 +585,14 @@ async function ensureAddressBalanceCovers(args) {
535
585
  const addressBalance = total - coinSum;
536
586
  if (addressBalance >= amountRaw) return 0;
537
587
  const shortfall = amountRaw - addressBalance;
538
- const { Transaction: Transaction2 } = await import('@mysten/sui/transactions');
588
+ const { Transaction: Transaction3 } = await import('@mysten/sui/transactions');
539
589
  const { selectAndSplitCoin: selectAndSplitCoin2 } = await Promise.resolve().then(() => (init_coinSelection(), coinSelection_exports));
540
590
  const grpcClient = await makeGrpcBuildClient(client);
541
591
  const migration = await executeTx(
542
592
  client,
543
593
  signer,
544
594
  async () => {
545
- const tx = new Transaction2();
595
+ const tx = new Transaction3();
546
596
  const { coin } = await selectAndSplitCoin2(tx, client, owner, asset, shortfall, {
547
597
  sponsoredContext: true,
548
598
  // coin-objects-only — never the address balance
@@ -654,12 +704,35 @@ var SUPPORTED_ASSETS = {
654
704
  }
655
705
  };
656
706
  var STABLE_ASSETS = ["USDC", "USDsui"];
657
- ({
707
+ var OPERATION_ASSETS = {
708
+ send: ["USDC", "USDsui", "SUI"],
709
+ swap: "*"
710
+ };
711
+ function isAllowedAsset(op, asset) {
712
+ const allowed = OPERATION_ASSETS[op];
713
+ if (allowed === "*") return true;
714
+ const target = asset.toLowerCase();
715
+ return allowed.some((a) => a.toLowerCase() === target);
716
+ }
717
+ function assertAllowedAsset(op, asset) {
718
+ if (!asset) return;
719
+ if (!isAllowedAsset(op, asset)) {
720
+ const allowed = OPERATION_ASSETS[op];
721
+ const list = Array.isArray(allowed) ? allowed.join(", ") : "any";
722
+ const swapHint = " Swap to USDC or USDsui first, or send SUI." ;
723
+ throw new T2000Error(
724
+ "INVALID_ASSET",
725
+ `${op} only supports ${list}. Cannot use ${asset}.${swapHint}`
726
+ );
727
+ }
728
+ }
729
+ var GASLESS_STABLE_TYPES = {
658
730
  USDC: SUPPORTED_ASSETS.USDC.type,
659
731
  USDsui: SUPPORTED_ASSETS.USDsui.type
660
- });
732
+ };
661
733
  var T2000_OVERLAY_FEE_WALLET = process.env.T2000_OVERLAY_FEE_WALLET ?? "0x5366efbf2b4fe5767fe2e78eb197aa5f5d138d88ac3333fbf3f80a1927da473a";
662
734
  var DEFAULT_NETWORK = "mainnet";
735
+ var GASLESS_MIN_STABLE_AMOUNT = 0.01;
663
736
  var GAS_RESERVE_MIN = 0.05;
664
737
  init_errors();
665
738
  function validateAddress(address) {
@@ -900,6 +973,9 @@ function rawToStable(raw, decimals) {
900
973
  function getDecimals(asset) {
901
974
  return SUPPORTED_ASSETS[asset].decimals;
902
975
  }
976
+ function displayToRaw(amount, decimals) {
977
+ return BigInt(Math.round(amount * 10 ** decimals));
978
+ }
903
979
  function formatUsd(amount) {
904
980
  return `$${amount.toFixed(2)}`;
905
981
  }
@@ -937,6 +1013,23 @@ function fromBase642(b64) {
937
1013
  // src/protocols/cetus-swap.ts
938
1014
  init_token_registry();
939
1015
  init_token_registry();
1016
+ function preflightSwap(input) {
1017
+ if (typeof input.from !== "string" || input.from.trim() === "") {
1018
+ return preflightFail("INVALID_ASSET", "A `from` token is required to swap");
1019
+ }
1020
+ if (typeof input.to !== "string" || input.to.trim() === "") {
1021
+ return preflightFail("INVALID_ASSET", "A `to` token is required to swap");
1022
+ }
1023
+ const amountCheck = checkPositiveAmount(input.amount, "Amount", Number.POSITIVE_INFINITY);
1024
+ if (!amountCheck.valid) return amountCheck;
1025
+ const resolvedFrom = resolveTokenType(input.from);
1026
+ const resolvedTo = resolveTokenType(input.to);
1027
+ const sameToken = input.from.trim() === input.to.trim() || resolvedFrom !== null && resolvedFrom === resolvedTo;
1028
+ if (sameToken) {
1029
+ return preflightFail("INVALID_ASSET", `Cannot swap ${input.from} to itself`);
1030
+ }
1031
+ return PREFLIGHT_OK;
1032
+ }
940
1033
  var OVERLAY_FEE_RATE = 1e-3;
941
1034
  var clientCache = /* @__PURE__ */ new Map();
942
1035
  function getClient(walletAddress, overlayFee) {
@@ -1002,10 +1095,68 @@ async function buildSwapTx(params) {
1002
1095
  });
1003
1096
  return outputCoin;
1004
1097
  }
1098
+ init_errors();
1099
+ function preflightSend(input) {
1100
+ try {
1101
+ assertAllowedAsset("send", input.asset);
1102
+ } catch (e) {
1103
+ return preflightFail("INVALID_ASSET", e.message);
1104
+ }
1105
+ const amountCheck = checkPositiveAmount(input.amount);
1106
+ if (!amountCheck.valid) return amountCheck;
1107
+ if ((input.asset === "USDC" || input.asset === "USDsui") && input.amount < GASLESS_MIN_STABLE_AMOUNT) {
1108
+ return preflightFail(
1109
+ "INVALID_AMOUNT",
1110
+ `Minimum gasless transfer is ${GASLESS_MIN_STABLE_AMOUNT} ${input.asset}. Got ${input.amount}.`
1111
+ );
1112
+ }
1113
+ const addressCheck = checkSuiAddress(input.to);
1114
+ if (!addressCheck.valid) return addressCheck;
1115
+ return PREFLIGHT_OK;
1116
+ }
1117
+ async function buildSendTx({
1118
+ client,
1119
+ address,
1120
+ to,
1121
+ amount,
1122
+ asset
1123
+ }) {
1124
+ const pf = preflightSend({ to, amount, asset });
1125
+ if (!pf.valid) throw new T2000Error(pf.code, pf.error);
1126
+ const recipient = validateAddress(to);
1127
+ const assetInfo = SUPPORTED_ASSETS[asset];
1128
+ if (!assetInfo) throw new T2000Error("ASSET_NOT_SUPPORTED", `Asset ${asset} is not supported`);
1129
+ const rawAmount = displayToRaw(amount, assetInfo.decimals);
1130
+ const tx = new Transaction();
1131
+ tx.setSender(address);
1132
+ const balanceResp = await client.core.getBalance({ owner: address, coinType: assetInfo.type });
1133
+ const totalBalance = BigInt(balanceResp.balance.balance);
1134
+ if (totalBalance < rawAmount) {
1135
+ throw new T2000Error("INSUFFICIENT_BALANCE", `Insufficient ${asset} balance`, {
1136
+ available: Number(totalBalance) / 10 ** assetInfo.decimals,
1137
+ required: amount
1138
+ });
1139
+ }
1140
+ if (asset === "SUI") {
1141
+ const [sendCoin] = tx.splitCoins(tx.gas, [rawAmount]);
1142
+ tx.transferObjects([sendCoin], recipient);
1143
+ return tx;
1144
+ }
1145
+ const coinType = GASLESS_STABLE_TYPES[asset];
1146
+ tx.moveCall({
1147
+ target: "0x2::balance::send_funds",
1148
+ typeArguments: [coinType],
1149
+ arguments: [
1150
+ tx.balance({ type: coinType, balance: rawAmount }),
1151
+ tx.pure.address(recipient)
1152
+ ]
1153
+ });
1154
+ return tx;
1155
+ }
1005
1156
 
1006
1157
  // src/browser.ts
1007
1158
  init_token_registry();
1008
1159
 
1009
- export { CLOCK_ID, COIN_REGISTRY, DEFAULT_NETWORK, ETH_TYPE, GAS_RESERVE_MIN, IKA_TYPE, KNOWN_TARGETS, KeypairSigner, LABEL_PATTERNS, LOFI_TYPE, MANIFEST_TYPE, MIST_PER_SUI, NAVX_TYPE, OVERLAY_FEE_RATE, STABLE_ASSETS, SUI_DECIMALS, SUI_TYPE, SUPPORTED_ASSETS, T2000Error, T2000_OVERLAY_FEE_WALLET, TOKEN_MAP, USDC_DECIMALS, USDC_TYPE, USDE_TYPE, USDSUI_TYPE, USDT_TYPE, WAL_TYPE, WBTC_TYPE, ZkLoginSigner, buildSwapTx, classifyAction, classifyLabel, classifyTransaction, executeTx, extractAllUserLegs, extractTransferDetails, extractTxCommands, extractTxSender, fallbackLabel, findSwapRoute, formatAssetAmount, formatSui, formatUsd, fromBase642 as fromBase64, getDecimals, getDecimalsForCoinType, mapMoveAbortCode, mapWalletError, mistToSui, parseSuiRpcTx, payWithMpp, rawToStable, rawToUsdc, refineLendingLabel, resolveSymbol, resolveTokenType, stableToRaw, suiToMist, toBase64, truncateAddress, usdcToRaw, validateAddress };
1160
+ export { CLOCK_ID, COIN_REGISTRY, DEFAULT_NETWORK, ETH_TYPE, GAS_RESERVE_MIN, IKA_TYPE, KNOWN_TARGETS, KeypairSigner, LABEL_PATTERNS, LOFI_TYPE, MANIFEST_TYPE, MIST_PER_SUI, NAVX_TYPE, OVERLAY_FEE_RATE, PREFLIGHT_MAX_AMOUNT, PREFLIGHT_OK, STABLE_ASSETS, SUI_DECIMALS, SUI_TYPE, SUPPORTED_ASSETS, T2000Error, T2000_OVERLAY_FEE_WALLET, TOKEN_MAP, USDC_DECIMALS, USDC_TYPE, USDE_TYPE, USDSUI_TYPE, USDT_TYPE, WAL_TYPE, WBTC_TYPE, ZkLoginSigner, buildSendTx, buildSwapTx, checkPositiveAmount, checkSuiAddress, classifyAction, classifyLabel, classifyTransaction, executeTx, extractAllUserLegs, extractTransferDetails, extractTxCommands, extractTxSender, fallbackLabel, findSwapRoute, formatAssetAmount, formatSui, formatUsd, fromBase642 as fromBase64, getDecimals, getDecimalsForCoinType, mapMoveAbortCode, mapWalletError, mistToSui, parseSuiRpcTx, payWithMpp, preflightFail, preflightPay, preflightSend, preflightSwap, rawToStable, rawToUsdc, refineLendingLabel, resolveSymbol, resolveTokenType, stableToRaw, suiToMist, toBase64, truncateAddress, usdcToRaw, validateAddress };
1010
1161
  //# sourceMappingURL=browser.js.map
1011
1162
  //# sourceMappingURL=browser.js.map