@bankofai/x402 0.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.
Files changed (110) hide show
  1. package/README.md +368 -0
  2. package/dist/abi.d.ts +112 -0
  3. package/dist/abi.d.ts.map +1 -0
  4. package/dist/abi.js +73 -0
  5. package/dist/abi.js.map +1 -0
  6. package/dist/address.d.ts +50 -0
  7. package/dist/address.d.ts.map +1 -0
  8. package/dist/address.js +154 -0
  9. package/dist/address.js.map +1 -0
  10. package/dist/client/index.d.ts +9 -0
  11. package/dist/client/index.d.ts.map +1 -0
  12. package/dist/client/index.js +7 -0
  13. package/dist/client/index.js.map +1 -0
  14. package/dist/client/policies.d.ts +23 -0
  15. package/dist/client/policies.d.ts.map +1 -0
  16. package/dist/client/policies.js +54 -0
  17. package/dist/client/policies.js.map +1 -0
  18. package/dist/client/tokenSelection.d.ts +22 -0
  19. package/dist/client/tokenSelection.d.ts.map +1 -0
  20. package/dist/client/tokenSelection.js +40 -0
  21. package/dist/client/tokenSelection.js.map +1 -0
  22. package/dist/client/x402Client.d.ts +128 -0
  23. package/dist/client/x402Client.d.ts.map +1 -0
  24. package/dist/client/x402Client.js +143 -0
  25. package/dist/client/x402Client.js.map +1 -0
  26. package/dist/config.d.ts +43 -0
  27. package/dist/config.d.ts.map +1 -0
  28. package/dist/config.js +92 -0
  29. package/dist/config.js.map +1 -0
  30. package/dist/errors.d.ts +41 -0
  31. package/dist/errors.d.ts.map +1 -0
  32. package/dist/errors.js +69 -0
  33. package/dist/errors.js.map +1 -0
  34. package/dist/http/client.d.ts +33 -0
  35. package/dist/http/client.d.ts.map +1 -0
  36. package/dist/http/client.js +83 -0
  37. package/dist/http/client.js.map +1 -0
  38. package/dist/http/index.d.ts +5 -0
  39. package/dist/http/index.d.ts.map +1 -0
  40. package/dist/http/index.js +5 -0
  41. package/dist/http/index.js.map +1 -0
  42. package/dist/index.d.ts +20 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +25 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/mechanisms/exact.d.ts +20 -0
  47. package/dist/mechanisms/exact.d.ts.map +1 -0
  48. package/dist/mechanisms/exact.js +110 -0
  49. package/dist/mechanisms/exact.js.map +1 -0
  50. package/dist/mechanisms/exactEvm.d.ts +18 -0
  51. package/dist/mechanisms/exactEvm.d.ts.map +1 -0
  52. package/dist/mechanisms/exactEvm.js +91 -0
  53. package/dist/mechanisms/exactEvm.js.map +1 -0
  54. package/dist/mechanisms/index.d.ts +10 -0
  55. package/dist/mechanisms/index.d.ts.map +1 -0
  56. package/dist/mechanisms/index.js +12 -0
  57. package/dist/mechanisms/index.js.map +1 -0
  58. package/dist/mechanisms/nativeExact.d.ts +64 -0
  59. package/dist/mechanisms/nativeExact.d.ts.map +1 -0
  60. package/dist/mechanisms/nativeExact.js +66 -0
  61. package/dist/mechanisms/nativeExact.js.map +1 -0
  62. package/dist/mechanisms/nativeExactEvm.d.ts +19 -0
  63. package/dist/mechanisms/nativeExactEvm.d.ts.map +1 -0
  64. package/dist/mechanisms/nativeExactEvm.js +61 -0
  65. package/dist/mechanisms/nativeExactEvm.js.map +1 -0
  66. package/dist/mechanisms/nativeExactTron.d.ts +19 -0
  67. package/dist/mechanisms/nativeExactTron.d.ts.map +1 -0
  68. package/dist/mechanisms/nativeExactTron.js +61 -0
  69. package/dist/mechanisms/nativeExactTron.js.map +1 -0
  70. package/dist/signers/evmSigner.d.ts +23 -0
  71. package/dist/signers/evmSigner.d.ts.map +1 -0
  72. package/dist/signers/evmSigner.js +159 -0
  73. package/dist/signers/evmSigner.js.map +1 -0
  74. package/dist/signers/index.d.ts +8 -0
  75. package/dist/signers/index.d.ts.map +1 -0
  76. package/dist/signers/index.js +7 -0
  77. package/dist/signers/index.js.map +1 -0
  78. package/dist/signers/signer.d.ts +37 -0
  79. package/dist/signers/signer.d.ts.map +1 -0
  80. package/dist/signers/signer.js +179 -0
  81. package/dist/signers/signer.js.map +1 -0
  82. package/dist/signers/types.d.ts +70 -0
  83. package/dist/signers/types.d.ts.map +1 -0
  84. package/dist/signers/types.js +10 -0
  85. package/dist/signers/types.js.map +1 -0
  86. package/dist/tokens.d.ts +18 -0
  87. package/dist/tokens.d.ts.map +1 -0
  88. package/dist/tokens.js +105 -0
  89. package/dist/tokens.js.map +1 -0
  90. package/dist/types/index.d.ts +6 -0
  91. package/dist/types/index.d.ts.map +1 -0
  92. package/dist/types/index.js +6 -0
  93. package/dist/types/index.js.map +1 -0
  94. package/dist/types/payment.d.ts +111 -0
  95. package/dist/types/payment.d.ts.map +1 -0
  96. package/dist/types/payment.js +5 -0
  97. package/dist/types/payment.js.map +1 -0
  98. package/dist/types/responses.d.ts +76 -0
  99. package/dist/types/responses.d.ts.map +1 -0
  100. package/dist/types/responses.js +5 -0
  101. package/dist/types/responses.js.map +1 -0
  102. package/dist/utils/encoding.d.ts +48 -0
  103. package/dist/utils/encoding.d.ts.map +1 -0
  104. package/dist/utils/encoding.js +105 -0
  105. package/dist/utils/encoding.js.map +1 -0
  106. package/dist/utils/index.d.ts +6 -0
  107. package/dist/utils/index.d.ts.map +1 -0
  108. package/dist/utils/index.js +6 -0
  109. package/dist/utils/index.js.map +1 -0
  110. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evmSigner.js","sourceRoot":"","sources":["../../src/signers/evmSigner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * TRON Client Signer for x402 protocol
