@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.
@@ -1,9 +1,9 @@
1
- export { A as ALL_NAVI_ASSETS, B as BORROW_FEE_BPS, a as BPS_DENOMINATOR, C as CLOCK_ID, b as COIN_REGISTRY, c as ClassifyBalanceChange, d as ClassifyResult, e as CoinMeta, D as DEFAULT_NETWORK, f as DEFAULT_SAFEGUARD_CONFIG, E as ETH_TYPE, g as ExtractedTransfer, F as FeeOperation, 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, O as OUTBOUND_OPS, P as ProtocolFeeInfo, S as SAVE_FEE_BPS, k as STABLE_ASSETS, l as SUI_DECIMALS, m as SUI_TYPE, n as SUPPORTED_ASSETS, o as SafeguardConfig, p as SafeguardError, q as SafeguardErrorDetails, r as SafeguardRule, s as SimulationResult, t as StableAsset, u as SuiRpcTxBlock, v as SupportedAsset, T as T2000Error, w as T2000ErrorCode, x as T2000ErrorData, y as T2000_OVERLAY_FEE_WALLET, z as TOKEN_MAP, H as TransactionSigner, J as TxDirection, Q as TxMetadata, 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 ZkLoginProof, $ as ZkLoginSigner, a0 as addFeeTransfer, a1 as calculateFee, a2 as classifyAction, a3 as classifyLabel, a4 as classifyTransaction, a5 as extractAllUserLegs, a6 as extractTransferDetails, a7 as extractTxCommands, a8 as extractTxSender, a9 as fallbackLabel, aa as formatAssetAmount, ab as formatSui, ac as formatUsd, ad as getDecimals, ae as getDecimalsForCoinType, af as getTier, ag as isSupported, ah as isTier1, ai as isTier2, aj as mapMoveAbortCode, ak as mapWalletError, al as mistToSui, am as parseSuiRpcTx, an as rawToStable, ao as rawToUsdc, ap as refineLendingLabel, aq as resolveSymbol, ar as resolveTokenType, as as stableToRaw, at as suiToMist, au as truncateAddress, av as usdcToRaw, aw as validateAddress } from './types-BjvEpkwT.cjs';
1
+ export { A as ALL_NAVI_ASSETS, B as BORROW_FEE_BPS, a as BPS_DENOMINATOR, C as CLOCK_ID, b as COIN_REGISTRY, c as ClassifyBalanceChange, d as ClassifyResult, e as CoinMeta, D as DEFAULT_NETWORK, f as DEFAULT_SAFEGUARD_CONFIG, E as ETH_TYPE, g as ExtractedTransfer, F as FeeOperation, 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, O as OUTBOUND_OPS, P as ProtocolFeeInfo, S as SAVE_FEE_BPS, k as STABLE_ASSETS, l as SUI_DECIMALS, m as SUI_TYPE, n as SUPPORTED_ASSETS, o as SafeguardConfig, p as SafeguardError, q as SafeguardErrorDetails, r as SafeguardRule, s as SimulationResult, t as StableAsset, u as SuiRpcTxBlock, v as SupportedAsset, T as T2000Error, w as T2000ErrorCode, x as T2000ErrorData, y as T2000_OVERLAY_FEE_WALLET, z as TOKEN_MAP, H as TransactionSigner, J as TxDirection, Q as TxMetadata, 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 ZkLoginProof, $ as ZkLoginSigner, a0 as addFeeTransfer, a1 as calculateFee, a2 as classifyAction, a3 as classifyLabel, a4 as classifyTransaction, 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, ae as getDecimals, af as getDecimalsForCoinType, ag as getTier, ah as isSupported, ai as isTier1, aj as isTier2, ak as mapMoveAbortCode, al as mapWalletError, am as mistToSui, an as parseSuiRpcTx, ao as payWithMpp, ap as rawToStable, aq as rawToUsdc, ar as refineLendingLabel, as as resolveSymbol, at as resolveTokenType, au as stableToRaw, av as suiToMist, aw as truncateAddress, ax as usdcToRaw, ay as validateAddress } from './types-CFV4VcJJ.cjs';
2
2
  export { A as AssetRates, B as BalanceResponse, a as BorrowResult, C as ClaimRewardsResult, D as DepositInfo, E as EarningsResult, F as FundStatusResult, G as GasReserve, H as HealthFactorResult, M as MaxBorrowResult, b as MaxWithdrawResult, O as OVERLAY_FEE_RATE, c as OverlayFeeConfig, P as PayOptions, d as PayResult, e as PendingReward, f as PositionEntry, g as PositionsResult, R as RatesResult, h as RepayResult, S as SaveResult, i as SendResult, j as SwapRouteResult, T as TransactionLeg, k as TransactionRecord, W as WithdrawResult, l as buildSwapTx, m as findSwapRoute } from './types-Ch0zVUpC.cjs';
