@t2000/sdk 4.2.2 → 4.3.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.
package/dist/index.d.cts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { EventEmitter } from 'eventemitter3';
2
2
  import { SuiJsonRpcClient } from '@mysten/sui/jsonRpc';
3
3
  import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
4
- import { Q as TxMetadata, o as SafeguardConfig, T as T2000Error, H as TransactionSigner, v as SupportedAsset, _ as ZkLoginProof, ax as SendableAsset } from './types-BjvEpkwT.cjs';
5
- export { A as ALL_NAVI_ASSETS, B as BORROW_FEE_BPS, a as BPS_DENOMINATOR, ay as CETUS_USDC_SUI_POOL, C as CLOCK_ID, b as COIN_REGISTRY, c as ClassifyBalanceChange, d as ClassifyResult, e as CoinMeta, az as DEFAULT_GRPC_URL, D as DEFAULT_NETWORK, f as DEFAULT_SAFEGUARD_CONFIG, E as ETH_TYPE, g as ExtractedTransfer, F as FeeOperation, aA as GASLESS_MIN_STABLE_AMOUNT, aB as GASLESS_STABLE_TYPES, G as GAS_RESERVE_MIN, I as IKA_TYPE, K as KNOWN_TARGETS, h as KeypairSigner, L as LABEL_PATTERNS, i as LOFI_TYPE, M as MANIFEST_TYPE, j as MIST_PER_SUI, N as NAVX_TYPE, aC as OPERATION_ASSETS, O as OUTBOUND_OPS, aD as Operation, P as ProtocolFeeInfo, aE as SAVEABLE_ASSETS, S as SAVE_FEE_BPS, aF as SENDABLE_ASSETS, k as STABLE_ASSETS, l as SUI_DECIMALS, m as SUI_TYPE, n as SUPPORTED_ASSETS, p as SafeguardError, q as SafeguardErrorDetails, r as SafeguardRule, aG as SaveableAsset, s as SimulationResult, t as StableAsset, u as SuiRpcTxBlock, w as T2000ErrorCode, x as T2000ErrorData, y as T2000_OVERLAY_FEE_WALLET, z as TOKEN_MAP, J as TxDirection, U as USDC_DECIMALS, R as USDC_TYPE, V as USDE_TYPE, W as USDSUI_TYPE, X as USDT_TYPE, Y as WAL_TYPE, Z as WBTC_TYPE, $ as ZkLoginSigner, a0 as addFeeTransfer, aH as assertAllowedAsset, a1 as calculateFee, a2 as classifyAction, a3 as classifyLabel, a4 as classifyTransaction, aI as createSuiClient, a5 as extractAllUserLegs, a6 as extractTransferDetails, a7 as extractTxCommands, a8 as extractTxSender, a9 as fallbackLabel, aa as formatAssetAmount, ab as formatSui, ac as formatUsd, aJ as getCoinMeta, ad as getDecimals, ae as getDecimalsForCoinType, aK as getSuiClient, aL as getSuiGrpcClient, af as getTier, aM as isAllowedAsset, aN as isInRegistry, ag as isSupported, ah as isTier1, ai as isTier2, aj as mapMoveAbortCode, ak as mapWalletError, al as mistToSui, aO as normalizeAsset, aP as normalizeCoinType, am as parseSuiRpcTx, aQ as queryHistory, aR as queryTransaction, an as rawToStable, ao as rawToUsdc, ap as refineLendingLabel, aq as resolveSymbol, ar as resolveTokenType, aS as simulateTransaction, as as stableToRaw, at as suiToMist, aT as throwIfSimulationFailed, au as truncateAddress, av as usdcToRaw, aw as validateAddress } from './types-BjvEpkwT.cjs';
4
+ import { Q as TxMetadata, o as SafeguardConfig, T as T2000Error, H as TransactionSigner, v as SupportedAsset, _ as ZkLoginProof, az as SendableAsset } from './types-CFV4VcJJ.cjs';
5
+ export { A as ALL_NAVI_ASSETS, B as BORROW_FEE_BPS, a as BPS_DENOMINATOR, aA as CETUS_USDC_SUI_POOL, C as CLOCK_ID, b as COIN_REGISTRY, c as ClassifyBalanceChange, d as ClassifyResult, e as CoinMeta, aB as DEFAULT_GRPC_URL, D as DEFAULT_NETWORK, f as DEFAULT_SAFEGUARD_CONFIG, E as ETH_TYPE, g as ExtractedTransfer, F as FeeOperation, aC as GASLESS_MIN_STABLE_AMOUNT, aD as GASLESS_STABLE_TYPES, G as GAS_RESERVE_MIN, I as IKA_TYPE, K as KNOWN_TARGETS, h as KeypairSigner, L as LABEL_PATTERNS, i as LOFI_TYPE, M as MANIFEST_TYPE, j as MIST_PER_SUI, N as NAVX_TYPE, aE as OPERATION_ASSETS, O as OUTBOUND_OPS, aF as Operation, P as ProtocolFeeInfo, aG as SAVEABLE_ASSETS, S as SAVE_FEE_BPS, aH as SENDABLE_ASSETS, k as STABLE_ASSETS, l as SUI_DECIMALS, m as SUI_TYPE, n as SUPPORTED_ASSETS, p as SafeguardError, q as SafeguardErrorDetails, r as SafeguardRule, aI as SaveableAsset, s as SimulationResult, t as StableAsset, u as SuiRpcTxBlock, w as T2000ErrorCode, x as T2000ErrorData, y as T2000_OVERLAY_FEE_WALLET, z as TOKEN_MAP, J as TxDirection, U as USDC_DECIMALS, R as USDC_TYPE, V as USDE_TYPE, W as USDSUI_TYPE, X as USDT_TYPE, Y as WAL_TYPE, Z as WBTC_TYPE, $ as ZkLoginSigner, a0 as addFeeTransfer, aJ as assertAllowedAsset, a1 as calculateFee, a2 as classifyAction, a3 as classifyLabel, a4 as classifyTransaction, aK as createSuiClient, a5 as executeTx, a6 as extractAllUserLegs, a7 as extractTransferDetails, a8 as extractTxCommands, a9 as extractTxSender, aa as fallbackLabel, ab as formatAssetAmount, ac as formatSui, ad as formatUsd, aL as getCoinMeta, ae as getDecimals, af as getDecimalsForCoinType, aM as getSuiClient, aN as getSuiGrpcClient, ag as getTier, aO as isAllowedAsset, aP as isInRegistry, ah as isSupported, ai as isTier1, aj as isTier2, ak as mapMoveAbortCode, al as mapWalletError, am as mistToSui, aQ as normalizeAsset, aR as normalizeCoinType, an as parseSuiRpcTx, ao as payWithMpp, aS as queryHistory, aT as queryTransaction, ap as rawToStable, aq as rawToUsdc, ar as refineLendingLabel, as as resolveSymbol, at as resolveTokenType, aU as simulateTransaction, au as stableToRaw, av as suiToMist, aV as throwIfSimulationFailed, aw as truncateAddress, ax as usdcToRaw, ay as validateAddress } from './types-CFV4VcJJ.cjs';
6
6
  import { L as LendingAdapter, a as LendingRates, P as PendingReward$1 } from './descriptors-DqIb4AnV.cjs';
