@t2000/cli 0.22.22 → 0.22.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +1 -10
  2. package/dist/{ccip-3TXHQUZ5.js → ccip-JEEJV65M.js} +3 -3
  3. package/dist/{chunk-3W7OQGNS.js → chunk-3XUF7GM3.js} +21 -42
  4. package/dist/chunk-3XUF7GM3.js.map +1 -0
  5. package/dist/chunk-77SWBATH.js +204 -0
  6. package/dist/chunk-77SWBATH.js.map +1 -0
  7. package/dist/{chunk-ML6HST4W.js → chunk-A5X4KG7U.js} +1878 -341
  8. package/dist/chunk-A5X4KG7U.js.map +1 -0
  9. package/dist/{chunk-ZNF5QSAT.js → chunk-BPTNEFB5.js} +33491 -24904
  10. package/dist/chunk-BPTNEFB5.js.map +1 -0
  11. package/dist/{chunk-VREOXJUB.js → chunk-EEPD7SHV.js} +15455 -14941
  12. package/dist/chunk-EEPD7SHV.js.map +1 -0
  13. package/dist/{chunk-AB65Y674.js → chunk-V7PXDEKG.js} +2 -2
  14. package/dist/chunk-V7PXDEKG.js.map +1 -0
  15. package/dist/chunk-XOAZJ42V.js +4016 -0
  16. package/dist/chunk-XOAZJ42V.js.map +1 -0
  17. package/dist/client-CK5OR2TP.js +746 -0
  18. package/dist/client-CK5OR2TP.js.map +1 -0
  19. package/dist/{client-SYS6Z5RX.js → client-R3NRAXMD.js} +5715 -2933
  20. package/dist/client-R3NRAXMD.js.map +1 -0
  21. package/dist/{dist-73ESA7QZ.js → dist-MJOXMRDV.js} +135 -4259
  22. package/dist/dist-MJOXMRDV.js.map +1 -0
  23. package/dist/{dist-IANNA5N7.js → dist-TWST5EWE.js} +11 -27
  24. package/dist/{esm-IQVNJILX.js → esm-QBJBHFZA.js} +11 -11
  25. package/dist/esm-QBJBHFZA.js.map +1 -0
  26. package/dist/index.js +125 -284
  27. package/dist/index.js.map +1 -1
  28. package/package.json +4 -4
  29. package/dist/chunk-3W7OQGNS.js.map +0 -1
  30. package/dist/chunk-AB65Y674.js.map +0 -1
  31. package/dist/chunk-H66DC3S3.js +0 -1908
  32. package/dist/chunk-H66DC3S3.js.map +0 -1
  33. package/dist/chunk-IHPSFXUW.js +0 -5002
  34. package/dist/chunk-IHPSFXUW.js.map +0 -1
  35. package/dist/chunk-ML6HST4W.js.map +0 -1
  36. package/dist/chunk-VREOXJUB.js.map +0 -1
  37. package/dist/chunk-ZNF5QSAT.js.map +0 -1
  38. package/dist/client-4DBCJNJO.js +0 -117
  39. package/dist/client-4DBCJNJO.js.map +0 -1
  40. package/dist/client-SYS6Z5RX.js.map +0 -1
  41. package/dist/dist-73ESA7QZ.js.map +0 -1
  42. package/dist/esm-IQVNJILX.js.map +0 -1
  43. /package/dist/{ccip-3TXHQUZ5.js.map → ccip-JEEJV65M.js.map} +0 -0
  44. /package/dist/{dist-IANNA5N7.js.map → dist-TWST5EWE.js.map} +0 -0