3
3
  import '@mysten/sui/keypairs/ed25519';
4
4
  import '@mysten/sui/jsonRpc';
5
- import '@mysten/sui/grpc';
6
5
  import '@mysten/sui/transactions';
6
+ import '@mysten/sui/grpc';
7
7
  import '@cetusprotocol/aggregator-sdk';
8
8
 
9
9
  /** Cross-platform (Node + browser) base64 helpers. */
package/dist/browser.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- export { A as ALL_NAVI_ASSETS, B as BORROW_FEE_BPS, a as BPS_DENOMINATOR, C as CLOCK_ID, b as COIN_REGISTRY, c as ClassifyBalanceChange, d as ClassifyResult, e as CoinMeta, D as DEFAULT_NETWORK, f as DEFAULT_SAFEGUARD_CONFIG, E as ETH_TYPE, g as ExtractedTransfer, F as FeeOperation, 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, O as OUTBOUND_OPS, P as ProtocolFeeInfo, S as SAVE_FEE_BPS, k as STABLE_ASSETS, l as SUI_DECIMALS, m as SUI_TYPE, n as SUPPORTED_ASSETS, o as SafeguardConfig, p as SafeguardError, q as SafeguardErrorDetails, r as SafeguardRule, s as SimulationResult, t as StableAsset, u as SuiRpcTxBlock, v as SupportedAsset, T as T2000Error, w as T2000ErrorCode, x as T2000ErrorData, y as T2000_OVERLAY_FEE_WALLET, z as TOKEN_MAP, H as TransactionSigner, J as TxDirection, Q as TxMetadata, 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 ZkLoginProof, $ as ZkLoginSigner, a0 as addFeeTransfer, a1 as calculateFee, a2 as classifyAction, a3 as classifyLabel, a4 as classifyTransaction, a5 as extractAllUserLegs, a6 as extractTransferDetails, a7 as extractTxCommands, a8 as extractTxSender, a9 as fallbackLabel, aa as formatAssetAmount, ab as formatSui, ac as formatUsd, ad as getDecimals, ae as getDecimalsForCoinType, af as getTier, ag as isSupported, ah as isTier1, ai as isTier2, aj as mapMoveAbortCode, ak as mapWalletError, al as mistToSui, am as parseSuiRpcTx, an as rawToStable, ao as rawToUsdc, ap as refineLendingLabel, aq as resolveSymbol, ar as resolveTokenType, as as stableToRaw, at as suiToMist, au as truncateAddress, av as usdcToRaw, aw as validateAddress } from './types-CElCPOFA.js';
1
+ export { A as ALL_NAVI_ASSETS, B as BORROW_FEE_BPS, a as BPS_DENOMINATOR, C as CLOCK_ID, b as COIN_REGISTRY, c as ClassifyBalanceChange, d as ClassifyResult, e as CoinMeta, D as DEFAULT_NETWORK, f as DEFAULT_SAFEGUARD_CONFIG, E as ETH_TYPE, g as ExtractedTransfer, F as FeeOperation, 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, O as OUTBOUND_OPS, P as ProtocolFeeInfo, S as SAVE_FEE_BPS, k as STABLE_ASSETS, l as SUI_DECIMALS, m as SUI_TYPE, n as SUPPORTED_ASSETS, o as SafeguardConfig, p as SafeguardError, q as SafeguardErrorDetails, r as SafeguardRule, s as SimulationResult, t as StableAsset, u as SuiRpcTxBlock, v as SupportedAsset, T as T2000Error, w as T2000ErrorCode, x as T2000ErrorData, y as T2000_OVERLAY_FEE_WALLET, z as TOKEN_MAP, H as TransactionSigner, J as TxDirection, Q as TxMetadata, 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 ZkLoginProof, $ as ZkLoginSigner, a0 as addFeeTransfer, a1 as calculateFee, a2 as classifyAction, a3 as classifyLabel, a4 as classifyTransaction, 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, ae as getDecimals, af as getDecimalsForCoinType, ag as getTier, ah as isSupported, ai as isTier1, aj as isTier2, ak as mapMoveAbortCode, al as mapWalletError, am as mistToSui, an as parseSuiRpcTx, ao as payWithMpp, ap as rawToStable, aq as rawToUsdc, ar as refineLendingLabel, as as resolveSymbol, at as resolveTokenType, au as stableToRaw, av as suiToMist, aw as truncateAddress, ax as usdcToRaw, ay as validateAddress } from './types-DqRLGfOC.js';
2
2
  export { A as AssetRates, B as BalanceResponse, a as BorrowResult, C as ClaimRewardsResult, D as DepositInfo, E as EarningsResult, F as FundStatusResult, G as GasReserve, H as HealthFactorResult, M as MaxBorrowResult, b as MaxWithdrawResult, O as OVERLAY_FEE_RATE, c as OverlayFeeConfig, P as PayOptions, d as PayResult, e as PendingReward, f as PositionEntry, g as PositionsResult, R as RatesResult, h as RepayResult, S as SaveResult, i as SendResult, j as SwapRouteResult, T as TransactionLeg, k as TransactionRecord, W as WithdrawResult, l as buildSwapTx, m as findSwapRoute } from './types-Ch0zVUpC.js';
