@bankofai/x402 0.3.0 → 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.
Files changed (46) hide show
  1. package/README.md +4 -4
  2. package/dist/client/policies.d.ts +13 -3
  3. package/dist/client/policies.d.ts.map +1 -1
  4. package/dist/client/policies.js +28 -4
  5. package/dist/client/policies.js.map +1 -1
  6. package/dist/client/x402Client.d.ts +7 -1
  7. package/dist/client/x402Client.d.ts.map +1 -1
  8. package/dist/client/x402Client.js +11 -1
  9. package/dist/client/x402Client.js.map +1 -1
  10. package/dist/config.d.ts +9 -0
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +19 -0
  13. package/dist/config.js.map +1 -1
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +2 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/signers/evmSigner.d.ts +8 -4
  19. package/dist/signers/evmSigner.d.ts.map +1 -1
  20. package/dist/signers/evmSigner.js +41 -34
  21. package/dist/signers/evmSigner.js.map +1 -1
  22. package/dist/signers/signer.d.ts +13 -12
  23. package/dist/signers/signer.d.ts.map +1 -1
  24. package/dist/signers/signer.js +65 -60
  25. package/dist/signers/signer.js.map +1 -1
  26. package/dist/wallet/agentWalletAdapter.d.ts +31 -0
  27. package/dist/wallet/agentWalletAdapter.d.ts.map +1 -0
  28. package/dist/wallet/agentWalletAdapter.js +46 -0
  29. package/dist/wallet/agentWalletAdapter.js.map +1 -0
  30. package/dist/wallet/evmPrivateKeyWallet.d.ts +14 -0
  31. package/dist/wallet/evmPrivateKeyWallet.d.ts.map +1 -0
  32. package/dist/wallet/evmPrivateKeyWallet.js +37 -0
  33. package/dist/wallet/evmPrivateKeyWallet.js.map +1 -0
  34. package/dist/wallet/index.d.ts +8 -0
  35. package/dist/wallet/index.d.ts.map +1 -0
  36. package/dist/wallet/index.js +7 -0
  37. package/dist/wallet/index.js.map +1 -0
  38. package/dist/wallet/tronPrivateKeyWallet.d.ts +15 -0
  39. package/dist/wallet/tronPrivateKeyWallet.d.ts.map +1 -0
  40. package/dist/wallet/tronPrivateKeyWallet.js +49 -0
  41. package/dist/wallet/tronPrivateKeyWallet.js.map +1 -0
  42. package/dist/wallet/types.d.ts +22 -0
  43. package/dist/wallet/types.d.ts.map +1 -0
  44. package/dist/wallet/types.js +2 -0
  45. package/dist/wallet/types.js.map +1 -0
  46. package/package.json +4 -4
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
 
@@ -4,7 +4,8 @@
4
4
  * Policies are applied in order after mechanism filtering and before token selection.
5
5
  */
6
6
  import type { PaymentRequirements } from '../types/index.js';
7
- import type { ClientSigner, PaymentPolicy } from './x402Client.js';
7
+ import type { PaymentPolicy } from './x402Client.js';
8
+ import type { X402Client } from './x402Client.js';
8
9
  /**
9
10
  * Policy that filters out requirements with insufficient balance.
10
11
  *
@@ -12,12 +13,21 @@ import type { ClientSigner, PaymentPolicy } from './x402Client.js';
12
13
  * this policy checks the user's on-chain balance for each option
13
14
  * and removes requirements the user cannot afford.
14
15
  *
16
+ * Signers are auto-resolved from registered mechanisms via the
17
+ * X402Client instance passed at construction time.
18
+ *
19
+ * Usage:
20
+ * x402.registerPolicy(SufficientBalancePolicy);
21
+ *
22
+ * Requirements whose network has no matching signer are kept as-is
23
+ * (not filtered out), so downstream mechanism matching can still work.
24
+ *
15
25
  * If all requirements are unaffordable, returns an empty array so the
16
26
  * caller can raise an appropriate error.
17
27
  */
18
28
  export declare class SufficientBalancePolicy implements PaymentPolicy {
19
- private signer;
20
- constructor(signer: ClientSigner);
29
+ private client;
30
+ constructor(client: X402Client);
21
31
  apply(requirements: PaymentRequirements[]): Promise<PaymentRequirements[]>;
22
32
  }
23
33
  //# sourceMappingURL=policies.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../../src/client/policies.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOnE;;;;;;;;;GASG;AACH,qBAAa,uBAAwB,YAAW,aAAa;IAC3D,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAI1B,KAAK,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;CA8BjF"}