@@ -1,117 +0,0 @@
1
- import { createRequire as __createRequire } from 'module'; import { fileURLToPath as __fileURLToPath } from 'url'; import { dirname as __pathDirname } from 'path'; const require = __createRequire(import.meta.url); const __filename = __fileURLToPath(import.meta.url); const __dirname = __pathDirname(__filename);
2
- import {
3
- Credential_exports,
4
- Method_exports,
5
- zod_exports
6
- } from "./chunk-VREOXJUB.js";
7
- import "./chunk-NGS6K3I3.js";
8
- import "./chunk-H66DC3S3.js";
9
- import "./chunk-7LGHVVIJ.js";
10
- import {
11
- Transaction,
12
- init_transactions
13
- } from "./chunk-IHPSFXUW.js";
14
- import "./chunk-3W7OQGNS.js";
15
- import "./chunk-YPWSCLE3.js";
16
-
17
- // ../mpp-sui/dist/client.js
18
- init_transactions();
19
- var suiCharge = Method_exports.from({
20
- intent: "charge",
21
- name: "sui",
22
- schema: {
23
- credential: {
24
- payload: zod_exports.object({
25
- digest: zod_exports.string()
26
- })
27
- },
28
- request: zod_exports.object({
29
- amount: zod_exports.string(),
30
- currency: zod_exports.string(),
31
- recipient: zod_exports.string()
32
- })
33
- }
34
- });
35
- var SUI_USDC_TYPE = "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC";
36
- async function fetchCoins(client, owner, coinType) {
37
- const coins = [];
38
- let cursor;
39
- let hasNext = true;
40
- while (hasNext) {
41
- const page = await client.getCoins({ owner, coinType, cursor: cursor ?? void 0 });
42
- coins.push(...page.data.map((c) => ({ coinObjectId: c.coinObjectId, balance: c.balance })));
43
- cursor = page.nextCursor;
44
- hasNext = page.hasNextPage;
45
- }
46
- return coins;
47
- }
48
- function parseAmountToRaw(amount, decimals) {
49
- const [whole = "0", frac = ""] = amount.split(".");
50
- const paddedFrac = frac.padEnd(decimals, "0").slice(0, decimals);
51
- return BigInt(whole + paddedFrac);
52
- }
53
- function sui(options) {
54
- const address = options.signer.getAddress();
55
- return Method_exports.toClient(suiCharge, {
56
- async createCredential({ challenge }) {
57
- const { amount, currency, recipient } = challenge.request;
58
- const amountRaw = parseAmountToRaw(amount, 6);
59
- const coins = await fetchCoins(options.client, address, currency);
60
- if (coins.length === 0) {
61
- throw new Error(
62
- `No ${currency.split("::").pop()} balance to pay with`
63
- );
64
- }
65
- const totalBalance = coins.reduce(
66
- (sum, c) => sum + BigInt(c.balance),
67
- 0n
68
- );
69
- if (totalBalance < amountRaw) {
70
- const available = Number(totalBalance) / 1e6;
71
- const requested = Number(amountRaw) / 1e6;
72
- throw new Error(
73
- `Not enough USDC to pay $${requested.toFixed(2)} (available: $${available.toFixed(2)})`
74
- );
75
- }
76
- const tx = new Transaction();
77
- tx.setSender(address);
78
- const primaryCoin = tx.object(coins[0].coinObjectId);
79
- if (coins.length > 1) {
80
- tx.mergeCoins(
81
- primaryCoin,
82
- coins.slice(1).map((c) => tx.object(c.coinObjectId))
83
- );
84
- }
85
- const [payment] = tx.splitCoins(primaryCoin, [amountRaw]);
86
- tx.transferObjects([payment], recipient);
87
- let result;
88
- try {
89
- if (options.execute) {
90
- result = await options.execute(tx);
91
- } else {
92
- tx.setSender(address);
93
- const built = await tx.build({ client: options.client });
94
- const { signature } = await options.signer.signTransaction(built);
95
- result = await options.client.executeTransactionBlock({
96
- transactionBlock: built,
97
- signature,
98
- options: { showEffects: true }
99
- });
100
- }
101
- } catch (err) {
102
- const msg = err instanceof Error ? err.message : String(err);
103
- throw new Error(`Payment transaction failed: ${msg}`);
104
- }
105
- return Credential_exports.serialize({
106
- challenge,
107
- payload: { digest: result.digest }
108
- });
109
- }
110
- });
111
- }
112
- export {
113
- SUI_USDC_TYPE,
114
- sui,
115
- suiCharge
116
- };
117
- //# sourceMappingURL=client-4DBCJNJO.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../mpp-sui/src/method.ts","../../mpp-sui/src/utils.ts","../../mpp-sui/src/client.ts"],"sourcesContent":["import { Method, z } from 'mppx';\n\nexport const suiCharge = Method.from({\n intent: 'charge',\n name: 'sui',\n schema: {\n credential: {\n payload: z.object({\n digest: z.string(),\n }),\n },\n request: z.object({\n amount: z.string(),\n currency: z.string(),\n recipient: z.string(),\n }),\n },\n});\n","import type { SuiJsonRpcClient } from '@mysten/sui/jsonRpc';\n\nexport const SUI_USDC_TYPE =\n '0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC';\n\n/**\n * Fetch ALL coins of a given type, handling Sui pagination (max 50 per page).\n */\nexport interface CoinInfo {\n coinObjectId: string;\n balance: string;\n}\n\nexport async function fetchCoins(\n client: SuiJsonRpcClient,\n owner: string,\n coinType: string,\n): Promise<CoinInfo[]> {\n const coins: CoinInfo[] = [];\n let cursor: string | null | undefined;\n let hasNext = true;\n while (hasNext) {\n const page = await client.getCoins({ owner, coinType, cursor: cursor ?? undefined });\n coins.push(...page.data.map((c) => ({ coinObjectId: c.coinObjectId, balance: c.balance })));\n cursor = page.nextCursor;\n hasNext = page.hasNextPage;\n }\n return coins;\n}\n\n/**\n * Parse a string amount to raw bigint units without floating-point math.\n * \"0.01\" with 6 decimals → 10000n\n */\nexport function parseAmountToRaw(amount: string, decimals: number): bigint {\n const [whole = '0', frac = ''] = amount.split('.');\n const paddedFrac = frac.padEnd(decimals, '0').slice(0, decimals);\n return BigInt(whole + paddedFrac);\n}\n","import { Method, Credential } from 'mppx';\nimport type { SuiJsonRpcClient } from '@mysten/sui/jsonRpc';\nimport { Transaction } from '@mysten/sui/transactions';\nimport { suiCharge } from './method.js';\nimport { fetchCoins, parseAmountToRaw } from './utils.js';\n\nexport { suiCharge } from './method.js';\nexport { SUI_USDC_TYPE } from './utils.js';\n\nexport interface TransactionSigner {\n getAddress(): string;\n signTransaction(txBytes: Uint8Array): Promise<{ signature: string }>;\n}\n\nexport interface SuiChargeOptions {\n client: SuiJsonRpcClient;\n signer: TransactionSigner;\n /** Override transaction execution (e.g. to route through a gas manager). */\n execute?: (tx: Transaction) => Promise<{ digest: string; effects: unknown }>;\n}\n\nexport function sui(options: SuiChargeOptions) {\n const address = options.signer.getAddress();\n\n return Method.toClient(suiCharge, {\n async createCredential({ challenge }) {\n const { amount, currency, recipient } = challenge.request;\n const amountRaw = parseAmountToRaw(amount, 6);\n\n const coins = await fetchCoins(options.client, address, currency);\n if (coins.length === 0) {\n throw new Error(\n `No ${currency.split('::').pop()} balance to pay with`,\n );\n }\n\n const totalBalance = coins.reduce(\n (sum, c) => sum + BigInt(c.balance),\n 0n,\n );\n if (totalBalance < amountRaw) {\n const available = Number(totalBalance) / 1e6;\n const requested = Number(amountRaw) / 1e6;\n throw new Error(\n `Not enough USDC to pay $${requested.toFixed(2)} (available: $${available.toFixed(2)})`,\n );\n }\n\n const tx = new Transaction();\n tx.setSender(address);\n\n const primaryCoin = tx.object(coins[0].coinObjectId);\n if (coins.length > 1) {\n tx.mergeCoins(\n primaryCoin,\n coins.slice(1).map((c) => tx.object(c.coinObjectId)),\n );\n }\n\n const [payment] = tx.splitCoins(primaryCoin, [amountRaw]);\n tx.transferObjects([payment], recipient);\n\n let result;\n try {\n if (options.execute) {\n result = await options.execute(tx);\n } else {\n tx.setSender(address);\n const built = await tx.build({ client: options.client });\n const { signature } = await options.signer.signTransaction(built);\n result = await options.client.executeTransactionBlock({\n transactionBlock: built,\n signature,\n options: { showEffects: true },\n });\n }\n } catch (err: unknown) {\n const msg = err instanceof Error ? err.message : String(err);\n throw new Error(`Payment transaction failed: ${msg}`);\n }\n\n return Credential.serialize({\n challenge,\n payload: { digest: result.digest },\n });\n },\n });\n}\n"],"mappings":"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","names":["Method"]}