3
3
  import '@mysten/sui/keypairs/ed25519';
4
4
  import '@mysten/sui/jsonRpc';
5
- import '@mysten/sui/grpc';
6
5
  import '@mysten/sui/transactions';
6
+ import '@mysten/sui/grpc';
7
7
  import '@cetusprotocol/aggregator-sdk';
8
8
 
9
9
  /** Cross-platform (Node + browser) base64 helpers. */
package/dist/browser.js CHANGED
@@ -243,14 +243,111 @@ var ZkLoginSigner = class {
243
243
  })
244
244
  };
245
245
  }
246
- async signPersonalMessage(_messageBytes) {
247
- throw new Error("ZkLoginSigner.signPersonalMessage is not yet implemented. Use KeypairSigner for sdk.pay() until grief-protection signing is wired for zkLogin.");
246
+ async signPersonalMessage(messageBytes) {
247
+ const { getZkLoginSignature } = await import('@mysten/zklogin');
248
+ const { signature: ephSig, bytes } = await this.ephemeralKeypair.signPersonalMessage(messageBytes);
249
+ return {
250
+ signature: getZkLoginSignature({
251
+ inputs: this.zkProof,
252
+ maxEpoch: this.maxEpoch,
253
+ userSignature: ephSig
254
+ }),
255
+ bytes
256
+ };
248
257
  }
249
258
  isExpired(currentEpoch) {
250
259
  return currentEpoch >= this.maxEpoch;
251
260
  }
252
261
  };
253
262
 