3
+ */
4
+ export { TronClientSigner } from './signer.js';
5
+ export { EvmClientSigner } from './evmSigner.js';
6
+ export type { TronWeb, TypedDataDomain, TypedDataField, TronNetwork, } from './types.js';
7
+ export { TRON_CHAIN_IDS } from './types.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EACV,OAAO,EACP,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * TRON Client Signer for x402 protocol
3
+ */
4
+ export { TronClientSigner } from './signer.js';
5
+ export { EvmClientSigner } from './evmSigner.js';
6
+ export { TRON_CHAIN_IDS } from './types.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/signers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAOjD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * TronClientSigner - TRON client signer for x402 protocol
3
+ *
4
+ * Uses TronWeb's signTypedData (TIP-712) for EIP-712 compatible signing.
5
+ */
6
+ import type { ClientSigner } from '../index.js';
7
+ import { type Hex } from '../index.js';
8
+ import type { TronWeb, TronNetwork } from './types.js';
9
+ /**
10
+ * TRON client signer implementation using TronWeb's signTypedData
11
+ */
12
+ export declare class TronClientSigner implements ClientSigner {
13
+ private tronWeb;
14
+ private privateKey;
15
+ private address;
16
+ private network?;
17
+ private constructor();
18
+ /**
19
+ * Create signer from TronWeb instance (browser wallet mode)
20
+ */
21
+ static fromTronWeb(tronWeb: TronWeb, network?: TronNetwork): TronClientSigner;
22
+ /**
23
+ * Create signer with explicit private key
24
+ */
25
+ static withPrivateKey(tronWeb: TronWeb, privateKey: string, network?: TronNetwork): TronClientSigner;
26
+ getAddress(): string;
27
+ getEvmAddress(): Hex;
28
+ signMessage(message: Uint8Array): Promise<string>;
29
+ /**
30
+ * Sign EIP-712 typed data using TronWeb's signTypedData (TIP-712)
31
+ */
32
+ signTypedData(domain: Record<string, unknown>, types: Record<string, unknown>, message: Record<string, unknown>): Promise<string>;
33
+ checkBalance(token: string, network: string): Promise<bigint>;
34
+ checkAllowance(token: string, _amount: bigint, network: string): Promise<bigint>;
35
+ ensureAllowance(token: string, amount: bigint, network: string, mode?: 'auto' | 'interactive' | 'skip'): Promise<boolean>;
36
+ }
37
+ //# sourceMappingURL=signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signers/signer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAIL,KAAK,GAAG,EAIT,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,OAAO,EAAmC,WAAW,EAAE,MAAM,YAAY,CAAC;AAMxF;;GAEG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAC,CAAc;IAE9B,OAAO;IAYP;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,gBAAgB;IAS7E;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,WAAW,GACpB,gBAAgB;IAMnB,UAAU,IAAI,MAAM;IAIpB,aAAa,IAAI,GAAG;IAId,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAOvD;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAAC,MAAM,CAAC;IAuBZ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2B7D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgChF,eAAe,CACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,GAAG,aAAa,GAAG,MAAe,GAC7C,OAAO,CAAC,OAAO,CAAC;CAuFpB"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * TronClientSigner - TRON client signer for x402 protocol
3
+ *
4
+ * Uses TronWeb's signTypedData (TIP-712) for EIP-712 compatible signing.
5
+ */
6
+ import { getPaymentPermitAddress, toEvmHex, SignatureCreationError, InsufficientAllowanceError, UnsupportedNetworkError, } from '../index.js';
7
+ /** ERC20 function selectors */
8
+ const ERC20_ALLOWANCE_SELECTOR = 'allowance(address,address)';
9
+ const ERC20_APPROVE_SELECTOR = 'approve(address,uint256)';
10
+ /**
11
+ * TRON client signer implementation using TronWeb's signTypedData
12
+ */
13
+ export class TronClientSigner {
14
+ tronWeb;
15
+ privateKey;
16
+ address; // Base58 format
17
+ network;
18
+ constructor(tronWeb, address, network, privateKey) {
19
+ this.tronWeb = tronWeb;
20
+ this.address = address;
21
+ this.network = network;
22
+ this.privateKey = privateKey;
23
+ }
24
+ /**
25
+ * Create signer from TronWeb instance (browser wallet mode)
26
+ */
27
+ static fromTronWeb(tronWeb, network) {
28
+ const privateKey = tronWeb.defaultPrivateKey;
29
+ if (!privateKey) {
30
+ throw new SignatureCreationError('TronWeb instance must have a default private key or be connected to a wallet');
31
+ }
32
+ const address = tronWeb.address.fromPrivateKey(privateKey);
33
+ return new TronClientSigner(tronWeb, address, network);
34
+ }
35
+ /**
36
+ * Create signer with explicit private key
37
+ */
38
+ static withPrivateKey(tronWeb, privateKey, network) {
39
+ const cleanKey = privateKey.startsWith('0x') ? privateKey.slice(2) : privateKey;
40
+ const address = tronWeb.address.fromPrivateKey(cleanKey);
41
+ return new TronClientSigner(tronWeb, address, network, cleanKey);
42
+ }
43
+ getAddress() {
44
+ return this.address;
45
+ }
46
+ getEvmAddress() {
47
+ return toEvmHex(this.address);
48
+ }
49
+ async signMessage(message) {
50
+ const messageHex = Array.from(message)
51
+ .map(b => b.toString(16).padStart(2, '0'))
52
+ .join('');
53
+ return this.tronWeb.trx.signMessageV2(messageHex, this.privateKey);
54
+ }
55
+ /**
56
+ * Sign EIP-712 typed data using TronWeb's signTypedData (TIP-712)
57
+ */
58
+ async signTypedData(domain, types, message) {
59
+ // Prepare domain
60
+ const typedDomain = {
61
+ name: domain.name,
62
+ chainId: domain.chainId,
63
+ verifyingContract: domain.verifyingContract,
64
+ };
65
+ // Use signTypedData (stable API) or fall back to _signTypedData (legacy)
66
+ const signFn = this.tronWeb.trx.signTypedData || this.tronWeb.trx._signTypedData;
67
+ if (!signFn) {
68
+ throw new SignatureCreationError('TronWeb does not support signTypedData. Please upgrade to TronWeb >= 5.0');
69
+ }
70
+ return signFn.call(this.tronWeb.trx, typedDomain, types, message, this.privateKey);
71
+ }
72
+ async checkBalance(token, network) {
73
+ const resolvedNetwork = network || (this.network ? `tron:${this.network}` : undefined);
74
+ if (!resolvedNetwork) {
75
+ throw new UnsupportedNetworkError('network is required for checkBalance');
76
+ }
77
+ try {
78
+ const ownerHex = toEvmHex(this.address);
79
+ const result = await this.tronWeb.transactionBuilder.triggerConstantContract(token, 'balanceOf(address)', {}, [{ type: 'address', value: ownerHex }], this.address);
80
+ if (result.result?.result && result.constant_result?.length) {
81
+ return BigInt('0x' + result.constant_result[0]);
82
+ }
83
+ }
84
+ catch (error) {
85
+ console.error(`[TronClientSigner] Failed to check balance: ${error}`);
86
+ }
87
+ return BigInt(0);
88
+ }
89
+ async checkAllowance(token, _amount, network) {
90
+ const resolvedNetwork = network || (this.network ? `tron:${this.network}` : undefined);
91
+ if (!resolvedNetwork) {
92
+ throw new UnsupportedNetworkError('network is required for checkAllowance');
93
+ }
94
+ const spender = getPaymentPermitAddress(resolvedNetwork);
95
+ try {
96
+ const ownerHex = toEvmHex(this.address);
97
+ const spenderHex = toEvmHex(spender);
98
+ const result = await this.tronWeb.transactionBuilder.triggerConstantContract(token, ERC20_ALLOWANCE_SELECTOR, {}, [
99
+ { type: 'address', value: ownerHex },
100
+ { type: 'address', value: spenderHex },
101
+ ], this.address);
102
+ if (result.result?.result && result.constant_result?.length) {
103
+ return BigInt('0x' + result.constant_result[0]);
104
+ }
105
+ }
106
+ catch (error) {
107
+ console.error(`[TronClientSigner] Failed to check allowance: ${error}`);
108
+ }
109
+ return BigInt(0);
110
+ }
111
+ async ensureAllowance(token, amount, network, mode = 'auto') {
112
+ if (mode === 'skip') {
113
+ return true;
114
+ }
115
+ const currentAllowance = await this.checkAllowance(token, amount, network);
116
+ if (currentAllowance >= amount) {
117
+ console.log(`[ALLOWANCE] Sufficient allowance: ${currentAllowance} >= ${amount}`);
118
+ return true;
119
+ }
120
+ if (mode === 'interactive') {
121
+ throw new InsufficientAllowanceError('Interactive approval not implemented - use wallet UI');
122
+ }
123
+ // Auto mode: send approve transaction
124
+ console.log(`[ALLOWANCE] Insufficient allowance: ${currentAllowance} < ${amount}, sending approve...`);
125
+ const resolvedNetwork = network || (this.network ? `tron:${this.network}` : undefined);
126
+ if (!resolvedNetwork) {
127
+ throw new UnsupportedNetworkError('network is required for ensureAllowance');
128
+ }
129
+ const spender = getPaymentPermitAddress(resolvedNetwork);
130
+ const spenderHex = toEvmHex(spender);
131
+ // Use maxUint160 (2^160 - 1) to avoid repeated approvals
132
+ const maxUint160 = (BigInt(2) ** BigInt(160)) - BigInt(1);
133
+ try {
134
+ // Build approve transaction
135
+ const tx = await this.tronWeb.transactionBuilder.triggerSmartContract(token, ERC20_APPROVE_SELECTOR, {
136
+ feeLimit: 100_000_000,
137
+ callValue: 0,
138
+ }, [
139
+ { type: 'address', value: spenderHex },
140
+ { type: 'uint256', value: maxUint160.toString() },
141
+ ], this.address);
142
+ if (!tx.result?.result) {
143
+ throw new InsufficientAllowanceError('Failed to build approve transaction');
144
+ }
145
+ // Sign transaction
146
+ const signedTx = await this.tronWeb.trx.sign(tx.transaction, this.privateKey);
147
+ // Broadcast transaction
148
+ const broadcast = await this.tronWeb.trx.sendRawTransaction(signedTx);
149
+ if (!broadcast.result) {
150
+ throw new InsufficientAllowanceError(`Failed to broadcast approve transaction: ${JSON.stringify(broadcast)}`);
151
+ }
152
+ console.log(`[ALLOWANCE] Approve transaction sent: ${broadcast.txid}`);
153
+ // Wait for confirmation (poll for ~30 seconds)
154
+ const txid = broadcast.txid;
155
+ for (let i = 0; i < 10; i++) {
156
+ await new Promise(resolve => setTimeout(resolve, 3000));
157
+ try {
158
+ const info = await this.tronWeb.trx.getTransactionInfo(txid);
159
+ if (info && info.blockNumber) {
160
+ const success = info.receipt?.result === 'SUCCESS';
161
+ console.log(`[ALLOWANCE] Approve confirmed: ${success ? 'SUCCESS' : 'FAILED'}`);
162
+ return success;
163
+ }
164
+ }
165
+ catch {
166
+ // Not confirmed yet, continue polling
167
+ }
168
+ }
169
+ console.log('[ALLOWANCE] Approve transaction not confirmed within timeout, assuming success');
170
+ return true;
171
+ }
172
+ catch (error) {
173
+ if (error instanceof InsufficientAllowanceError)
174
+ throw error;
175
+ throw new InsufficientAllowanceError(`Approve transaction failed: ${error instanceof Error ? error.message : String(error)}`);
176
+ }
177
+ }
178
+ }
179
+ //# sourceMappingURL=signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signers/signer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * TronWeb type definitions for x402 protocol
3
+ */
4
+ export type Hex = `0x${string}`;
5
+ /** EIP-712 Domain type */
6
+ export interface TypedDataDomain {
7
+ name?: string;
8
+ version?: string;
9
+ chainId?: number | string;
10
+ verifyingContract?: string;
11
+ }
12
+ /** EIP-712 Type definition */
13
+ export interface TypedDataField {
14
+ name: string;
15
+ type: string;
16
+ }
17
+ /** TronWeb instance type (from tronweb package) */
18
+ export interface TronWeb {
19
+ address: {
20
+ fromPrivateKey(privateKey: string): string;
21
+ toHex(address: string): string;
22
+ fromHex(address: string): string;
23
+ };
24
+ trx: {
25
+ sign(transaction: unknown, privateKey?: string): Promise<unknown>;
26
+ signMessageV2(message: string, privateKey?: string): Promise<string>;
27
+ /** TIP-712 typed data signing (stable API) */
28
+ signTypedData(domain: TypedDataDomain, types: Record<string, TypedDataField[]>, value: Record<string, unknown>, privateKey?: string): Promise<string>;
29
+ /** TIP-712 typed data signing (legacy API, kept for backward compatibility) */
30
+ _signTypedData(domain: TypedDataDomain, types: Record<string, TypedDataField[]>, value: Record<string, unknown>, privateKey?: string): Promise<string>;
31
+ /** Broadcast signed transaction */
32
+ sendRawTransaction(signedTransaction: unknown): Promise<{
33
+ result: boolean;
34
+ txid: string;
35
+ }>;
36
+ /** Get transaction info by txid */
37
+ getTransactionInfo(txid: string): Promise<{
38
+ blockNumber?: number;
39
+ receipt?: {
40
+ result: string;
41
+ };
42
+ }>;
43
+ };
44
+ transactionBuilder: {
45
+ triggerSmartContract(contractAddress: string, functionSelector: string, options: Record<string, unknown>, parameters: unknown[], issuerAddress: string): Promise<{
46
+ transaction: unknown;
47
+ result: {
48
+ result: boolean;
49
+ };
50
+ }>;
51
+ triggerConstantContract(contractAddress: string, functionSelector: string, options: Record<string, unknown>, parameters: unknown[], issuerAddress?: string): Promise<{
52
+ result: {
53
+ result: boolean;
54
+ };
55
+ constant_result?: string[];
56
+ }>;
57
+ };
58
+ contract(): {
59
+ at(address: string): Promise<unknown>;
60
+ };
61
+ defaultPrivateKey?: string;
62
+ }
63
+ /** TRON network chain IDs */
64
+ export declare const TRON_CHAIN_IDS: {
65
+ readonly mainnet: 728126428;
66
+ readonly shasta: 2494104990;
67
+ readonly nile: 3448148188;
68
+ };
69
+ export type TronNetwork = keyof typeof TRON_CHAIN_IDS;
70
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/signers/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * TronWeb type definitions for x402 protocol
3
+ */
4
+ /** TRON network chain IDs */
5
+ export const TRON_CHAIN_IDS = {
6
+ mainnet: 728126428,
7
+ shasta: 2494104990,
8
+ nile: 3448148188,
9
+ };
10
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/signers/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwEH,6BAA6B;AAC7B,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;CACR,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Token registry - Centralized management of token configurations for all networks
3
+ */
4
+ export interface TokenInfo {
5
+ address: string;
6
+ decimals: number;
7
+ name: string;
8
+ symbol: string;
9
+ }
10
+ /** Get token info by network and symbol */
11
+ export declare function getToken(network: string, symbol: string): TokenInfo | undefined;
12
+ /** Find token info by network and contract address */
13
+ export declare function findByAddress(network: string, address: string): TokenInfo | undefined;
14
+ /** Get all tokens for a network */
15
+ export declare function getNetworkTokens(network: string): Record<string, TokenInfo>;
16
+ /** Register a custom token */
17
+ export declare function registerToken(network: string, token: TokenInfo): void;
18
+ //# sourceMappingURL=tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAiFD,2CAA2C;AAC3C,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAE/E;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAKrF;AAED,mCAAmC;AACnC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAE3E;AAED,8BAA8B;AAC9B,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAKrE"}
package/dist/tokens.js ADDED
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Token registry - Centralized management of token configurations for all networks
3
+ */
4
+ const TOKENS = {
5
+ 'eip155:97': {
6
+ USDT: {
7
+ address: '0x337610d27c682E347C9cD60BD4b3b107C9d34dDd',
8
+ decimals: 18,
9
+ name: 'Tether USD',
10
+ symbol: 'USDT',
11
+ },
12
+ USDC: {
13
+ address: '0x64544969ed7EBf5f083679233325356EbE738930',
14
+ decimals: 18,
15
+ name: 'USD Coin',
16
+ symbol: 'USDC',
17
+ },
18
+ DHLU: {
19
+ address: '0x375cADdd2cB68cE82e3D9B075D551067a7b4B816',
20
+ decimals: 6,
21
+ name: 'DA HULU',
22
+ symbol: 'DHLU',
23
+ },
24
+ },
25
+ 'eip155:56': {
26
+ USDC: {
27
+ address: '0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d',
28
+ decimals: 18,
29
+ name: 'USD Coin',
30
+ symbol: 'USDC',
31
+ },
32
+ USDT: {
33
+ address: '0x55d398326f99059fF775485246999027B3197955',
34
+ decimals: 18,
35
+ name: 'Tether USD',
36
+ symbol: 'USDT',
37
+ },
38
+ EPS: {
39
+ address: '0xA7f552078dcC247C2684336020c03648500C6d9F',
40
+ decimals: 18,
41
+ name: 'Ellipsis',
42
+ symbol: 'EPS',
43
+ },
44
+ },
45
+ 'tron:mainnet': {
46
+ USDT: {
47
+ address: 'TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t',
48
+ decimals: 6,
49
+ name: 'Tether USD',
50
+ symbol: 'USDT',
51
+ },
52
+ USDD: {
53
+ address: 'TXDk8mbtRbXeYuMNS83CfKPaYYT8XWv9Hz',
54
+ decimals: 18,
55
+ name: 'Decentralized USD',
56
+ symbol: 'USDD',
57
+ },
58
+ },
59
+ 'tron:shasta': {
60
+ USDT: {
61
+ address: 'TG3XXyExBkPp9nzdajDZsozEu4BkaSJozs',
62
+ decimals: 6,
63
+ name: 'Tether USD',
64
+ symbol: 'USDT',
65
+ },
66
+ },
67
+ 'tron:nile': {
68
+ USDT: {
69
+ address: 'TXYZopYRdj2D9XRtbG411XZZ3kM5VkAeBf',
70
+ decimals: 6,
71
+ name: 'Tether USD',
72
+ symbol: 'USDT',
73
+ },
74
+ USDD: {
75
+ address: 'TGjgvdTWWrybVLaVeFqSyVqJQWjxqRYbaK',
76
+ decimals: 18,
77
+ name: 'Decentralized USD',
78
+ symbol: 'USDD',
79
+ },
80
+ },
81
+ };
82
+ /** Get token info by network and symbol */
83
+ export function getToken(network, symbol) {
84
+ return TOKENS[network]?.[symbol.toUpperCase()];
85
+ }
86
+ /** Find token info by network and contract address */
87
+ export function findByAddress(network, address) {
88
+ const tokens = TOKENS[network];
89
+ if (!tokens)
90
+ return undefined;
91
+ const lower = address.toLowerCase();
92
+ return Object.values(tokens).find(t => t.address.toLowerCase() === lower);
93
+ }
94
+ /** Get all tokens for a network */
95
+ export function getNetworkTokens(network) {
96
+ return TOKENS[network] ?? {};
97
+ }
98
+ /** Register a custom token */
99
+ export function registerToken(network, token) {
100
+ if (!TOKENS[network]) {
101
+ TOKENS[network] = {};
102
+ }
103
+ TOKENS[network][token.symbol.toUpperCase()] = token;
104
+ }
105
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Type definitions for x402 protocol
3
+ */
4
+ export * from './payment.js';
5
+ export * from './responses.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Type definitions for x402 protocol
3
+ */
4
+ export * from './payment.js';
5
+ export * from './responses.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Payment-related type definitions for x402 protocol
3
+ */
4
+ /** Delivery mode for payment */
5
+ export type DeliveryKind = 'PAYMENT_ONLY';
6
+ /** Payment permit metadata */
7
+ export interface PermitMeta {
8
+ /** Delivery type: PAYMENT_ONLY */
9
+ kind: DeliveryKind;
10
+ /** Business order ID for reconciliation */
11
+ paymentId: string;
12
+ /** Idempotency key (isolated by owner address) */
13
+ nonce: string;
14
+ /** Effective time (Unix seconds) */
15
+ validAfter: number;
16
+ /** Expiry time (Unix seconds) */
17
+ validBefore: number;
18
+ }
19
+ /** Payment information */
20
+ export interface Payment {
21
+ /** Payment token address */
22
+ payToken: string;
23
+ /** Maximum deductible amount */
24
+ payAmount: string;
25
+ /** Primary recipient address */
26
+ payTo: string;
27
+ }
28
+ /** Fee information */
29
+ export interface Fee {
30
+ /** Fee recipient address */
31
+ feeTo: string;
32
+ /** Fee amount */
33
+ feeAmount: string;
34
+ }
35
+ /** Payment permit structure */
36
+ export interface PaymentPermit {
37
+ /** Permit metadata */
38
+ meta: PermitMeta;
39
+ /** Payer address (signer) */
40
+ buyer: string;
41
+ /** Caller address (who can call permitTransferFrom) */
42
+ caller: string;
43
+ /** Payment information */
44
+ payment: Payment;
45
+ /** Fee information */
46
+ fee: Fee;
47
+ }
48
+ /** Payment requirements from server */
49
+ export interface PaymentRequirements {
50
+ /** Payment scheme (e.g., "exact", "upto") */
51
+ scheme: string;
52
+ /** Network identifier (e.g., "tron:shasta", "eip155:8453") */
53
+ network: string;
54
+ /** Payment amount (in smallest unit) */
55
+ amount: string;
56
+ /** Payment asset address */
57
+ asset: string;
58
+ /** Recipient address */
59
+ payTo: string;
60
+ /** Maximum timeout in seconds */
61
+ maxTimeoutSeconds?: number;
62
+ /** Extra information */
63
+ extra?: PaymentRequirementsExtra;
64
+ }
65
+ /** Extra information in payment requirements */
66
+ export interface PaymentRequirementsExtra {
67
+ /** Token name */
68
+ name?: string;
69
+ /** Token version */
70
+ version?: string;
71
+ /** Fee information */
72
+ fee?: {
73
+ facilitatorId?: string;
74
+ feeTo: string;
75
+ feeAmount: string;
76
+ caller?: string;
77
+ };
78
+ }
79
+ /** Payment permit context from extensions */
80
+ export interface PaymentPermitContext {
81
+ meta: {
82
+ kind: DeliveryKind;
83
+ paymentId: string;
84
+ nonce: string;
85
+ validAfter: number;
86
+ validBefore: number;
87
+ };
88
+ }
89
+ /** Payment payload sent by client */
90
+ export interface PaymentPayload {
91
+ /** x402 protocol version */
92
+ x402Version: number;
93
+ /** Resource information */
94
+ resource?: {
95
+ url?: string;
96
+ description?: string;
97
+ mimeType?: string;
98
+ };
99
+ /** Accepted payment requirements */
100
+ accepted: PaymentRequirements;
101
+ /** Payment payload data */
102
+ payload: {
103
+ /** Buyer's EIP-712 signature */
104
+ signature: string;
105
+ /** Payment permit */
106
+ paymentPermit: PaymentPermit;
107
+ };
108
+ /** Extensions */
109
+ extensions?: Record<string, unknown>;
110
+ }
111
+ //# sourceMappingURL=payment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../src/types/payment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Payment-related type definitions for x402 protocol
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=payment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.js","sourceRoot":"","sources":["../../src/types/payment.ts"],"names":[],"mappings":"AAAA;;GAEG"}