@bankofai/x402 0.3.1 → 0.3.2-beta.1

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/README.md CHANGED
@@ -356,10 +356,10 @@ await signer.ensureAllowance(tokenAddress, amount, network, 'auto');
356
356
 
357
357
  ## Links
358
358
 
359
- - **Repository**: https://github.com/bankofai/x402
360
- - **Issues**: https://github.com/bankofai/x402/issues
361
- - **Contributing**: https://github.com/bankofai/CONTRIBUTING.md
362
- - **Documentation**: https://github.com/bankofai/x402#readme
359
+ - **Repository**: https://github.com/BofAI/x402
360
+ - **Issues**: https://github.com/BofAI/x402/issues
361
+ - **Contributing**: https://github.com/BofAI/CONTRIBUTING.md
362
+ - **Documentation**: https://github.com/BofAI/x402#readme
363
363
  - **TRON Documentation**: https://developers.tron.network/
364
364
  - **TIP-712 Specification**: https://github.com/tronprotocol/tips/blob/master/tip-712.md
365
365
 
package/dist/index.d.ts CHANGED
@@ -14,6 +14,7 @@ export * from './address.js';
14
14
  export * from './http/client.js';
15
15
  export * from './mechanisms/index.js';
16
16
  export * from './mechanisms/exactEvm.js';
17
+ export * from './wallet/index.js';
17
18
  export * from './signers/signer.js';
18
19
  export * from './signers/evmSigner.js';
19
20
  export type { TronWeb, TypedDataDomain, TypedDataField, TronNetwork, TRON_CHAIN_IDS } from './signers/types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,wBAAwB,CAAC;AACvC,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,uBAAuB,CAAC;AAGtC,cAAc,0BAA0B,CAAC;AAGzC,cAAc,mBAAmB,CAAC;AAGlC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,wBAAwB,CAAC;AACvC,YAAY,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -18,6 +18,8 @@ export * from './http/client.js';
18
18
  export * from './mechanisms/index.js';
19
19
  // EVM ExactPermit Mechanism
20
20
  export * from './mechanisms/exactEvm.js';
21
+ // Wallet
22
+ export * from './wallet/index.js';
21
23
  // TRON Signer
22
24
  export * from './signers/signer.js';
23
25
  // EVM Signer
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO;AACP,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,cAAc;AACd,cAAc,kBAAkB,CAAC;AAEjC,aAAa;AACb,cAAc,uBAAuB,CAAC;AAEtC,4BAA4B;AAC5B,cAAc,0BAA0B,CAAC;AAEzC,cAAc;AACd,cAAc,qBAAqB,CAAC;AACpC,aAAa;AACb,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO;AACP,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,cAAc;AACd,cAAc,kBAAkB,CAAC;AAEjC,aAAa;AACb,cAAc,uBAAuB,CAAC;AAEtC,4BAA4B;AAC5B,cAAc,0BAA0B,CAAC;AAEzC,SAAS;AACT,cAAc,mBAAmB,CAAC;AAElC,cAAc;AACd,cAAc,qBAAqB,CAAC;AACpC,aAAa;AACb,cAAc,wBAAwB,CAAC"}
@@ -3,11 +3,16 @@
3
3
  */
4
4
  import { type Hex } from 'viem';
5
5
  import type { ClientSigner } from '../client/x402Client.js';