263
+ // src/mpp-cost.ts
264
+ function parseChallengeAmount(challenge) {
265
+ const raw = challenge?.request?.amount;
266
+ const n = typeof raw === "string" ? Number(raw) : typeof raw === "number" ? raw : Number.NaN;
267
+ return Number.isFinite(n) ? n : void 0;
268
+ }
269
+
270
+ // src/wallet/executeTx.ts
271
+ async function executeTx(client, signer, buildTx, options = {}) {
272
+ const tx = await buildTx();
273
+ tx.setSender(signer.getAddress());
274
+ const txBytes = await tx.build({ client: options.buildClient ?? client });
275
+ const { signature } = await signer.signTransaction(txBytes);
276
+ const result = await client.executeTransactionBlock({
277
+ transactionBlock: txBytes,
278
+ signature,
279
+ options: { showEffects: true }
280
+ });
281
+ await client.waitForTransaction({ digest: result.digest });
282
+ const gasUsed = result.effects?.gasUsed;
283
+ let gasCostSui = 0;
284
+ if (gasUsed) {
285
+ const total = BigInt(gasUsed.computationCost) + BigInt(gasUsed.storageCost) - BigInt(gasUsed.storageRebate);
286
+ gasCostSui = Number(total) / 1e9;
287
+ }
288
+ return { digest: result.digest, gasCostSui, effects: result.effects ?? void 0 };
289
+ }
290
+
291
+ // src/wallet/pay.ts
292
+ async function payWithMpp(args) {
293
+ const { signer, client, options } = args;
294
+ const { Mppx } = await import('mppx/client');
295
+ const { sui, USDC } = await import('@suimpp/mpp/client');
296
+ const { SuiGrpcClient: SuiGrpcClient2 } = await import('@mysten/sui/grpc');
297
+ const signerAddress = signer.getAddress();
298
+ let paymentDigest;
299
+ let gasCostSui = 0;
300
+ let chargedAmount;
301
+ const network = client.network === "testnet" ? "testnet" : "mainnet";
302
+ const grpcBaseUrl = network === "testnet" ? "https://fullnode.testnet.sui.io" : "https://fullnode.mainnet.sui.io";
303
+ const grpcClient = new SuiGrpcClient2({ baseUrl: grpcBaseUrl, network });
304
+ const mppx = Mppx.create({
305
+ polyfill: false,
306
+ onChallenge: async (challenge) => {
307
+ const parsed = parseChallengeAmount(challenge);
308
+ if (parsed !== void 0) chargedAmount = parsed;
309
+ return void 0;
310
+ },
311
+ methods: [sui({
312
+ client,
313
+ currency: USDC,
314
+ signer: {
315
+ toSuiAddress: () => signerAddress,
316
+ signPersonalMessage: (bytes) => signer.signPersonalMessage(bytes)
317
+ },
318
+ execute: async (tx) => {
319
+ const result = await executeTx(client, signer, () => tx, { buildClient: grpcClient });
320
+ paymentDigest = result.digest;
321
+ gasCostSui = result.gasCostSui;
322
+ return { digest: result.digest };
323
+ }
324
+ })]
325
+ });
326
+ const method = (options.method ?? "GET").toUpperCase();
327
+ const canHaveBody = method !== "GET" && method !== "HEAD";
328
+ const response = await mppx.fetch(options.url, {
329
+ method,
330
+ headers: options.headers,
331
+ body: canHaveBody ? options.body : void 0
332
+ });
333
+ const contentType = response.headers.get("content-type") ?? "";
334
+ let body;
335
+ try {
336
+ body = contentType.includes("application/json") ? await response.json() : await response.text();
337
+ } catch {
338
+ body = null;
339
+ }
340
+ const paid = !!paymentDigest;
341
+ return {
342
+ status: response.status,
343
+ body,
344
+ paid,
345
+ cost: paid ? chargedAmount ?? options.maxPrice ?? void 0 : void 0,
346
+ gasCostSui: paid ? gasCostSui : void 0,
347
+ receipt: paymentDigest ? { reference: paymentDigest, timestamp: (/* @__PURE__ */ new Date()).toISOString() } : void 0
348
+ };
349
+ }
350
+
254
351
  // src/browser.ts