7
7
  export { A as AdapterCapability, b as AdapterPositions, c as AdapterTxResult, H as HealthInfo, d as ProtocolDescriptor, e as allDescriptors, n as naviDescriptor } from './descriptors-DqIb4AnV.cjs';
8
8
  import { n as T2000Options, P as PayOptions, d as PayResult, o as SwapResult, p as SwapQuoteResult, i as SendResult, B as BalanceResponse, k as TransactionRecord, D as DepositInfo, q as PaymentRequest, S as SaveResult, W as WithdrawResult, b as MaxWithdrawResult, a as BorrowResult, h as RepayResult, M as MaxBorrowResult, H as HealthFactorResult, e as PendingReward, C as ClaimRewardsResult, r as CompoundRewardsResult, g as PositionsResult, R as RatesResult, E as EarningsResult, F as FundStatusResult, c as OverlayFeeConfig, s as SponsoredCoinMergeCache, j as SwapRouteResult, t as FinancialSummary } from './types-Ch0zVUpC.cjs';
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import { EventEmitter } from 'eventemitter3';
2
2
  import { SuiJsonRpcClient } from '@mysten/sui/jsonRpc';
3
3
  import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
4
- import { Q as TxMetadata, o as SafeguardConfig, T as T2000Error, H as TransactionSigner, v as SupportedAsset, _ as ZkLoginProof, ax as SendableAsset } from './types-CElCPOFA.js';
5
- export { A as ALL_NAVI_ASSETS, B as BORROW_FEE_BPS, a as BPS_DENOMINATOR, ay as CETUS_USDC_SUI_POOL, C as CLOCK_ID, b as COIN_REGISTRY, c as ClassifyBalanceChange, d as ClassifyResult, e as CoinMeta, az as DEFAULT_GRPC_URL, D as DEFAULT_NETWORK, f as DEFAULT_SAFEGUARD_CONFIG, E as ETH_TYPE, g as ExtractedTransfer, F as FeeOperation, aA as GASLESS_MIN_STABLE_AMOUNT, aB as GASLESS_STABLE_TYPES, G as GAS_RESERVE_MIN, I as IKA_TYPE, K as KNOWN_TARGETS, h as KeypairSigner, L as LABEL_PATTERNS, i as LOFI_TYPE, M as MANIFEST_TYPE, j as MIST_PER_SUI, N as NAVX_TYPE, aC as OPERATION_ASSETS, O as OUTBOUND_OPS, aD as Operation, P as ProtocolFeeInfo, aE as SAVEABLE_ASSETS, S as SAVE_FEE_BPS, aF as SENDABLE_ASSETS, k as STABLE_ASSETS, l as SUI_DECIMALS, m as SUI_TYPE, n as SUPPORTED_ASSETS, p as SafeguardError, q as SafeguardErrorDetails, r as SafeguardRule, aG as SaveableAsset, s as SimulationResult, t as StableAsset, u as SuiRpcTxBlock, w as T2000ErrorCode, x as T2000ErrorData, y as T2000_OVERLAY_FEE_WALLET, z as TOKEN_MAP, J as TxDirection, U as USDC_DECIMALS, R as USDC_TYPE, V as USDE_TYPE, W as USDSUI_TYPE, X as USDT_TYPE, Y as WAL_TYPE, Z as WBTC_TYPE, $ as ZkLoginSigner, a0 as addFeeTransfer, aH as assertAllowedAsset, a1 as calculateFee, a2 as classifyAction, a3 as classifyLabel, a4 as classifyTransaction, aI as createSuiClient, a5 as extractAllUserLegs, a6 as extractTransferDetails, a7 as extractTxCommands, a8 as extractTxSender, a9 as fallbackLabel, aa as formatAssetAmount, ab as formatSui, ac as formatUsd, aJ as getCoinMeta, ad as getDecimals, ae as getDecimalsForCoinType, aK as getSuiClient, aL as getSuiGrpcClient, af as getTier, aM as isAllowedAsset, aN as isInRegistry, ag as isSupported, ah as isTier1, ai as isTier2, aj as mapMoveAbortCode, ak as mapWalletError, al as mistToSui, aO as normalizeAsset, aP as normalizeCoinType, am as parseSuiRpcTx, aQ as queryHistory, aR as queryTransaction, an as rawToStable, ao as rawToUsdc, ap as refineLendingLabel, aq as resolveSymbol, ar as resolveTokenType, aS as simulateTransaction, as as stableToRaw, at as suiToMist, aT as throwIfSimulationFailed, au as truncateAddress, av as usdcToRaw, aw as validateAddress } from './types-CElCPOFA.js';
4
+ import { Q as TxMetadata, o as SafeguardConfig, T as T2000Error, H as TransactionSigner, v as SupportedAsset, _ as ZkLoginProof, az as SendableAsset } from './types-DqRLGfOC.js';
5
+ export { A as ALL_NAVI_ASSETS, B as BORROW_FEE_BPS, a as BPS_DENOMINATOR, aA as CETUS_USDC_SUI_POOL, C as CLOCK_ID, b as COIN_REGISTRY, c as ClassifyBalanceChange, d as ClassifyResult, e as CoinMeta, aB as DEFAULT_GRPC_URL, D as DEFAULT_NETWORK, f as DEFAULT_SAFEGUARD_CONFIG, E as ETH_TYPE, g as ExtractedTransfer, F as FeeOperation, aC as GASLESS_MIN_STABLE_AMOUNT, aD as GASLESS_STABLE_TYPES, G as GAS_RESERVE_MIN, I as IKA_TYPE, K as KNOWN_TARGETS, h as KeypairSigner, L as LABEL_PATTERNS, i as LOFI_TYPE, M as MANIFEST_TYPE, j as MIST_PER_SUI, N as NAVX_TYPE, aE as OPERATION_ASSETS, O as OUTBOUND_OPS, aF as Operation, P as ProtocolFeeInfo, aG as SAVEABLE_ASSETS, S as SAVE_FEE_BPS, aH as SENDABLE_ASSETS, k as STABLE_ASSETS, l as SUI_DECIMALS, m as SUI_TYPE, n as SUPPORTED_ASSETS, p as SafeguardError, q as SafeguardErrorDetails, r as SafeguardRule, aI as SaveableAsset, s as SimulationResult, t as StableAsset, u as SuiRpcTxBlock, w as T2000ErrorCode, x as T2000ErrorData, y as T2000_OVERLAY_FEE_WALLET, z as TOKEN_MAP, J as TxDirection, U as USDC_DECIMALS, R as USDC_TYPE, V as USDE_TYPE, W as USDSUI_TYPE, X as USDT_TYPE, Y as WAL_TYPE, Z as WBTC_TYPE, $ as ZkLoginSigner, a0 as addFeeTransfer, aJ as assertAllowedAsset, a1 as calculateFee, a2 as classifyAction, a3 as classifyLabel, a4 as classifyTransaction, aK as createSuiClient, a5 as executeTx, a6 as extractAllUserLegs, a7 as extractTransferDetails, a8 as extractTxCommands, a9 as extractTxSender, aa as fallbackLabel, ab as formatAssetAmount, ac as formatSui, ad as formatUsd, aL as getCoinMeta, ae as getDecimals, af as getDecimalsForCoinType, aM as getSuiClient, aN as getSuiGrpcClient, ag as getTier, aO as isAllowedAsset, aP as isInRegistry, ah as isSupported, ai as isTier1, aj as isTier2, ak as mapMoveAbortCode, al as mapWalletError, am as mistToSui, aQ as normalizeAsset, aR as normalizeCoinType, an as parseSuiRpcTx, ao as payWithMpp, aS as queryHistory, aT as queryTransaction, ap as rawToStable, aq as rawToUsdc, ar as refineLendingLabel, as as resolveSymbol, at as resolveTokenType, aU as simulateTransaction, au as stableToRaw, av as suiToMist, aV as throwIfSimulationFailed, aw as truncateAddress, ax as usdcToRaw, ay as validateAddress } from './types-DqRLGfOC.js';
6
6
  import { L as LendingAdapter, a as LendingRates, P as PendingReward$1 } from './descriptors-DqIb4AnV.js';