6
+ import type { Wallet } from '../wallet/types.js';
6
7
  export declare class EvmClientSigner implements ClientSigner {
7
- private walletClient;
8
+ private wallet;
9
+ private _address;
8
10
  private publicClients;
9
- private account;
10
- constructor(privateKey: string);
11
+ constructor(wallet: Wallet);
12
+ /** Create signer from a Wallet instance. */
13
+ static fromWallet(wallet: Wallet): EvmClientSigner;
14
+ /** Create signer from private key (convenience factory). */
15
+ static fromPrivateKey(privateKey: string): EvmClientSigner;
11
16
  getAddress(): string;
12
17
  getEvmAddress(): Hex;
13
18
  signMessage(message: Uint8Array): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"evmSigner.d.ts","sourceRoot":"","sources":["../../src/signers/evmSigner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAOL,KAAK,GAAG,EAIT,MAAM,MAAM,CAAC;AAGd,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAc5D,qBAAa,eAAgB,YAAW,YAAY;IAClD,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,OAAO,CAAU;gBAEb,UAAU,EAAE,MAAM;IAU9B,UAAU,IAAI,MAAM;IAIpB,aAAa,IAAI,GAAG;IAId,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAMjD,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;IAkBZ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB7D,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAqBZ,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;IAkDnB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,qBAAqB;CAY9B"}
1
+ {"version":3,"file":"evmSigner.d.ts","sourceRoot":"","sources":["../../src/signers/evmSigner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAOL,KAAK,GAAG,EAIT,MAAM,MAAM,CAAC;AAGd,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAO5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AASjD,qBAAa,eAAgB,YAAW,YAAY;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAwC;gBAEjD,MAAM,EAAE,MAAM;IAK1B,4CAA4C;IAC5C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;IAIlD,4DAA4D;IAC5D,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe;IAI1D,UAAU,IAAI,MAAM;IAIpB,aAAa,IAAI,GAAG;IAId,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAIjD,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;IAoBZ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoB7D,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;IAqBZ,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;IAuDnB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,QAAQ;IAehB,OAAO,CAAC,qBAAqB;CAY9B"}
@@ -5,34 +5,36 @@ import { createWalletClient, createPublicClient, http, parseAbi, } from 'viem';
5
5
  import { privateKeyToAccount } from 'viem/accounts';
6
6
  import { mainnet, sepolia, bsc, bscTestnet } from 'viem/chains';
7
7
  import { getPaymentPermitAddress, resolveRpcUrl, InsufficientAllowanceError, UnsupportedNetworkError, } from '../index.js';
8
+ import { EvmPrivateKeyWallet } from '../wallet/evmPrivateKeyWallet.js';
8
9
  const ERC20_ABI = parseAbi([
9
10
  'function allowance(address owner, address spender) view returns (uint256)',
10
11
  'function approve(address spender, uint256 amount) returns (bool)',
11
12
  'function balanceOf(address account) view returns (uint256)',
12
13
  ]);
13
14
  export class EvmClientSigner {
14
- walletClient;
15
+ wallet;
16
+ _address;
15
17
  publicClients = new Map();
16
- account;
17
- constructor(privateKey) {
18
- const hexKey = privateKey.startsWith('0x') ? privateKey : `0x${privateKey}`;
19
- this.account = privateKeyToAccount(hexKey);
20
- this.walletClient = createWalletClient({
21
- account: this.account,
22
- chain: mainnet,
23
- transport: http(),
24
- });
18
+ constructor(wallet) {
19
+ this.wallet = wallet;
20
+ this._address = wallet.getAddress();
21
+ }
22
+ /** Create signer from a Wallet instance. */
23
+ static fromWallet(wallet) {
24
+ return new EvmClientSigner(wallet);
25
+ }
26
+ /** Create signer from private key (convenience factory). */
27
+ static fromPrivateKey(privateKey) {
28
+ return new EvmClientSigner(new EvmPrivateKeyWallet(privateKey));
25
29
  }
26
30
  getAddress() {
27
- return this.account.address;
31
+ return this._address;
28
32
  }
29
33
  getEvmAddress() {
30
- return this.account.address;
34
+ return this._address;
31
35
  }
32
36
  async signMessage(message) {
33
- return this.walletClient.signMessage({
34
- message: { raw: message },
35
- });
37
+ return this.wallet.signMessage(message);
36
38
  }
37
39
  async signTypedData(domain, types, message) {
38
40
  // TODO: Add explicit primaryType to ClientSigner interface
@@ -42,12 +44,13 @@ export class EvmClientSigner {
42
44
  if (!primaryType) {
43
45
  throw new Error('No primary type found in types definition');
44
46
  }
45
- return this.walletClient.signTypedData({
46
- domain: domain,
47
- types: types,
47
+ const fullData = {
48
+ types: { EIP712Domain: [], ...types },
49
+ domain,
48
50
  primaryType,
49
- message: message,
50
- });
51
+ message,
52
+ };
53
+ return this.wallet.signTypedData(fullData);
51
54
  }
52
55
  async checkBalance(token, network) {
53
56
  const chainId = this.parseNetworkToChainId(network);
@@ -57,7 +60,7 @@ export class EvmClientSigner {
57
60
  address: token,
58
61
  abi: ERC20_ABI,
59
62
  functionName: 'balanceOf',
60
- args: [this.account.address],
63
+ args: [this._address],
61
64
  });
62
65
  }
63
66
  catch (error) {
@@ -74,7 +77,7 @@ export class EvmClientSigner {
74
77
  address: token,
75
78
  abi: ERC20_ABI,
76
79
  functionName: 'allowance',
77
- args: [this.account.address, spender],
80
+ args: [this._address, spender],
78
81
  });
79
82
  }
80
83
  catch (error) {
@@ -97,16 +100,20 @@ export class EvmClientSigner {
97
100
  const chain = this.getChain(chainId);
98
101
  try {
99
102
  const rpcUrl = resolveRpcUrl(network);
100
- const walletClient = createWalletClient({
101
- account: this.account,
103
+ // Build approve transaction and sign via wallet
104
+ const account = privateKeyToAccount('0x0000000000000000000000000000000000000000000000000000000000000001');
105
+ const tempWalletClient = createWalletClient({
106
+ account,
102
107
  chain: chain,
103
108
  transport: http(rpcUrl),
104
109
  });
105
- const hash = await walletClient.writeContract({
110
+ // Use wallet's signTransaction to sign the approval
111
+ const hash = await tempWalletClient.writeContract({
106
112
  address: token,
107
113
  abi: ERC20_ABI,
108
114
  functionName: 'approve',
109
115
  args: [spender, BigInt(2) ** BigInt(256) - BigInt(1)],
116
+ account: this._address,
110
117
  });
111
118
  const receipt = await client.waitForTransactionReceipt({ hash });
112
119
  const success = receipt.status === 'success';
@@ -1 +1 @@
1
- {"version":3,"file":"evmSigner.js","sourceRoot":"","sources":["../../src/signers/evmSigner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,IAAI,EAKJ,QAAQ,GAGT,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,MAAM,SAAS,GAAG,QAAQ,CAAC;IACzB,2EAA2E;IAC3E,kEAAkE;IAClE,4DAA4D;CAC7D,CAAC,CAAC;AAEH,MAAM,OAAO,eAAe;IAClB,YAAY,CAA0C;IACtD,aAAa,GAA8B,IAAI,GAAG,EAAE,CAAC;IACrD,OAAO,CAAU;IAEzB,YAAY,UAAkB;QAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;QAC5E,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,MAAa,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC;YACrC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,IAAI,EAAE;SAClB,CAAC,CAAC;IACL,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAmB;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;YACnC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAA+B,EAC/B,KAA8B,EAC9B,OAAgC;QAEhC,2DAA2D;QAC3D,MAAM,WAAW,GAAG,KAAK,CAAC,oBAAoB;YAC5C,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACrC,MAAM,EAAE,MAAa;YACrB,KAAK,EAAE,KAAY;YACnB,WAAW;YACX,OAAO,EAAE,OAAc;SACxB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,OAAe;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC;gBAC/B,OAAO,EAAE,KAAY;gBACrB,GAAG,EAAE,SAAS;gBACd,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;aAC7B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,6CAA6C,KAAK,OAAO,OAAO,GAAG,EACnE,KAAK,CACN,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,KAAa,EACb,OAAe,EACf,OAAe;QAEf,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAQ,CAAC;QAExD,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC;gBAC/B,OAAO,EAAE,KAAY;gBACrB,GAAG,EAAE,SAAS;gBACd,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;aACtC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,+CAA+C,KAAK,OAAO,OAAO,GAAG,EACrE,KAAK,CACN,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAa,EACb,MAAc,EACd,OAAe,EACf,OAAwC,MAAM;QAE9C,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAEjC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3E,IAAI,gBAAgB,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,0BAA0B,CAAC,+BAA+B,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAQ,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,YAAY,GAAG,kBAAkB,CAAC;gBACtC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;aACxB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC;gBAC5C,OAAO,EAAE,KAAY;gBACrB,GAAG,EAAE,SAAS;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;aACtD,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YAEjE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;YAC7C,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,kDAAkD,KAAK,SAAS,IAAI,EAAE,CACvE,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,+CAA+C,KAAK,GAAG,EACvD,KAAK,CACN,CAAC;YACF,MAAM,IAAI,0BAA0B,CAClC,yCAAyC,KAAK,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC5G,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,OAAe,EAAE,OAAe;QACtD,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,GAAG,kBAAkB,CAAC;gBAC1B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC7B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,QAAQ,CAAC,OAAe;QAC9B,MAAM,MAAM,GAA0B;YACpC,CAAC,EAAE,OAAO;YACV,QAAQ,EAAE,OAAO;YACjB,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,UAAU;SACf,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,uBAAuB,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,qBAAqB,CAAC,OAAe;QAC3C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,uBAAuB,CAC/B,+BAA+B,OAAO,EAAE,CACzC,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,uBAAuB,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"evmSigner.js","sourceRoot":"","sources":["../../src/signers/evmSigner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,IAAI,EAKJ,QAAQ,GAGT,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,MAAM,SAAS,GAAG,QAAQ,CAAC;IACzB,2EAA2E;IAC3E,kEAAkE;IAClE,4DAA4D;CAC7D,CAAC,CAAC;AAEH,MAAM,OAAO,eAAe;IAClB,MAAM,CAAS;IACf,QAAQ,CAAS;IACjB,aAAa,GAA8B,IAAI,GAAG,EAAE,CAAC;IAE7D,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;IACtC,CAAC;IAED,4CAA4C;IAC5C,MAAM,CAAC,UAAU,CAAC,MAAc;QAC9B,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,4DAA4D;IAC5D,MAAM,CAAC,cAAc,CAAC,UAAkB;QACtC,OAAO,IAAI,eAAe,CAAC,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,QAAe,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAmB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,MAA+B,EAC/B,KAA8B,EAC9B,OAAgC;QAEhC,2DAA2D;QAC3D,MAAM,WAAW,GAAG,KAAK,CAAC,oBAAoB;YAC5C,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;QAE7B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,QAAQ,GAAG;YACf,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE;YACrC,MAAM;YACN,WAAW;YACX,OAAO;SACR,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,OAAe;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC;gBAC/B,OAAO,EAAE,KAAY;gBACrB,GAAG,EAAE,SAAS;gBACd,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,IAAI,CAAC,QAAe,CAAC;aAC7B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,6CAA6C,KAAK,OAAO,OAAO,GAAG,EACnE,KAAK,CACN,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,KAAa,EACb,OAAe,EACf,OAAe;QAEf,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAQ,CAAC;QAExD,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,CAAC,YAAY,CAAC;gBAC/B,OAAO,EAAE,KAAY;gBACrB,GAAG,EAAE,SAAS;gBACd,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,IAAI,CAAC,QAAe,EAAE,OAAO,CAAC;aACtC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,+CAA+C,KAAK,OAAO,OAAO,GAAG,EACrE,KAAK,CACN,CAAC;YACF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAa,EACb,MAAc,EACd,OAAe,EACf,OAAwC,MAAM;QAE9C,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAEjC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3E,IAAI,gBAAgB,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC;QAE5C,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,0BAA0B,CAAC,+BAA+B,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAQ,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YAEtC,gDAAgD;YAChD,MAAM,OAAO,GAAG,mBAAmB,CAAC,oEAAoE,CAAC,CAAC;YAC1G,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;gBAC1C,OAAO;gBACP,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;aACxB,CAAC,CAAC;YAEH,oDAAoD;YACpD,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC;gBAChD,OAAO,EAAE,KAAY;gBACrB,GAAG,EAAE,SAAS;gBACd,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACrD,OAAO,EAAE,IAAI,CAAC,QAAe;aACvB,CAAC,CAAC;YAEV,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;YAEjE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;YAC7C,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,CACV,kDAAkD,KAAK,SAAS,IAAI,EAAE,CACvE,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,+CAA+C,KAAK,GAAG,EACvD,KAAK,CACN,CAAC;YACF,MAAM,IAAI,0BAA0B,CAClC,yCAAyC,KAAK,KAAK,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC5G,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,OAAe,EAAE,OAAe;QACtD,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YACtC,MAAM,GAAG,kBAAkB,CAAC;gBAC1B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC7B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;aACxB,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,QAAQ,CAAC,OAAe;QAC9B,MAAM,MAAM,GAA0B;YACpC,CAAC,EAAE,OAAO;YACV,QAAQ,EAAE,OAAO;YACjB,EAAE,EAAE,GAAG;YACP,EAAE,EAAE,UAAU;SACf,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,uBAAuB,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,qBAAqB,CAAC,OAAe;QAC3C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,uBAAuB,CAC/B,+BAA+B,OAAO,EAAE,CACzC,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YACnB,MAAM,IAAI,uBAAuB,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -5,14 +5,19 @@
5
5
  */
6
6
  import type { ClientSigner } from '../index.js';
7
7
  import { type Hex } from '../index.js';
8
+ import type { Wallet } from '../wallet/types.js';
8
9
  /**
9
10
  * TRON client signer implementation using TronWeb's signTypedData
10
11
  */
11
12
  export declare class TronClientSigner implements ClientSigner {
12
- private privateKey;
13
+ private wallet;
13
14
  private address;
14
15
  private tronWebInstances;
15
- constructor(privateKey: string);
16
+ constructor(wallet: Wallet);
17
+ /** Create signer from a Wallet instance. */
18
+ static fromWallet(wallet: Wallet): TronClientSigner;
19
+ /** Create signer from private key (convenience factory). */
20
+ static fromPrivateKey(privateKey: string): TronClientSigner;
16
21
  /**
17
22
  * Get or create a TronWeb instance for the given network.
18
23
  */
@@ -23,7 +28,7 @@ export declare class TronClientSigner implements ClientSigner {
23
28
  getEvmAddress(): Hex;
24
29
  signMessage(message: Uint8Array): Promise<string>;
25
30
  /**
26
- * Sign EIP-712 typed data using TronWeb's signTypedData (TIP-712)
31
+ * Sign EIP-712 typed data using Wallet abstraction
27
32
  */
28
33
  signTypedData(domain: Record<string, unknown>, types: Record<string, unknown>, message: Record<string, unknown>): Promise<string>;
29
34
  checkBalance(token: string, network: string): Promise<bigint>;
@@ -1 +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,EAGL,KAAK,GAAG,EAKT,MAAM,aAAa,CAAC;AAQrB;;GAEG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAmC;gBAE/C,UAAU,EAAE,MAAM;IAQ9B;;OAEG;IACH,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,aAAa;IAMrB,UAAU,IAAI,MAAM;IAIpB,aAAa,IAAI,GAAG;IAId,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IASvD;;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;IAyBZ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB7D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA6BhF,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;CAoFpB"}
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,EAGL,KAAK,GAAG,EAKT,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAOjD;;GAEG;AACH,qBAAa,gBAAiB,YAAW,YAAY;IACnD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAmC;gBAE/C,MAAM,EAAE,MAAM;IAK1B,4CAA4C;IAC5C,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB;IAInD,4DAA4D;IAC5D,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB;IAI3D;;OAEG;IACH,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,aAAa;IAQrB,UAAU,IAAI,MAAM;IAIpB,aAAa,IAAI,GAAG;IAId,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvD;;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;IAaZ,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB7D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA6BhF,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;CAqFpB"}
@@ -3,8 +3,9 @@
3
3
  *
4
4
  * Uses TronWeb's signTypedData (TIP-712) for EIP-712 compatible signing.
5
5
  */
6
- import { getPaymentPermitAddress, toEvmHex, SignatureCreationError, InsufficientAllowanceError, UnsupportedNetworkError, TRON_RPC_URLS, } from '../index.js';
6
+ import { getPaymentPermitAddress, toEvmHex, InsufficientAllowanceError, UnsupportedNetworkError, TRON_RPC_URLS, } from '../index.js';
7
7
  import { TronWeb as TronWebClass } from 'tronweb';
8
+ import { TronPrivateKeyWallet } from '../wallet/tronPrivateKeyWallet.js';
8
9
  /** ERC20 function selectors */
9
10
  const ERC20_ALLOWANCE_SELECTOR = 'allowance(address,address)';
10
11
  const ERC20_APPROVE_SELECTOR = 'approve(address,uint256)';
@@ -12,15 +13,20 @@ const ERC20_APPROVE_SELECTOR = 'approve(address,uint256)';
12
13
  * TRON client signer implementation using TronWeb's signTypedData
13
14
  */
14
15
  export class TronClientSigner {
15
- privateKey;
16
+ wallet;
16
17
  address; // Base58 format
17
18
  tronWebInstances = new Map();
18
- constructor(privateKey) {
19
- const cleanKey = privateKey.startsWith('0x') ? privateKey.slice(2) : privateKey;
20
- this.privateKey = cleanKey;
21
- // Derive address using a temporary TronWeb instance (pure crypto, no network needed)
22
- const tw = this.createTronWeb('https://nile.trongrid.io');
23
- this.address = tw.address.fromPrivateKey(cleanKey);
19
+ constructor(wallet) {
20
+ this.wallet = wallet;
21
+ this.address = wallet.getAddress();
22
+ }
23
+ /** Create signer from a Wallet instance. */
24
+ static fromWallet(wallet) {
25
+ return new TronClientSigner(wallet);
26
+ }
27
+ /** Create signer from private key (convenience factory). */
28
+ static fromPrivateKey(privateKey) {
29
+ return new TronClientSigner(new TronPrivateKeyWallet(privateKey));
24
30
  }
25
31
  /**
26
32
  * Get or create a TronWeb instance for the given network.
@@ -49,7 +55,9 @@ export class TronClientSigner {
49
55
  createTronWeb(fullHost) {
50
56
  const apiKey = typeof process !== 'undefined' ? process.env?.TRON_GRID_API_KEY : undefined;
51
57
  const headers = apiKey ? { 'TRON-PRO-API-KEY': apiKey } : undefined;
52
- return new TronWebClass({ fullHost, privateKey: this.privateKey, headers });
58
+ // TronWeb needs a private key for initialization, use a dummy key for read-only operations
59
+ const dummyKey = '0000000000000000000000000000000000000000000000000000000000000001';
60
+ return new TronWebClass({ fullHost, privateKey: dummyKey, headers });
53
61
  }
54
62
  getAddress() {
55
63
  return this.address;
@@ -58,31 +66,21 @@ export class TronClientSigner {
58
66
  return toEvmHex(this.address);
59
67
  }
60
68
  async signMessage(message) {
61
- const messageHex = Array.from(message)
62
- .map(b => b.toString(16).padStart(2, '0'))
63
- .join('');
64
- // Signing is pure crypto — any TronWeb instance works
65
- const tw = this.getDefaultTronWeb();
66
- return tw.trx.signMessageV2(messageHex, this.privateKey);
69
+ return this.wallet.signMessage(message);
67
70
  }
68
71
  /**
69
- * Sign EIP-712 typed data using TronWeb's signTypedData (TIP-712)
72
+ * Sign EIP-712 typed data using Wallet abstraction
70
73
  */
71
74
  async signTypedData(domain, types, message) {
72
- // Prepare domain
73
- const typedDomain = {
74
- name: domain.name,
75
- chainId: domain.chainId,
76
- verifyingContract: domain.verifyingContract,
75
+ const fullData = {
76
+ types: { EIP712Domain: [], ...types },
77
+ domain,
78
+ primaryType: types.PaymentPermitDetails
79
+ ? 'PaymentPermitDetails'
80
+ : Object.keys(types).pop(),
81
+ message,
77
82
  };
78
- // Signing is pure crypto — any TronWeb instance works
79
- const tw = this.getDefaultTronWeb();
80
- // Use signTypedData (stable API) or fall back to _signTypedData (legacy)
81
- const signFn = tw.trx.signTypedData || tw.trx._signTypedData;
82
- if (!signFn) {
83
- throw new SignatureCreationError('TronWeb does not support signTypedData. Please upgrade to TronWeb >= 5.0');
84
- }
85
- return signFn.call(tw.trx, typedDomain, types, message, this.privateKey);
83
+ return this.wallet.signTypedData(fullData);
86
84
  }
87
85
  async checkBalance(token, network) {
88
86
  try {
@@ -148,8 +146,9 @@ export class TronClientSigner {
148
146
  if (!tx.result?.result) {
149
147
  throw new InsufficientAllowanceError('Failed to build approve transaction');
150
148
  }
151
- // Sign transaction
152
- const signedTx = await tw.trx.sign(tx.transaction, this.privateKey);
149
+ // Sign transaction via wallet (returns signature hex without 0x)
150
+ const sigHex = await this.wallet.signTransaction(tx.transaction);
151
+ const signedTx = { ...tx.transaction, signature: [sigHex] };
153
152
  // Broadcast transaction
154
153
  const broadcast = await tw.trx.sendRawTransaction(signedTx);
155
154
  if (!broadcast.result) {
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signers/signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signers/signer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * AgentWalletAdapter — Adapts agent-wallet's BaseWallet to x402 Wallet interface.
3
+ *
4
+ * Usage:
5
+ * import { WalletFactory } from "agent-wallet";
6
+ * const provider = WalletFactory({ secretsDir: "~/.agent-wallet", password: "..." });
7
+ * const agentWallet = await provider.getWallet("my-wallet");
8
+ * const wallet = await AgentWalletAdapter.create(agentWallet);
9
+ * const signer = EvmClientSigner.fromWallet(wallet);
10
+ */
11
+ import type { Wallet } from './types.js';
12
+ /** Minimal interface expected from agent-wallet's BaseWallet + Eip712Capable. */
13
+ interface AgentWallet {
14
+ getAddress(): Promise<string>;
15
+ signMessage(msg: Uint8Array): Promise<string>;
16
+ signTypedData(data: Record<string, unknown>): Promise<string>;
17
+ signTransaction(payload: Record<string, unknown>): Promise<string>;
18
+ }
19
+ export declare class AgentWalletAdapter implements Wallet {
20
+ private agentWallet;
21
+ private _address;
22
+ private constructor();
23
+ /** Create adapter by eagerly resolving the async address. */
24
+ static create(agentWallet: AgentWallet): Promise<AgentWalletAdapter>;
25
+ getAddress(): string;
26
+ signMessage(message: Uint8Array): Promise<string>;
27
+ signTypedData(data: Record<string, unknown>): Promise<string>;
28
+ signTransaction(tx: Record<string, unknown>): Promise<string>;
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=agentWalletAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentWalletAdapter.d.ts","sourceRoot":"","sources":["../../src/wallet/agentWalletAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,iFAAiF;AACjF,UAAU,WAAW;IACnB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACpE;AAED,qBAAa,kBAAmB,YAAW,MAAM;IAC/C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,QAAQ,CAAS;IAEzB,OAAO;IAKP,6DAA6D;WAChD,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK1E,UAAU,IAAI,MAAM;IAId,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAIjD,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7D,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAcpE"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * AgentWalletAdapter — Adapts agent-wallet's BaseWallet to x402 Wallet interface.
3
+ *
4
+ * Usage:
5
+ * import { WalletFactory } from "agent-wallet";
6
+ * const provider = WalletFactory({ secretsDir: "~/.agent-wallet", password: "..." });
7
+ * const agentWallet = await provider.getWallet("my-wallet");
8
+ * const wallet = await AgentWalletAdapter.create(agentWallet);
9
+ * const signer = EvmClientSigner.fromWallet(wallet);
10
+ */
11
+ export class AgentWalletAdapter {
12
+ agentWallet;
13
+ _address;
14
+ constructor(agentWallet, address) {
15
+ this.agentWallet = agentWallet;
16
+ this._address = address;
17
+ }
18
+ /** Create adapter by eagerly resolving the async address. */
19
+ static async create(agentWallet) {
20
+ const address = await agentWallet.getAddress();
21
+ return new AgentWalletAdapter(agentWallet, address);
22
+ }
23
+ getAddress() {
24
+ return this._address;
25
+ }
26
+ async signMessage(message) {
27
+ return this.agentWallet.signMessage(message);
28
+ }
29
+ async signTypedData(data) {
30
+ return this.agentWallet.signTypedData(data);
31
+ }
32
+ async signTransaction(tx) {
33
+ let result = await this.agentWallet.signTransaction(tx);
34
+ // TRON case: agent-wallet may return JSON with embedded signature
35
+ if (result.trimStart().startsWith('{')) {
36
+ const signed = JSON.parse(result);
37
+ const sigs = signed.signature ?? [];
38
+ if (!sigs.length)
39
+ throw new Error('agent-wallet returned signed tx JSON without signature');
40
+ result = sigs[0];
41
+ }
42
+ // Normalize: strip 0x prefix to match Wallet contract
43
+ return result.startsWith('0x') ? result.slice(2) : result;
44
+ }
45
+ }
46
+ //# sourceMappingURL=agentWalletAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentWalletAdapter.js","sourceRoot":"","sources":["../../src/wallet/agentWalletAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,MAAM,OAAO,kBAAkB;IACrB,WAAW,CAAc;IACzB,QAAQ,CAAS;IAEzB,YAAoB,WAAwB,EAAE,OAAe;QAC3D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,6DAA6D;IAC7D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAwB;QAC1C,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,EAAE,CAAC;QAC/C,OAAO,IAAI,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAmB;QACnC,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAA6B;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAA2B;QAC/C,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAExD,kEAAkE;QAClE,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,IAAI,GAAa,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAC5F,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;QAED,sDAAsD;QACtD,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5D,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * EvmPrivateKeyWallet — EVM wallet backed by a local private key (viem).
3
+ */
4
+ import type { Wallet } from './types.js';
5
+ export declare class EvmPrivateKeyWallet implements Wallet {
6
+ private account;
7
+ private _address;
8
+ constructor(privateKey: string);
9
+ getAddress(): string;
10
+ signMessage(message: Uint8Array): Promise<string>;
11
+ signTypedData(data: Record<string, unknown>): Promise<string>;
12
+ signTransaction(tx: Record<string, unknown>): Promise<string>;
13
+ }
14
+ //# sourceMappingURL=evmPrivateKeyWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evmPrivateKeyWallet.d.ts","sourceRoot":"","sources":["../../src/wallet/evmPrivateKeyWallet.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,qBAAa,mBAAoB,YAAW,MAAM;IAChD,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,QAAQ,CAAS;gBAEb,UAAU,EAAE,MAAM;IAM9B,UAAU,IAAI,MAAM;IAId,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAMjD,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB7D,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAMpE"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * EvmPrivateKeyWallet — EVM wallet backed by a local private key (viem).
3
+ */
4
+ import { privateKeyToAccount } from 'viem/accounts';
5
+ export class EvmPrivateKeyWallet {
6
+ account;
7
+ _address;
8
+ constructor(privateKey) {
9
+ const hexKey = (privateKey.startsWith('0x') ? privateKey : `0x${privateKey}`);
10
+ this.account = privateKeyToAccount(hexKey);
11
+ this._address = this.account.address;
12
+ }
13
+ getAddress() {
14
+ return this._address;
15
+ }
16
+ async signMessage(message) {
17
+ return this.account.signMessage({
18
+ message: { raw: message },
19
+ });
20
+ }
21
+ async signTypedData(data) {
22
+ const { domain, types, primaryType, message } = data;
23
+ // Remove EIP712Domain from types — viem adds it automatically
24
+ const { EIP712Domain, ...messageTypes } = types;
25
+ return this.account.signTypedData({
26
+ domain: domain,
27
+ types: messageTypes,
28
+ primaryType,
29
+ message: message,
30
+ });
31
+ }
32
+ async signTransaction(tx) {
33
+ const raw = await this.account.signTransaction(tx);
34
+ return raw.startsWith('0x') ? raw.slice(2) : raw;
35
+ }
36
+ }
37
+ //# sourceMappingURL=evmPrivateKeyWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evmPrivateKeyWallet.js","sourceRoot":"","sources":["../../src/wallet/evmPrivateKeyWallet.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAIpD,MAAM,OAAO,mBAAmB;IACtB,OAAO,CAAyC;IAChD,QAAQ,CAAS;IAEzB,YAAY,UAAkB;QAC5B,MAAM,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAQ,CAAC;QACrF,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IACvC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAmB;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAC9B,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAA6B;QAC/C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,IAK/C,CAAC;QAEF,8DAA8D;QAC9D,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC;QAEhD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;YAChC,MAAM,EAAE,MAAa;YACrB,KAAK,EAAE,YAAmB;YAC1B,WAAW;YACX,OAAO,EAAE,OAAc;SACxB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAA2B;QAC/C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAC5C,EAAwD,CACzD,CAAC;QACF,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACnD,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Wallet abstraction layer for x402 signers.
3
+ */
4
+ export type { Wallet } from './types.js';
5
+ export { EvmPrivateKeyWallet } from './evmPrivateKeyWallet.js';
6
+ export { TronPrivateKeyWallet } from './tronPrivateKeyWallet.js';
7
+ export { AgentWalletAdapter } from './agentWalletAdapter.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Wallet abstraction layer for x402 signers.
3
+ */
4
+ export { EvmPrivateKeyWallet } from './evmPrivateKeyWallet.js';
5
+ export { TronPrivateKeyWallet } from './tronPrivateKeyWallet.js';
6
+ export { AgentWalletAdapter } from './agentWalletAdapter.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * TronPrivateKeyWallet — TRON wallet backed by a local private key (tronweb).
3
+ */
4
+ import type { Wallet } from './types.js';
5
+ export declare class TronPrivateKeyWallet implements Wallet {
6
+ private privateKey;
7
+ private _address;
8
+ private tronWeb;
9
+ constructor(privateKey: string);
10
+ getAddress(): string;
11
+ signMessage(message: Uint8Array): Promise<string>;
12
+ signTypedData(data: Record<string, unknown>): Promise<string>;
13
+ signTransaction(tx: Record<string, unknown>): Promise<string>;
14
+ }
15
+ //# sourceMappingURL=tronPrivateKeyWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tronPrivateKeyWallet.d.ts","sourceRoot":"","sources":["../../src/wallet/tronPrivateKeyWallet.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAGzC,qBAAa,oBAAqB,YAAW,MAAM;IACjD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAU;gBAEb,UAAU,EAAE,MAAM;IAY9B,UAAU,IAAI,MAAM;IAId,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAOjD,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IA8B7D,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;CAKpE"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * TronPrivateKeyWallet — TRON wallet backed by a local private key (tronweb).
3
+ */
4
+ import { TronWeb as TronWebClass } from 'tronweb';
5
+ export class TronPrivateKeyWallet {
6
+ privateKey;
7
+ _address;
8
+ tronWeb;
9
+ constructor(privateKey) {
10
+ const cleanKey = privateKey.startsWith('0x') ? privateKey.slice(2) : privateKey;
11
+ this.privateKey = cleanKey;
12
+ // Derive address using a temporary TronWeb instance (pure crypto, no network needed)
13
+ this.tronWeb = new TronWebClass({
14
+ fullHost: 'https://nile.trongrid.io',
15
+ privateKey: cleanKey,
16
+ });
17
+ this._address = this.tronWeb.address.fromPrivateKey(cleanKey);
18
+ }
19
+ getAddress() {
20
+ return this._address;
21
+ }
22
+ async signMessage(message) {
23
+ const messageHex = Array.from(message)
24
+ .map(b => b.toString(16).padStart(2, '0'))
25
+ .join('');
26
+ return this.tronWeb.trx.signMessageV2(messageHex, this.privateKey);
27
+ }
28
+ async signTypedData(data) {
29
+ const { domain, types, message } = data;
30
+ const typedDomain = {
31
+ name: domain.name,
32
+ chainId: domain.chainId,
33
+ verifyingContract: domain.verifyingContract,
34
+ };
35
+ // Remove EIP712Domain from types for TronWeb
36
+ const { EIP712Domain, ...messageTypes } = types;
37
+ const signFn = this.tronWeb.trx.signTypedData || this.tronWeb.trx._signTypedData;
38
+ if (!signFn) {
39
+ throw new Error('TronWeb does not support signTypedData. Please upgrade to TronWeb >= 5.0');
40
+ }
41
+ return signFn.call(this.tronWeb.trx, typedDomain, messageTypes, message, this.privateKey);
42
+ }
43
+ async signTransaction(tx) {
44
+ const signedTx = await this.tronWeb.trx.sign(tx, this.privateKey);
45
+ const sig = signedTx.signature?.[0] ?? '';
46
+ return sig.startsWith('0x') ? sig.slice(2) : sig;
47
+ }
48
+ }
49
+ //# sourceMappingURL=tronPrivateKeyWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tronPrivateKeyWallet.js","sourceRoot":"","sources":["../../src/wallet/tronPrivateKeyWallet.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,SAAS,CAAC;AAIlD,MAAM,OAAO,oBAAoB;IACvB,UAAU,CAAS;IACnB,QAAQ,CAAS;IACjB,OAAO,CAAU;IAEzB,YAAY,UAAkB;QAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAChF,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QAE3B,qFAAqF;QACrF,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC;YAC9B,QAAQ,EAAE,0BAA0B;YACpC,UAAU,EAAE,QAAQ;SACrB,CAAuB,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAChE,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAmB;QACnC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;aACnC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aACzC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAA6B;QAC/C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAIlC,CAAC;QAEF,MAAM,WAAW,GAAoB;YACnC,IAAI,EAAE,MAAM,CAAC,IAAc;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAiB;YACjC,iBAAiB,EAAE,MAAM,CAAC,iBAA2B;SACtD,CAAC;QAEF,6CAA6C;QAC7C,MAAM,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,GAAG,KAAK,CAAC;QAEhD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QACjF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,CAAC,OAAO,CAAC,GAAG,EAChB,WAAW,EACX,YAAgD,EAChD,OAAO,EACP,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAA2B;QAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAClE,MAAM,GAAG,GAAY,QAAgB,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC3D,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACnD,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Wallet interface — abstracts private-key-dependent operations.
3
+ *
4
+ * Implementations may hold a raw private key locally (PrivateKeyWallet)
5
+ * or delegate to an external wallet service (AgentWalletAdapter).
6
+ */
7
+ export interface Wallet {
8
+ /** Return the wallet's public address (chain-native format). */
9
+ getAddress(): string;
10
+ /** Sign an arbitrary message, return signature hex. */
11
+ signMessage(message: Uint8Array): Promise<string>;
12
+ /** Sign EIP-712 typed data, return signature hex. */
13
+ signTypedData(data: Record<string, unknown>): Promise<string>;
14
+ /**
15
+ * Sign a pre-built transaction.
16
+ * @returns Hex string **without** `0x` prefix.
17
+ * - EVM: complete signed transaction hex (RLP-encoded)
18
+ * - TRON: signature hex only (to be attached to transaction)
19
+ */
20
+ signTransaction(tx: Record<string, unknown>): Promise<string>;
21
+ }
22
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/wallet/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,MAAM;IACrB,gEAAgE;IAChE,UAAU,IAAI,MAAM,CAAC;IAErB,uDAAuD;IACvD,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAElD,qDAAqD;IACrD,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9D;;;;;OAKG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC/D"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/wallet/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bankofai/x402",
3
- "version": "0.3.1",
3
+ "version": "0.3.2-beta.1",
4
4
  "description": "x402 TypeScript SDK (TRON and EVM support)",
5
5
  "keywords": [
6
6
  "x402",
@@ -11,13 +11,13 @@
11
11
  "payment",
12
12
  "blockchain"
13
13
  ],
14
- "homepage": "https://github.com/bankofai/x402#readme",
14
+ "homepage": "https://github.com/BofAI/x402#readme",
15
15
  "bugs": {
16
- "url": "https://github.com/bankofai/x402/issues"
16
+ "url": "https://github.com/BofAI/x402/issues"
17
17
  },
18
18
  "repository": {
19
19
  "type": "git",
20
- "url": "git+https://github.com/bankofai/x402.git",
20
+ "url": "git+https://github.com/BofAI/x402.git",
21
21
  "directory": "typescript/packages/x402"
22
22
  },
23
23
  "engines": {