1
+ {"version":3,"file":"policies.d.ts","sourceRoot":"","sources":["../../src/client/policies.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAOlD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,uBAAwB,YAAW,aAAa;IAC3D,OAAO,CAAC,MAAM,CAAa;gBAEf,MAAM,EAAE,UAAU;IAIxB,KAAK,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;CA8CjF"}
@@ -15,18 +15,42 @@ function getDecimals(req) {
15
15
  * this policy checks the user's on-chain balance for each option
16
16
  * and removes requirements the user cannot afford.
17
17
  *
18
+ * Signers are auto-resolved from registered mechanisms via the
19
+ * X402Client instance passed at construction time.
20
+ *
21
+ * Usage:
22
+ * x402.registerPolicy(SufficientBalancePolicy);
23
+ *
24
+ * Requirements whose network has no matching signer are kept as-is
25
+ * (not filtered out), so downstream mechanism matching can still work.
26
+ *
18
27
  * If all requirements are unaffordable, returns an empty array so the
19
28
  * caller can raise an appropriate error.
20
29
  */
21
30
  export class SufficientBalancePolicy {
22
- signer;
23
- constructor(signer) {
24
- this.signer = signer;
31
+ client;
32
+ constructor(client) {
33
+ this.client = client;
25
34
  }
26
35
  async apply(requirements) {
27
36
  const affordable = [];
28
37
  for (const req of requirements) {
29
- const balance = await this.signer.checkBalance(req.asset, req.network);
38
+ const signer = this.client.resolveSigner(req.scheme, req.network);
39
+ if (!signer) {
40
+ // No signer for this network — keep the requirement so mechanism
41
+ // matching can still select it (balance check is best-effort).
42
+ affordable.push(req);
43
+ continue;
44
+ }
45
+ let balance;
46
+ try {
47
+ balance = await signer.checkBalance(req.asset, req.network);
48
+ }
49
+ catch {
50
+ // Signer cannot query this network; keep the requirement.
51
+ affordable.push(req);
52
+ continue;
53
+ }
30
54
  let needed = BigInt(req.amount);
31
55
  if (req.extra?.fee?.feeAmount) {
32
56
  needed += BigInt(req.extra.fee.feeAmount);
@@ -1 +1 @@
1
- {"version":3,"file":"policies.js","sourceRoot":"","sources":["../../src/client/policies.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,SAAS,WAAW,CAAC,GAAwB;IAC3C,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,KAAK,EAAE,QAAQ,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,uBAAuB;IAC1B,MAAM,CAAe;IAE7B,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,YAAmC;QAC7C,MAAM,UAAU,GAA0B,EAAE,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YACvE,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,EAAE,IAAI,QAAQ,CAAC;YAC/B,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7D,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CACT,UAAU,MAAM,OAAO,GAAG,CAAC,OAAO,aAAa,QAAQ,cAAc,OAAO,OAAO,CACpF,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,UAAU,MAAM,OAAO,GAAG,CAAC,OAAO,aAAa,QAAQ,aAAa,OAAO,YAAY,CACxF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"policies.js","sourceRoot":"","sources":["../../src/client/policies.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAK7C,SAAS,WAAW,CAAC,GAAwB;IAC3C,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,KAAK,EAAE,QAAQ,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,uBAAuB;IAC1B,MAAM,CAAa;IAE3B,YAAY,MAAkB;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,YAAmC;QAC7C,MAAM,UAAU,GAA0B,EAAE,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,iEAAiE;gBACjE,+DAA+D;gBAC/D,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,IAAI,OAAe,CAAC;YACpB,IAAI,CAAC;gBACH,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9D,CAAC;YAAC,MAAM,CAAC;gBACP,0DAA0D;gBAC1D,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,SAAS;YACX,CAAC;YAED,IAAI,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;YACD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,EAAE,IAAI,QAAQ,CAAC;YAC/B,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7D,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CACT,UAAU,MAAM,OAAO,GAAG,CAAC,OAAO,aAAa,QAAQ,cAAc,OAAO,OAAO,CACpF,CAAC;gBACF,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CACT,UAAU,MAAM,OAAO,GAAG,CAAC,OAAO,aAAa,QAAQ,aAAa,OAAO,YAAY,CACxF,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
@@ -72,7 +72,13 @@ export declare class X402Client {
72
72
  * @param policy - Function that filters/reorders payment requirements
73
73
  * @returns this for method chaining
74
74
  */
75
- registerPolicy(policy: PaymentPolicy): X402Client;
75
+ registerPolicy(policy: PaymentPolicy | {
76
+ new (client: X402Client): PaymentPolicy;
77
+ }): X402Client;
78
+ /**
79
+ * Resolve a signer from registered mechanisms for the given scheme+network.
80
+ */
81
+ resolveSigner(scheme: string, network: string): ClientSigner | null;
76
82
  /**
77
83
  * Register payment mechanism for network pattern
78
84
  *
@@ -1 +1 @@
1
- {"version":3,"file":"x402Client.d.ts","sourceRoot":"","sources":["../../src/client/x402Client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAGlE,iCAAiC;AACjC,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,MAAM,IAAI,MAAM,CAAC;IAEjB;;;OAGG;IACH,SAAS,CAAC,IAAI,YAAY,CAAC;IAE3B,6BAA6B;IAC7B,oBAAoB,CAClB,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;KAAE,GAC3D,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5B;AAED,8BAA8B;AAC9B,MAAM,WAAW,YAAY;IAC3B,yBAAyB;IACzB,UAAU,IAAI,MAAM,CAAC;IAErB,uBAAuB;IACvB,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAElD,gCAAgC;IAChC,aAAa,CACX,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,CAAC;IAEnB,0BAA0B;IAC1B,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9D,4BAA4B;IAC5B,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhF,kCAAkC;IAClC,eAAe,CACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,GACrC,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED,6CAA6C;AAC7C,MAAM,MAAM,2BAA2B,GAAG,CACxC,YAAY,EAAE,mBAAmB,EAAE,KAChC,mBAAmB,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;CACpG;AAED,wDAAwD;AACxD,MAAM,WAAW,yBAAyB;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AASD;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,aAAa,CAAC,CAAyB;gBAEnC,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,sBAAsB,CAAA;KAAE;IAIhE;;;;;;;;OAQG;IACH,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,UAAU;IAKjD;;;;;;OAMG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,UAAU;IAWxE;;;;;;OAMG;IACG,yBAAyB,CAC7B,OAAO,EAAE,mBAAmB,EAAE,EAC9B,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,mBAAmB,CAAC;IAiC/B;;;;;;;OAOG;IACG,oBAAoB,CACxB,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;KAAE,GAC3D,OAAO,CAAC,cAAc,CAAC;IAW1B;;;;;;;;OAQG;IACG,aAAa,CACjB,OAAO,EAAE,mBAAmB,EAAE,EAC9B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE;QAAE,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;KAAE,EAC5D,QAAQ,CAAC,EAAE,2BAA2B,GACrC,OAAO,CAAC,cAAc,CAAC;IAQ1B;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,OAAO,CAAC,YAAY;IASpB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAI1B"}
1
+ {"version":3,"file":"x402Client.d.ts","sourceRoot":"","sources":["../../src/client/x402Client.ts"],"names":[],"mappings":"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"}
@@ -27,9 +27,19 @@ export class X402Client {
27
27
  * @returns this for method chaining
28
28
  */
29
29
  registerPolicy(policy) {
30
- this.policies.push(policy);
30
+ const instance = typeof policy === 'function'
31
+ ? new policy(this)
32
+ : policy;
33
+ this.policies.push(instance);
31
34
  return this;
32
35
  }
36
+ /**
37
+ * Resolve a signer from registered mechanisms for the given scheme+network.
38
+ */
39
+ resolveSigner(scheme, network) {
40
+ const mechanism = this.findMechanism(scheme, network);
41
+ return mechanism?.getSigner?.() ?? null;
42
+ }
33
43
  /**
34
44
  * Register payment mechanism for network pattern
35
45
  *
@@ -1 +1 @@
1
- {"version":3,"file":"x402Client.js","sourceRoot":"","sources":["../../src/client/x402Client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"x402Client.js","sourceRoot":"","sources":["../../src/client/x402Client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAEpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAgFvD;;;;GAIG;AACH,MAAM,OAAO,UAAU;IACb,UAAU,GAAqB,EAAE,CAAC;IAClC,QAAQ,GAAoB,EAAE,CAAC;IAC/B,aAAa,CAA0B;IAE/C,YAAY,OAAoD;QAC9D,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,aAAa,CAAC;IAC9C,CAAC;IAED;;;;;;;;OAQG;IACH,cAAc,CAAC,MAAkE;QAC/E,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,UAAU;YAC3C,CAAC,CAAC,IAAK,MAAqD,CAAC,IAAI,CAAC;YAClE,CAAC,CAAC,MAAM,CAAC;QACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,MAAc,EAAE,OAAe;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO,SAAS,EAAE,SAAS,EAAE,EAAE,IAAI,IAAI,CAAC;IAC1C,CAAC;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,cAAsB,EAAE,SAA0B;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YACnB,OAAO,EAAE,cAAc;YACvB,SAAS;YACT,QAAQ;SACT,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,yBAAyB,CAC7B,OAA8B,EAC9B,OAAmC;QAEnC,IAAI,UAAU,GAAG,OAAO,CAAC;QAEzB,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YACrB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACtC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;QAC/D,CAAC;QAED,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;QAEtF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,UAAU,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,uBAAuB,CAAC,yCAAyC,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,6BAA6B,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,oBAAoB,CACxB,YAAiC,EACjC,QAAgB,EAChB,UAA4D;QAE5D,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QAChF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,uBAAuB,CAC/B,sCAAsC,YAAY,CAAC,MAAM,aAAa,YAAY,CAAC,OAAO,EAAE,CAC7F,CAAC;QACJ,CAAC;QAED,OAAO,SAAS,CAAC,oBAAoB,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,aAAa,CACjB,OAA8B,EAC9B,QAAgB,EAChB,UAA4D,EAC5D,QAAsC;QAEtC,MAAM,YAAY,GAAG,QAAQ;YAC3B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC;YACnB,CAAC,CAAC,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAElD,OAAO,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,MAAc,EAAE,OAAe;QACnD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;gBACrF,OAAO,KAAK,CAAC,SAAS,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,OAAe,EAAE,OAAe;QACnD,IAAI,OAAO,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QACrC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACpC,OAAO,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,OAAe;QACvC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC;QACrC,OAAO,EAAE,CAAC;IACZ,CAAC;CACF"}
package/dist/config.d.ts CHANGED
@@ -16,6 +16,15 @@ export declare const NETWORKS: {
16
16
  };
17
17
  /** PaymentPermit contract addresses */
18
18
  export declare const PAYMENT_PERMIT_ADDRESSES: Record<string, string>;
19
+ /** Default RPC URLs for EVM networks */
20
+ export declare const EVM_RPC_URLS: Record<string, string>;
21
+ /** Default TronGrid hosts for TRON networks */
22
+ export declare const TRON_RPC_URLS: Record<string, string>;
23
+ /**
24
+ * Resolve a network identifier to an RPC URL.
25
+ * Returns the URL from the built-in map, or undefined if not configured.
26
+ */
27
+ export declare function resolveRpcUrl(network: string): string | undefined;
19
28
  /** Zero address for TRON */
20
29
  export declare const TRON_ZERO_ADDRESS = "T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb";
21
30
  /** Zero address for EVM */
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,uCAAuC;AACvC,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAW5C,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,QAAQ;;;;;;;;CAQX,CAAC;AAEX,uCAAuC;AACvC,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM3D,CAAC;AAEF,4BAA4B;AAC5B,eAAO,MAAM,iBAAiB,uCAAuC,CAAC;AAEtE,2BAA2B;AAC3B,eAAO,MAAM,gBAAgB,+CAA+C,CAAC;AAE7E;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAelD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAItD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,uCAAuC;AACvC,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAW5C,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,QAAQ;;;;;;;;CAQX,CAAC;AAEX,uCAAuC;AACvC,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM3D,CAAC;AAEF,wCAAwC;AACxC,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAI/C,CAAC;AAEF,+CAA+C;AAC/C,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIhD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED,4BAA4B;AAC5B,eAAO,MAAM,iBAAiB,uCAAuC,CAAC;AAEtE,2BAA2B;AAC3B,eAAO,MAAM,gBAAgB,+CAA+C,CAAC;AAE7E;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAelD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAItD"}
package/dist/config.js CHANGED
@@ -33,6 +33,25 @@ export const PAYMENT_PERMIT_ADDRESSES = {
33
33
  'eip155:97': '0x1825bB32db3443dEc2cc7508b2D818fc13EaD878',
34
34
  'eip155:56': '0x1825bB32db3443dEc2cc7508b2D818fc13EaD878',
35
35
  };
36
+ /** Default RPC URLs for EVM networks */
37
+ export const EVM_RPC_URLS = {
38
+ 'eip155:97': 'https://data-seed-prebsc-1-s1.binance.org:8545/',
39
+ 'eip155:56': 'https://bsc-dataseed.binance.org/',
40
+ // 'eip155:1': 'https://eth.llamarpc.com',
41
+ };
42
+ /** Default TronGrid hosts for TRON networks */
43
+ export const TRON_RPC_URLS = {
44
+ 'tron:mainnet': 'https://api.trongrid.io',
45
+ 'tron:shasta': 'https://api.shasta.trongrid.io',
46
+ 'tron:nile': 'https://nile.trongrid.io',
47
+ };
48
+ /**
49
+ * Resolve a network identifier to an RPC URL.
50
+ * Returns the URL from the built-in map, or undefined if not configured.
51
+ */
52
+ export function resolveRpcUrl(network) {
53
+ return EVM_RPC_URLS[network] ?? TRON_RPC_URLS[network];
54
+ }
36
55
  /** Zero address for TRON */
37
56
  export const TRON_ZERO_ADDRESS = 'T9yD14Nj9j7xAB4dbGeiX9h8unkKHxuWwb';
38
57
  /** Zero address for EVM */
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
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,12 +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
- private rpcUrl?;
11
- constructor(privateKey: string, rpcUrl?: 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;
12
16
  getAddress(): string;
13
17
  getEvmAddress(): Hex;
14
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;AAa5D,qBAAa,eAAgB,YAAW,YAAY;IAClD,OAAO,CAAC,YAAY,CAA0C;IAC9D,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAW/C,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;IAiDnB,OAAO,CAAC,eAAe;IAYvB,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"}
@@ -4,37 +4,37 @@
4
4
  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
- import { getPaymentPermitAddress, InsufficientAllowanceError, UnsupportedNetworkError, } from '../index.js';
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
- rpcUrl;
18
- constructor(privateKey, rpcUrl) {
19
- const hexKey = privateKey.startsWith('0x') ? privateKey : `0x${privateKey}`;
20
- this.account = privateKeyToAccount(hexKey);
21
- this.rpcUrl = rpcUrl;
22
- this.walletClient = createWalletClient({
23
- account: this.account,
24
- chain: mainnet,
25
- transport: http(rpcUrl),
26
- });
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));
27
29
  }
28
30
  getAddress() {
29
- return this.account.address;
31
+ return this._address;
30
32
  }
31
33
  getEvmAddress() {
32
- return this.account.address;
34
+ return this._address;
33
35
  }
34
36
  async signMessage(message) {
35
- return this.walletClient.signMessage({
36
- message: { raw: message },
37
- });
37
+ return this.wallet.signMessage(message);
38
38
  }
39
39
  async signTypedData(domain, types, message) {
40
40
  // TODO: Add explicit primaryType to ClientSigner interface
@@ -44,22 +44,23 @@ export class EvmClientSigner {
44
44
  if (!primaryType) {
45
45
  throw new Error('No primary type found in types definition');
46
46
  }
47
- return this.walletClient.signTypedData({
48
- domain: domain,
49
- types: types,
47
+ const fullData = {
48
+ types: { EIP712Domain: [], ...types },
49
+ domain,
50
50
  primaryType,
51
- message: message,
52
- });
51
+ message,
52
+ };
53
+ return this.wallet.signTypedData(fullData);
53
54
  }
54
55
  async checkBalance(token, network) {
55
56
  const chainId = this.parseNetworkToChainId(network);
56
- const client = this.getPublicClient(chainId);
57
+ const client = this.getPublicClient(chainId, network);
57
58
  try {
58
59
  return await client.readContract({
59
60
  address: token,
60
61
  abi: ERC20_ABI,
61
62
  functionName: 'balanceOf',
62
- args: [this.account.address],
63
+ args: [this._address],
63
64
  });
64
65
  }
65
66
  catch (error) {
@@ -69,14 +70,14 @@ export class EvmClientSigner {
69
70
  }
70
71
  async checkAllowance(token, _amount, network) {
71
72
  const chainId = this.parseNetworkToChainId(network);
72
- const client = this.getPublicClient(chainId);
73
+ const client = this.getPublicClient(chainId, network);
73
74
  const spender = getPaymentPermitAddress(network);
74
75
  try {
75
76
  return await client.readContract({
76
77
  address: token,
77
78
  abi: ERC20_ABI,
78
79
  functionName: 'allowance',
79
- args: [this.account.address, spender],
80
+ args: [this._address, spender],
80
81
  });
81
82
  }
82
83
  catch (error) {
@@ -94,20 +95,25 @@ export class EvmClientSigner {
94
95
  throw new InsufficientAllowanceError('Interactive approval required');
95
96
  }
96
97
  const chainId = this.parseNetworkToChainId(network);
97
- const client = this.getPublicClient(chainId);
98
+ const client = this.getPublicClient(chainId, network);
98
99
  const spender = getPaymentPermitAddress(network);
99
100
  const chain = this.getChain(chainId);
100
101
  try {
101
- const walletClient = createWalletClient({
102
- account: this.account,
102
+ const rpcUrl = resolveRpcUrl(network);
103
+ // Build approve transaction and sign via wallet
104
+ const account = privateKeyToAccount('0x0000000000000000000000000000000000000000000000000000000000000001');
105
+ const tempWalletClient = createWalletClient({
106
+ account,
103
107
  chain: chain,
104
- transport: http(this.rpcUrl),
108
+ transport: http(rpcUrl),
105
109
  });
106
- const hash = await walletClient.writeContract({
110
+ // Use wallet's signTransaction to sign the approval
111
+ const hash = await tempWalletClient.writeContract({
107
112
  address: token,
108
113
  abi: ERC20_ABI,
109
114
  functionName: 'approve',
110
115
  args: [spender, BigInt(2) ** BigInt(256) - BigInt(1)],
116
+ account: this._address,
111
117
  });
112
118
  const receipt = await client.waitForTransactionReceipt({ hash });
113
119
  const success = receipt.status === 'success';
@@ -121,12 +127,13 @@ export class EvmClientSigner {
121
127
  throw new InsufficientAllowanceError(`ERC20 approval transaction failed for ${token}: ${error instanceof Error ? error.message : String(error)}`);
122
128
  }
123
129
  }
124
- getPublicClient(chainId) {
130
+ getPublicClient(chainId, network) {
125
131
  let client = this.publicClients.get(chainId);
126
132
  if (!client) {
133
+ const rpcUrl = resolveRpcUrl(network);
127
134
  client = createPublicClient({
128
135
  chain: this.getChain(chainId),
129
- transport: http(this.rpcUrl),
136
+ transport: http(rpcUrl),
130
137
  });
131
138
  this.publicClients.set(chainId, client);
132
139
  }
@@ -1 +1 @@
1
- {"version":3,"file":"evmSigner.js","sourceRoot":"","sources":["../../src/signers/evmSigner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"evmSigner.js","sourceRoot":"","sources":["../../src/signers/evmSigner.ts"],"names":[],"mappings":"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"}
@@ -5,29 +5,30 @@
5
5
  */
6
6
  import type { ClientSigner } from '../index.js';
7
7
  import { type Hex } from '../index.js';
8
- import type { TronWeb, TronNetwork } from './types.js';
8
+ import type { Wallet } from '../wallet/types.js';
9
9
  /**
10
10
  * TRON client signer implementation using TronWeb's signTypedData
11
11
  */
12
12
  export declare class TronClientSigner implements ClientSigner {
13
- private tronWeb;
14
- private privateKey;
13
+ private wallet;
15
14
  private address;
16
- private network?;
17
- private constructor();
15
+ private tronWebInstances;
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;
18
21
  /**
19
- * Create signer from TronWeb instance (browser wallet mode)
22
+ * Get or create a TronWeb instance for the given network.
20
23
  */
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;
24
+ private getTronWeb;
25
+ private getDefaultTronWeb;
26
+ private createTronWeb;
26
27
  getAddress(): string;
27
28
  getEvmAddress(): Hex;
28
29
  signMessage(message: Uint8Array): Promise<string>;
29
30
  /**
30
- * Sign EIP-712 typed data using TronWeb's signTypedData (TIP-712)
31
+ * Sign EIP-712 typed data using Wallet abstraction
31
32
  */
32
33
  signTypedData(domain: Record<string, unknown>, types: Record<string, unknown>, message: Record<string, unknown>): Promise<string>;
33
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,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"}
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,7 +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, } from '../index.js';
6
+ import { getPaymentPermitAddress, toEvmHex, InsufficientAllowanceError, UnsupportedNetworkError, TRON_RPC_URLS, } from '../index.js';
7
+ import { TronWeb as TronWebClass } from 'tronweb';
8
+ import { TronPrivateKeyWallet } from '../wallet/tronPrivateKeyWallet.js';
7
9
  /** ERC20 function selectors */
8
10
  const ERC20_ALLOWANCE_SELECTOR = 'allowance(address,address)';
9
11
  const ERC20_APPROVE_SELECTOR = 'approve(address,uint256)';
@@ -11,34 +13,51 @@ const ERC20_APPROVE_SELECTOR = 'approve(address,uint256)';
11
13
  * TRON client signer implementation using TronWeb's signTypedData
12
14
  */
13
15
  export class TronClientSigner {
14
- tronWeb;
15
- privateKey;
16
+ wallet;
16
17
  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;
18
+ tronWebInstances = new Map();
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));
23
30
  }
24
31
  /**
25
- * Create signer from TronWeb instance (browser wallet mode)
32
+ * Get or create a TronWeb instance for the given network.
26
33
  */
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');
34
+ getTronWeb(network) {
35
+ const host = network ? TRON_RPC_URLS[network] : undefined;
36
+ const key = host ?? '__default__';
37
+ let tw = this.tronWebInstances.get(key);
38
+ if (!tw) {
39
+ if (!host) {
40
+ throw new UnsupportedNetworkError(`No RPC URL configured for network: ${network}`);
41
+ }
42
+ tw = this.createTronWeb(host);
43
+ this.tronWebInstances.set(key, tw);
31
44
  }
32
- const address = tronWeb.address.fromPrivateKey(privateKey);
33
- return new TronClientSigner(tronWeb, address, network);
45
+ return tw;
34
46
  }
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);
47
+ getDefaultTronWeb() {
48
+ let tw = this.tronWebInstances.get('__default__');
49
+ if (!tw) {
50
+ tw = this.createTronWeb('https://nile.trongrid.io');
51
+ this.tronWebInstances.set('__default__', tw);
52
+ }
53
+ return tw;
54
+ }
55
+ createTronWeb(fullHost) {
56
+ const apiKey = typeof process !== 'undefined' ? process.env?.TRON_GRID_API_KEY : undefined;
57
+ const headers = apiKey ? { 'TRON-PRO-API-KEY': apiKey } : undefined;
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 });
42
61
  }
43
62
  getAddress() {
44
63
  return this.address;
@@ -47,36 +66,27 @@ export class TronClientSigner {
47
66
  return toEvmHex(this.address);
48
67
  }
49
68
  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);
69
+ return this.wallet.signMessage(message);
54
70
  }
55
71
  /**
56
- * Sign EIP-712 typed data using TronWeb's signTypedData (TIP-712)
72
+ * Sign EIP-712 typed data using Wallet abstraction
57
73
  */
58
74
  async signTypedData(domain, types, message) {
59
- // Prepare domain
60
- const typedDomain = {
61
- name: domain.name,
62
- chainId: domain.chainId,
63
- 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,
64
82
  };
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);
83
+ return this.wallet.signTypedData(fullData);
71
84
  }
72
85
  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
86
  try {
78
87
  const ownerHex = toEvmHex(this.address);
79
- const result = await this.tronWeb.transactionBuilder.triggerConstantContract(token, 'balanceOf(address)', {}, [{ type: 'address', value: ownerHex }], this.address);
88
+ const tw = this.getTronWeb(network);
89
+ const result = await tw.transactionBuilder.triggerConstantContract(token, 'balanceOf(address)', {}, [{ type: 'address', value: ownerHex }], this.address);
80
90
  if (result.result?.result && result.constant_result?.length) {
81
91
  return BigInt('0x' + result.constant_result[0]);
82
92
  }
@@ -87,15 +97,12 @@ export class TronClientSigner {
87
97
  return BigInt(0);
88
98
  }
89
99
  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);
100
+ const spender = getPaymentPermitAddress(network);
95
101
  try {
96
102
  const ownerHex = toEvmHex(this.address);
97
103
  const spenderHex = toEvmHex(spender);
98
- const result = await this.tronWeb.transactionBuilder.triggerConstantContract(token, ERC20_ALLOWANCE_SELECTOR, {}, [
104
+ const tw = this.getTronWeb(network);
105
+ const result = await tw.transactionBuilder.triggerConstantContract(token, ERC20_ALLOWANCE_SELECTOR, {}, [
99
106
  { type: 'address', value: ownerHex },
100
107
  { type: 'address', value: spenderHex },
101
108
  ], this.address);
@@ -122,17 +129,14 @@ export class TronClientSigner {
122
129
  }
123
130
  // Auto mode: send approve transaction
124
131
  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);
132
+ const spender = getPaymentPermitAddress(network);
130
133
  const spenderHex = toEvmHex(spender);
131
134
  // Use maxUint160 (2^160 - 1) to avoid repeated approvals
132
135
  const maxUint160 = (BigInt(2) ** BigInt(160)) - BigInt(1);
133
136
  try {
134
137
  // Build approve transaction
135
- const tx = await this.tronWeb.transactionBuilder.triggerSmartContract(token, ERC20_APPROVE_SELECTOR, {
138
+ const tw = this.getTronWeb(network);
139
+ const tx = await tw.transactionBuilder.triggerSmartContract(token, ERC20_APPROVE_SELECTOR, {
136
140
  feeLimit: 100_000_000,
137
141
  callValue: 0,
138
142
  }, [
@@ -142,10 +146,11 @@ export class TronClientSigner {
142
146
  if (!tx.result?.result) {
143
147
  throw new InsufficientAllowanceError('Failed to build approve transaction');
144
148
  }
145
- // Sign transaction
146
- const signedTx = await this.tronWeb.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] };
147
152
  // Broadcast transaction
148
- const broadcast = await this.tronWeb.trx.sendRawTransaction(signedTx);
153
+ const broadcast = await tw.trx.sendRawTransaction(signedTx);
149
154
  if (!broadcast.result) {
150
155
  throw new InsufficientAllowanceError(`Failed to broadcast approve transaction: ${JSON.stringify(broadcast)}`);
151
156
  }
@@ -155,7 +160,7 @@ export class TronClientSigner {
155
160
  for (let i = 0; i < 10; i++) {
156
161
  await new Promise(resolve => setTimeout(resolve, 3000));
157
162
  try {
158
- const info = await this.tronWeb.trx.getTransactionInfo(txid);
163
+ const info = await tw.trx.getTransactionInfo(txid);
159
164
  if (info && info.blockNumber) {
160
165
  const success = info.receipt?.result === 'SUCCESS';
161
166
  console.log(`[ALLOWANCE] Approve confirmed: ${success ? 'SUCCESS' : 'FAILED'}`);
@@ -1 +1 @@
1
- {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signers/signer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAEL,uBAAuB,EACvB,QAAQ,EAER,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,aAAa,CAAC;AAGrB,+BAA+B;AAC/B,MAAM,wBAAwB,GAAG,4BAA4B,CAAC;AAC9D,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAE1D;;GAEG;AACH,MAAM,OAAO,gBAAgB;IACnB,OAAO,CAAU;IACjB,UAAU,CAAqB;IAC/B,OAAO,CAAS,CAAC,gBAAgB;IACjC,OAAO,CAAe;IAE9B,YACE,OAAgB,EAChB,OAAe,EACf,OAAqB,EACrB,UAAmB;QAEnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAgB,EAAE,OAAqB;QACxD,MAAM,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC;QAC7C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,sBAAsB,CAAC,8EAA8E,CAAC,CAAC;QACnH,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC3D,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CACnB,OAAgB,EAChB,UAAkB,EAClB,OAAqB;QAErB,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAChF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzD,OAAO,IAAI,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnE,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,aAAa;QACX,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,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;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,MAA+B,EAC/B,KAA8B,EAC9B,OAAgC;QAEhC,iBAAiB;QACjB,MAAM,WAAW,GAAoB;YACnC,IAAI,EAAE,MAAM,CAAC,IAAc;YAC3B,OAAO,EAAE,MAAM,CAAC,OAAiB;YACjC,iBAAiB,EAAE,MAAM,CAAC,iBAA2B;SACtD,CAAC;QAEF,yEAAyE;QACzE,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,sBAAsB,CAAC,0EAA0E,CAAC,CAAC;QAC/G,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAChB,IAAI,CAAC,OAAO,CAAC,GAAG,EAChB,WAAW,EACX,KAAyC,EACzC,OAAO,EACP,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,OAAe;QAC/C,MAAM,eAAe,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACvF,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,uBAAuB,CAAC,sCAAsC,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAExC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,uBAAuB,CAC1E,KAAK,EACL,oBAAoB,EACpB,EAAE,EACF,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EACtC,IAAI,CAAC,OAAO,CACb,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBAC5D,OAAO,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,+CAA+C,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,OAAe,EAAE,OAAe;QAClE,MAAM,eAAe,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACvF,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,uBAAuB,CAAC,wCAAwC,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,OAAO,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YAErC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,uBAAuB,CAC1E,KAAK,EACL,wBAAwB,EACxB,EAAE,EACF;gBACE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACpC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE;aACvC,EACD,IAAI,CAAC,OAAO,CACb,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gBAC5D,OAAO,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iDAAiD,KAAK,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,KAAa,EACb,MAAc,EACd,OAAe,EACf,OAAwC,MAAM;QAE9C,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC3E,IAAI,gBAAgB,IAAI,MAAM,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,qCAAqC,gBAAgB,OAAO,MAAM,EAAE,CAAC,CAAC;YAClF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,MAAM,IAAI,0BAA0B,CAAC,sDAAsD,CAAC,CAAC;QAC/F,CAAC;QAED,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,uCAAuC,gBAAgB,MAAM,MAAM,sBAAsB,CAAC,CAAC;QAEvG,MAAM,eAAe,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACvF,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,uBAAuB,CAAC,yCAAyC,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,OAAO,GAAG,uBAAuB,CAAC,eAAe,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAErC,yDAAyD;QACzD,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAE1D,IAAI,CAAC;YACH,4BAA4B;YAC5B,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,oBAAoB,CACnE,KAAK,EACL,sBAAsB,EACtB;gBACE,QAAQ,EAAE,WAAW;gBACrB,SAAS,EAAE,CAAC;aACb,EACD;gBACE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE;gBACtC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE;aAClD,EACD,IAAI,CAAC,OAAO,CACb,CAAC;YAEF,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBACvB,MAAM,IAAI,0BAA0B,CAAC,qCAAqC,CAAC,CAAC;YAC9E,CAAC;YAED,mBAAmB;YACnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAE9E,wBAAwB;YACxB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAEtE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBACtB,MAAM,IAAI,0BAA0B,CAClC,4CAA4C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CACxE,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,yCAAyC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAEvE,+CAA+C;YAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;gBACxD,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBAC7D,IAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;wBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC;wBACnD,OAAO,CAAC,GAAG,CAAC,kCAAkC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;wBAChF,OAAO,OAAO,CAAC;oBACjB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,sCAAsC;gBACxC,CAAC;YACH,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;YAC9F,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,0BAA0B;gBAAE,MAAM,KAAK,CAAC;YAC7D,MAAM,IAAI,0BAA0B,CAClC,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxF,CAAC;QACJ,CAAC;IACH,CAAC;CACF"}
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.0",
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": {