255
352
  init_errors();
256
353
 
@@ -756,6 +853,6 @@ var DEFAULT_SAFEGUARD_CONFIG = {
756
853
  // src/browser.ts
757
854
  init_token_registry();
758
855
 
759
- export { ALL_NAVI_ASSETS, BORROW_FEE_BPS, BPS_DENOMINATOR, CLOCK_ID, COIN_REGISTRY, DEFAULT_NETWORK, DEFAULT_SAFEGUARD_CONFIG, ETH_TYPE, GAS_RESERVE_MIN, IKA_TYPE, KNOWN_TARGETS, KeypairSigner, LABEL_PATTERNS, LOFI_TYPE, MANIFEST_TYPE, MIST_PER_SUI, NAVX_TYPE, OUTBOUND_OPS, OVERLAY_FEE_RATE, SAVE_FEE_BPS, STABLE_ASSETS, SUI_DECIMALS, SUI_TYPE, SUPPORTED_ASSETS, SafeguardError, T2000Error, T2000_OVERLAY_FEE_WALLET, TOKEN_MAP, USDC_DECIMALS, USDC_TYPE, USDE_TYPE, USDSUI_TYPE, USDT_TYPE, WAL_TYPE, WBTC_TYPE, ZkLoginSigner, addFeeTransfer, buildSwapTx, calculateFee, classifyAction, classifyLabel, classifyTransaction, extractAllUserLegs, extractTransferDetails, extractTxCommands, extractTxSender, fallbackLabel, findSwapRoute, formatAssetAmount, formatSui, formatUsd, fromBase64, getDecimals, getDecimalsForCoinType, getTier, isSupported, isTier1, isTier2, mapMoveAbortCode, mapWalletError, mistToSui, parseSuiRpcTx, rawToStable, rawToUsdc, refineLendingLabel, resolveSymbol, resolveTokenType, stableToRaw, suiToMist, toBase64, truncateAddress, usdcToRaw, validateAddress };
856
+ export { ALL_NAVI_ASSETS, BORROW_FEE_BPS, BPS_DENOMINATOR, CLOCK_ID, COIN_REGISTRY, DEFAULT_NETWORK, DEFAULT_SAFEGUARD_CONFIG, ETH_TYPE, GAS_RESERVE_MIN, IKA_TYPE, KNOWN_TARGETS, KeypairSigner, LABEL_PATTERNS, LOFI_TYPE, MANIFEST_TYPE, MIST_PER_SUI, NAVX_TYPE, OUTBOUND_OPS, OVERLAY_FEE_RATE, SAVE_FEE_BPS, STABLE_ASSETS, SUI_DECIMALS, SUI_TYPE, SUPPORTED_ASSETS, SafeguardError, T2000Error, T2000_OVERLAY_FEE_WALLET, TOKEN_MAP, USDC_DECIMALS, USDC_TYPE, USDE_TYPE, USDSUI_TYPE, USDT_TYPE, WAL_TYPE, WBTC_TYPE, ZkLoginSigner, addFeeTransfer, buildSwapTx, calculateFee, classifyAction, classifyLabel, classifyTransaction, executeTx, extractAllUserLegs, extractTransferDetails, extractTxCommands, extractTxSender, fallbackLabel, findSwapRoute, formatAssetAmount, formatSui, formatUsd, fromBase64, getDecimals, getDecimalsForCoinType, getTier, isSupported, isTier1, isTier2, mapMoveAbortCode, mapWalletError, mistToSui, parseSuiRpcTx, payWithMpp, rawToStable, rawToUsdc, refineLendingLabel, resolveSymbol, resolveTokenType, stableToRaw, suiToMist, toBase64, truncateAddress, usdcToRaw, validateAddress };
760
857
  //# sourceMappingURL=browser.js.map
761
858
  //# sourceMappingURL=browser.js.map