7
7
  export { A as AdapterCapability, b as AdapterPositions, c as AdapterTxResult, H as HealthInfo, d as ProtocolDescriptor, e as allDescriptors, n as naviDescriptor } from './descriptors-DqIb4AnV.js';
8
8
  import { n as T2000Options, P as PayOptions, d as PayResult, o as SwapResult, p as SwapQuoteResult, i as SendResult, B as BalanceResponse, k as TransactionRecord, D as DepositInfo, q as PaymentRequest, S as SaveResult, W as WithdrawResult, b as MaxWithdrawResult, a as BorrowResult, h as RepayResult, M as MaxBorrowResult, H as HealthFactorResult, e as PendingReward, C as ClaimRewardsResult, r as CompoundRewardsResult, g as PositionsResult, R as RatesResult, E as EarningsResult, F as FundStatusResult, c as OverlayFeeConfig, s as SponsoredCoinMergeCache, j as SwapRouteResult, t as FinancialSummary } from './types-Ch0zVUpC.js';
package/dist/index.js CHANGED
@@ -1396,6 +1396,27 @@ var KeypairSigner = class {
1396
1396
  }
1397
1397
  };
1398
1398
 
1399
+ // src/wallet/executeTx.ts
1400
+ async function executeTx(client, signer, buildTx, options = {}) {
1401
+ const tx = await buildTx();
1402
+ tx.setSender(signer.getAddress());
1403
+ const txBytes = await tx.build({ client: options.buildClient ?? client });
1404
+ const { signature } = await signer.signTransaction(txBytes);
1405
+ const result = await client.executeTransactionBlock({
1406
+ transactionBlock: txBytes,
1407
+ signature,
1408
+ options: { showEffects: true }
1409
+ });
1410
+ await client.waitForTransaction({ digest: result.digest });
1411
+ const gasUsed = result.effects?.gasUsed;
1412
+ let gasCostSui = 0;
1413
+ if (gasUsed) {
1414
+ const total = BigInt(gasUsed.computationCost) + BigInt(gasUsed.storageCost) - BigInt(gasUsed.storageRebate);
1415
+ gasCostSui = Number(total) / 1e9;
1416
+ }
1417
+ return { digest: result.digest, gasCostSui, effects: result.effects ?? void 0 };
1418
+ }
1419
+
1399
1420
  // src/mpp-cost.ts
1400
1421
  function parseChallengeAmount(challenge) {
1401
1422
  const raw = challenge?.request?.amount;
@@ -1403,6 +1424,66 @@ function parseChallengeAmount(challenge) {
1403
1424
  return Number.isFinite(n) ? n : void 0;
1404
1425
  }
1405
1426
 
1427
+ // src/wallet/pay.ts
1428
+ async function payWithMpp(args) {
1429
+ const { signer, client, options } = args;
1430
+ const { Mppx } = await import('mppx/client');
1431
+ const { sui, USDC } = await import('@suimpp/mpp/client');
1432
+ const { SuiGrpcClient: SuiGrpcClient2 } = await import('@mysten/sui/grpc');
1433
+ const signerAddress = signer.getAddress();
1434
+ let paymentDigest;
1435
+ let gasCostSui = 0;
1436
+ let chargedAmount;
1437
+ const network = client.network === "testnet" ? "testnet" : "mainnet";
1438
+ const grpcBaseUrl = network === "testnet" ? "https://fullnode.testnet.sui.io" : "https://fullnode.mainnet.sui.io";
1439
+ const grpcClient = new SuiGrpcClient2({ baseUrl: grpcBaseUrl, network });
1440
+ const mppx = Mppx.create({
1441
+ polyfill: false,
1442
+ onChallenge: async (challenge) => {
1443
+ const parsed = parseChallengeAmount(challenge);
1444
+ if (parsed !== void 0) chargedAmount = parsed;
1445
+ return void 0;
1446
+ },
1447
+ methods: [sui({
1448
+ client,
1449
+ currency: USDC,
1450
+ signer: {
1451
+ toSuiAddress: () => signerAddress,
1452
+ signPersonalMessage: (bytes) => signer.signPersonalMessage(bytes)
1453
+ },
1454
+ execute: async (tx) => {
1455
+ const result = await executeTx(client, signer, () => tx, { buildClient: grpcClient });
1456
+ paymentDigest = result.digest;
1457
+ gasCostSui = result.gasCostSui;
1458
+ return { digest: result.digest };
1459
+ }
1460
+ })]
1461
+ });
1462
+ const method = (options.method ?? "GET").toUpperCase();
1463
+ const canHaveBody = method !== "GET" && method !== "HEAD";
1464
+ const response = await mppx.fetch(options.url, {
1465
+ method,
1466
+ headers: options.headers,
1467
+ body: canHaveBody ? options.body : void 0
1468
+ });
1469
+ const contentType = response.headers.get("content-type") ?? "";
1470
+ let body;
1471
+ try {
1472
+ body = contentType.includes("application/json") ? await response.json() : await response.text();
1473
+ } catch {
1474
+ body = null;
1475
+ }
1476
+ const paid = !!paymentDigest;
1477
+ return {
1478
+ status: response.status,
1479
+ body,
1480
+ paid,
1481
+ cost: paid ? chargedAmount ?? options.maxPrice ?? void 0 : void 0,
1482
+ gasCostSui: paid ? gasCostSui : void 0,
1483
+ receipt: paymentDigest ? { reference: paymentDigest, timestamp: (/* @__PURE__ */ new Date()).toISOString() } : void 0
1484
+ };
1485
+ }
1486
+
1406
1487
  // src/wallet/zkLoginSigner.ts
1407
1488
  var ZkLoginSigner = class {
1408
1489
  constructor(ephemeralKeypair, zkProof, userAddress, maxEpoch) {
@@ -1425,8 +1506,17 @@ var ZkLoginSigner = class {
1425
1506
  })
1426
1507
  };
1427
1508
  }
1428
- async signPersonalMessage(_messageBytes) {
1429
- throw new Error("ZkLoginSigner.signPersonalMessage is not yet implemented. Use KeypairSigner for sdk.pay() until grief-protection signing is wired for zkLogin.");
1509
+ async signPersonalMessage(messageBytes) {
1510
+ const { getZkLoginSignature } = await import('@mysten/zklogin');
1511
+ const { signature: ephSig, bytes } = await this.ephemeralKeypair.signPersonalMessage(messageBytes);
1512
+ return {
1513
+ signature: getZkLoginSignature({
1514
+ inputs: this.zkProof,
1515
+ maxEpoch: this.maxEpoch,
1516
+ userSignature: ephSig
1517
+ }),
1518
+ bytes
1519
+ };
1430
1520
  }
1431
1521
  isExpired(currentEpoch) {
1432
1522
  return currentEpoch >= this.maxEpoch;
@@ -6515,25 +6605,6 @@ var ContactManager = class {
6515
6605
  }
6516
6606
  };
6517
6607
  var DEFAULT_CONFIG_DIR = join$1(homedir(), ".t2000");
6518
- async function executeTx(client, signer, buildTx, options = {}) {
6519
- const tx = await buildTx();
6520
- tx.setSender(signer.getAddress());
6521
- const txBytes = await tx.build({ client: options.buildClient ?? client });
6522
- const { signature } = await signer.signTransaction(txBytes);
6523
- const result = await client.executeTransactionBlock({
6524
- transactionBlock: txBytes,
6525
- signature,
6526
- options: { showEffects: true }
6527
- });
6528
- await client.waitForTransaction({ digest: result.digest });
6529
- const gasUsed = result.effects?.gasUsed;
6530
- let gasCostSui = 0;
6531
- if (gasUsed) {
6532
- const total = BigInt(gasUsed.computationCost) + BigInt(gasUsed.storageCost) - BigInt(gasUsed.storageRebate);
6533
- gasCostSui = Number(total) / 1e9;
6534
- }
6535
- return { digest: result.digest, gasCostSui, effects: result.effects ?? void 0 };
6536
- }
6537
6608
  var T2000 = class _T2000 extends EventEmitter {
6538
6609
  _signer;
6539
6610
  _keypair;
@@ -6613,66 +6684,11 @@ var T2000 = class _T2000 extends EventEmitter {
6613
6684
  async pay(options) {
6614
6685
  this.enforcer.assertNotLocked();
6615
6686
  this.enforcer.check({ operation: "pay", amount: options.maxPrice ?? 1 });
6616
- const { Mppx } = await import('mppx/client');
6617
- const { sui, USDC } = await import('@suimpp/mpp/client');
6618
- const { SuiGrpcClient: SuiGrpcClient2 } = await import('@mysten/sui/grpc');
6619
- const client = this.client;
6620
- const signer = this._signer;
6621
- const signerAddress = signer.getAddress();
6622
- let paymentDigest;
6623
- let gasCostSui = 0;
6624
- let chargedAmount;
6625
- const network = client.network === "testnet" ? "testnet" : "mainnet";
6626
- const grpcBaseUrl = network === "testnet" ? "https://fullnode.testnet.sui.io" : "https://fullnode.mainnet.sui.io";
6627
- const grpcClient = new SuiGrpcClient2({ baseUrl: grpcBaseUrl, network });
6628
- const mppx = Mppx.create({
6629
- polyfill: false,
6630
- onChallenge: async (challenge) => {
6631
- const parsed = parseChallengeAmount(challenge);
6632
- if (parsed !== void 0) chargedAmount = parsed;
6633
- return void 0;
6634
- },
6635
- methods: [sui({
6636
- client,
6637
- currency: USDC,
6638
- signer: {
6639
- toSuiAddress: () => signerAddress,
6640
- signPersonalMessage: (bytes) => signer.signPersonalMessage(bytes)
6641
- },
6642
- execute: async (tx) => {
6643
- const result = await executeTx(client, signer, () => tx, { buildClient: grpcClient });
6644
- paymentDigest = result.digest;
6645
- gasCostSui = result.gasCostSui;
6646
- return { digest: result.digest };
6647
- }
6648
- })]
6649
- });
6650
- const method = (options.method ?? "GET").toUpperCase();
6651
- const canHaveBody = method !== "GET" && method !== "HEAD";
6652
- const response = await mppx.fetch(options.url, {
6653
- method,
6654
- headers: options.headers,
6655
- body: canHaveBody ? options.body : void 0
6656
- });
6657
- const contentType = response.headers.get("content-type") ?? "";
6658
- let body;
6659
- try {
6660
- body = contentType.includes("application/json") ? await response.json() : await response.text();
6661
- } catch {
6662
- body = null;
6687
+ const result = await payWithMpp({ signer: this._signer, client: this.client, options });
6688
+ if (result.paid) {
6689
+ this.enforcer.recordUsage(result.cost ?? options.maxPrice ?? 1);
6663
6690
  }
6664
- const paid = !!paymentDigest;
6665
- if (paid) {
6666
- this.enforcer.recordUsage(chargedAmount ?? options.maxPrice ?? 1);
6667
- }
6668
- return {
6669
- status: response.status,
6670
- body,
6671
- paid,
6672
- cost: paid ? chargedAmount ?? options.maxPrice ?? void 0 : void 0,
6673
- gasCostSui: paid ? gasCostSui : void 0,
6674
- receipt: paymentDigest ? { reference: paymentDigest, timestamp: (/* @__PURE__ */ new Date()).toISOString() } : void 0
6675
- };
6691
+ return result;
6676
6692
  }
6677
6693
  // [S.323 / 2026-05-25] VOLO vSUI staking surfaces removed (full cut).
6678
6694
  // Engine cut Volo in S.277; SDK + CLI + MCP followed in S.323 because the
@@ -8578,6 +8594,6 @@ function displayHandle(label) {
8578
8594
  (*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
8579
8595
  */
8580
8596
 
8581
- export { ALL_NAVI_ASSETS, AUDRIC_PARENT_NAME, AUDRIC_PARENT_NFT_ID, BORROW_FEE_BPS, BPS_DENOMINATOR, CETUS_USDC_SUI_POOL, CLOCK_ID, COIN_REGISTRY, ContactManager, DEFAULT_GRPC_URL, DEFAULT_NETWORK, DEFAULT_SAFEGUARD_CONFIG, ETH_TYPE, GASLESS_MIN_STABLE_AMOUNT, GASLESS_STABLE_TYPES, GAS_RESERVE_MIN, HF_CRITICAL_THRESHOLD, HF_WARN_THRESHOLD, IKA_TYPE, InvalidAddressError, KNOWN_TARGETS, KeypairSigner, LABEL_PATTERNS, LOFI_TYPE, MANIFEST_TYPE, MIST_PER_SUI, NAVX_TYPE, NaviAdapter, OPERATION_ASSETS, OUTBOUND_OPS, OVERLAY_FEE_RATE, ProtocolRegistry, SAVEABLE_ASSETS, SAVE_FEE_BPS, SENDABLE_ASSETS, SPONSORED_PYTH_DEPENDENT_PROVIDERS, STABLE_ASSETS, SUINS_NAME_REGEX, SUI_ADDRESS_REGEX, SUI_ADDRESS_STRICT_REGEX, SUI_DECIMALS, SUI_TYPE, SUPPORTED_ASSETS, SafeguardEnforcer, SafeguardError, SuinsNotRegisteredError, SuinsRpcError, T2000, T2000Error, T2000_OVERLAY_FEE_WALLET, TOKEN_MAP, USDC_DECIMALS, USDC_TYPE, USDE_TYPE, USDSUI_TYPE, USDT_TYPE, WAL_TYPE, WBTC_TYPE, WRITE_APPENDER_REGISTRY, ZkLoginSigner, addClaimRewardsToTx, addFeeTransfer, addSendToTx, addSwapToTx, aggregateClaimableRewards, allDescriptors, assertAllowedAsset, buildAddLeafTx, buildClaimRewardsTx, buildHarvestRewardsTx, buildRevokeLeafTx, buildSendTx, buildSwapTx, calculateFee, classifyAction, classifyLabel, classifyTransaction, composeTx, createSuiClient, deriveAllowedAddressesFromPtb, deserializeCetusRoute, displayHandle, exportPrivateKey, extractAllUserLegs, extractTransferDetails, extractTxCommands, extractTxSender, fallbackLabel, fetchAllCoins, findSwapRoute, formatAssetAmount, formatSui, formatUsd, fullHandle, generateKeypair, getAddress, getCoinMeta, getDecimals, getDecimalsForCoinType, getFinancialSummary, getPendingRewards, getPendingRewardsByAddress, getRates, getSponsoredSwapProviders, getSuiClient, getSuiGrpcClient, getSwapQuote, getTier, isAllowedAsset, isCetusRouteFresh, isInRegistry, isSupported, isTier1, isTier2, keypairFromPrivateKey, loadKey, looksLikeSuiNs, mapMoveAbortCode, mapWalletError, mistToSui, naviDescriptor, normalizeAddressInput, normalizeAsset, normalizeCoinType, parseSuiRpcTx, queryHistory, queryTransaction, rawToStable, rawToUsdc, refineLendingLabel, resolveAddressToSuinsViaRpc, resolveSuinsViaRpc, resolveSymbol, resolveTokenType, saveBech32, saveKey, selectAndSplitCoin, selectSuiCoin, serializeCetusRoute, simulateTransaction, stableToRaw, suiToMist, throwIfSimulationFailed, truncateAddress, usdcToRaw, validateAddress, validateLabel, verifyCetusRouteCoinMatch, walletExists };
8597
+ export { ALL_NAVI_ASSETS, AUDRIC_PARENT_NAME, AUDRIC_PARENT_NFT_ID, BORROW_FEE_BPS, BPS_DENOMINATOR, CETUS_USDC_SUI_POOL, CLOCK_ID, COIN_REGISTRY, ContactManager, DEFAULT_GRPC_URL, DEFAULT_NETWORK, DEFAULT_SAFEGUARD_CONFIG, ETH_TYPE, GASLESS_MIN_STABLE_AMOUNT, GASLESS_STABLE_TYPES, GAS_RESERVE_MIN, HF_CRITICAL_THRESHOLD, HF_WARN_THRESHOLD, IKA_TYPE, InvalidAddressError, KNOWN_TARGETS, KeypairSigner, LABEL_PATTERNS, LOFI_TYPE, MANIFEST_TYPE, MIST_PER_SUI, NAVX_TYPE, NaviAdapter, OPERATION_ASSETS, OUTBOUND_OPS, OVERLAY_FEE_RATE, ProtocolRegistry, SAVEABLE_ASSETS, SAVE_FEE_BPS, SENDABLE_ASSETS, SPONSORED_PYTH_DEPENDENT_PROVIDERS, STABLE_ASSETS, SUINS_NAME_REGEX, SUI_ADDRESS_REGEX, SUI_ADDRESS_STRICT_REGEX, SUI_DECIMALS, SUI_TYPE, SUPPORTED_ASSETS, SafeguardEnforcer, SafeguardError, SuinsNotRegisteredError, SuinsRpcError, T2000, T2000Error, T2000_OVERLAY_FEE_WALLET, TOKEN_MAP, USDC_DECIMALS, USDC_TYPE, USDE_TYPE, USDSUI_TYPE, USDT_TYPE, WAL_TYPE, WBTC_TYPE, WRITE_APPENDER_REGISTRY, ZkLoginSigner, addClaimRewardsToTx, addFeeTransfer, addSendToTx, addSwapToTx, aggregateClaimableRewards, allDescriptors, assertAllowedAsset, buildAddLeafTx, buildClaimRewardsTx, buildHarvestRewardsTx, buildRevokeLeafTx, buildSendTx, buildSwapTx, calculateFee, classifyAction, classifyLabel, classifyTransaction, composeTx, createSuiClient, deriveAllowedAddressesFromPtb, deserializeCetusRoute, displayHandle, executeTx, exportPrivateKey, extractAllUserLegs, extractTransferDetails, extractTxCommands, extractTxSender, fallbackLabel, fetchAllCoins, findSwapRoute, formatAssetAmount, formatSui, formatUsd, fullHandle, generateKeypair, getAddress, getCoinMeta, getDecimals, getDecimalsForCoinType, getFinancialSummary, getPendingRewards, getPendingRewardsByAddress, getRates, getSponsoredSwapProviders, getSuiClient, getSuiGrpcClient, getSwapQuote, getTier, isAllowedAsset, isCetusRouteFresh, isInRegistry, isSupported, isTier1, isTier2, keypairFromPrivateKey, loadKey, looksLikeSuiNs, mapMoveAbortCode, mapWalletError, mistToSui, naviDescriptor, normalizeAddressInput, normalizeAsset, normalizeCoinType, parseSuiRpcTx, payWithMpp, queryHistory, queryTransaction, rawToStable, rawToUsdc, refineLendingLabel, resolveAddressToSuinsViaRpc, resolveSuinsViaRpc, resolveSymbol, resolveTokenType, saveBech32, saveKey, selectAndSplitCoin, selectSuiCoin, serializeCetusRoute, simulateTransaction, stableToRaw, suiToMist, throwIfSimulationFailed, truncateAddress, usdcToRaw, validateAddress, validateLabel, verifyCetusRouteCoinMatch, walletExists };
8582
8598
  //# sourceMappingURL=index.js.map
8583
8599
  //# sourceMappingURL=index.js.map