@atxp/base 0.2.22 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/dist/baseAppAccount.js +6 -3
  2. package/dist/baseAppAccount.js.map +1 -1
  3. package/dist/baseAppPaymentMaker.js +22 -42
  4. package/dist/baseAppPaymentMaker.js.map +1 -1
  5. package/dist/eip1271JwtHelper.js +83 -0
  6. package/dist/eip1271JwtHelper.js.map +1 -0
  7. package/dist/index.cjs +630 -0
  8. package/dist/index.cjs.map +1 -0
  9. package/dist/index.d.ts +157 -6
  10. package/dist/index.js +623 -5
  11. package/dist/index.js.map +1 -1
  12. package/dist/mainWalletPaymentMaker.js +26 -48
  13. package/dist/mainWalletPaymentMaker.js.map +1 -1
  14. package/dist/smartWalletHelpers.js +6 -3
  15. package/dist/smartWalletHelpers.js.map +1 -1
  16. package/dist/spendPermissionUtils.js +4 -2
  17. package/dist/spendPermissionUtils.js.map +1 -1
  18. package/dist/storage.js +6 -4
  19. package/dist/storage.js.map +1 -1
  20. package/package.json +21 -7
  21. package/dist/baseAppAccount.d.ts +0 -33
  22. package/dist/baseAppAccount.d.ts.map +0 -1
  23. package/dist/baseAppAccount.ephemeral.test.d.ts +0 -2
  24. package/dist/baseAppAccount.ephemeral.test.d.ts.map +0 -1
  25. package/dist/baseAppAccount.ephemeral.test.js +0 -426
  26. package/dist/baseAppAccount.ephemeral.test.js.map +0 -1
  27. package/dist/baseAppAccount.mainWallet.test.d.ts +0 -2
  28. package/dist/baseAppAccount.mainWallet.test.d.ts.map +0 -1
  29. package/dist/baseAppAccount.mainWallet.test.js +0 -259
  30. package/dist/baseAppAccount.mainWallet.test.js.map +0 -1
  31. package/dist/baseAppPaymentMaker.d.ts +0 -16
  32. package/dist/baseAppPaymentMaker.d.ts.map +0 -1
  33. package/dist/baseAppPaymentMaker.test.d.ts +0 -2
  34. package/dist/baseAppPaymentMaker.test.d.ts.map +0 -1
  35. package/dist/baseAppPaymentMaker.test.js +0 -113
  36. package/dist/baseAppPaymentMaker.test.js.map +0 -1
  37. package/dist/compatibility.test.d.ts +0 -2
  38. package/dist/compatibility.test.d.ts.map +0 -1
  39. package/dist/compatibility.test.js +0 -94
  40. package/dist/compatibility.test.js.map +0 -1
  41. package/dist/environment.test.d.ts +0 -2
  42. package/dist/environment.test.d.ts.map +0 -1
  43. package/dist/environment.test.js +0 -77
  44. package/dist/environment.test.js.map +0 -1
  45. package/dist/index.d.ts.map +0 -1
  46. package/dist/mainWalletPaymentMaker.d.ts +0 -22
  47. package/dist/mainWalletPaymentMaker.d.ts.map +0 -1
  48. package/dist/mainWalletPaymentMaker.test.d.ts +0 -2
  49. package/dist/mainWalletPaymentMaker.test.d.ts.map +0 -1
  50. package/dist/mainWalletPaymentMaker.test.js +0 -340
  51. package/dist/mainWalletPaymentMaker.test.js.map +0 -1
  52. package/dist/smartWalletHelpers.d.ts +0 -13
  53. package/dist/smartWalletHelpers.d.ts.map +0 -1
  54. package/dist/spendPermissionUtils.d.ts +0 -9
  55. package/dist/spendPermissionUtils.d.ts.map +0 -1
  56. package/dist/storage.d.ts +0 -51
  57. package/dist/storage.d.ts.map +0 -1
  58. package/dist/testHelpers.d.ts +0 -88
  59. package/dist/testHelpers.d.ts.map +0 -1
  60. package/dist/testHelpers.js +0 -202
  61. package/dist/testHelpers.js.map +0 -1
  62. package/dist/types.d.ts +0 -35
  63. package/dist/types.d.ts.map +0 -1
  64. package/dist/types.js +0 -3
  65. package/dist/types.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,6 +1,157 @@
1
- export { BaseAppAccount } from './baseAppAccount.js';
2
- export { BaseAppPaymentMaker } from './baseAppPaymentMaker.js';
3
- export { MainWalletPaymentMaker, type MainWalletProvider } from './mainWalletPaymentMaker.js';
4
- export type { SpendPermission } from './types.js';
5
- export { type IStorage, type Intermediary as StoredPermissionData, IntermediaryStorage as PermissionStorage, BrowserStorage, MemoryStorage } from './storage.js';
6
- //# sourceMappingURL=index.d.ts.map
1
+ import { PaymentMaker, Hex, Account as Account$1 } from '@atxp/client';
2
+ import BigNumber$1 from 'bignumber.js';
3
+ import { Logger, Currency } from '@atxp/common';
4
+ import { Address, Account } from 'viem';
5
+ import { BundlerClient, SmartAccount } from 'viem/account-abstraction';
6
+
7
+ type MainWalletProvider = {
8
+ request: (params: {
9
+ method: string;
10
+ params?: any[];
11
+ }) => Promise<any>;
12
+ };
13
+ declare class MainWalletPaymentMaker implements PaymentMaker {
14
+ private walletAddress;
15
+ private provider;
16
+ private logger;
17
+ constructor(walletAddress: string, provider: MainWalletProvider, logger?: Logger);
18
+ generateJWT(payload: {
19
+ paymentRequestId: string;
20
+ codeChallenge: string;
21
+ }): Promise<string>;
22
+ makePayment(amount: BigNumber$1, currency: Currency, receiver: string, _reason: string): Promise<string>;
23
+ private waitForTransactionConfirmations;
24
+ }
25
+
26
+ /**
27
+ * Represents a spending permission with limits
28
+ */
29
+ type SpendPermission = {
30
+ /** UTC timestamp for when the permission was granted */
31
+ createdAt?: number;
32
+ /** Hash of the permission in hex format */
33
+ permissionHash?: string;
34
+ /** Cryptographic signature in hex format */
35
+ signature: string;
36
+ /** Chain ID */
37
+ chainId?: number;
38
+ /** The permission details */
39
+ permission: {
40
+ /** Wallet address of the account */
41
+ account: string;
42
+ /** Address of the contract/entity allowed to spend */
43
+ spender: string;
44
+ /** Address of the token being spent */
45
+ token: string;
46
+ /** Maximum amount allowed as base 10 numeric string */
47
+ allowance: string;
48
+ /** Time period in seconds */
49
+ period: number;
50
+ /** Start time in unix seconds */
51
+ start: number;
52
+ /** Expiration time in unix seconds */
53
+ end: number;
54
+ /** Salt as base 10 numeric string */
55
+ salt: string;
56
+ /** Additional data in hex format */
57
+ extraData: string;
58
+ };
59
+ };
60
+
61
+ /**
62
+ * Stored permission data structure
63
+ */
64
+ interface Intermediary {
65
+ /** Ephemeral wallet private key */
66
+ privateKey: Hex;
67
+ /** Spend permission from Base */
68
+ permission: SpendPermission;
69
+ }
70
+ /**
71
+ * Storage interface for abstracting storage mechanisms
72
+ * This allows for easy mocking in tests and potential future
73
+ * support for different storage backends (e.g., React Native AsyncStorage)
74
+ */
75
+ interface IStorage<T = string> {
76
+ get(key: string): T | null;
77
+ set(key: string, value: T): void;
78
+ delete(key: string): void;
79
+ }
80
+ /**
81
+ * Type-safe storage wrapper for permission data
82
+ */
83
+ declare class IntermediaryStorage {
84
+ private storage;
85
+ constructor(storage: IStorage<string>);
86
+ get(key: string): Intermediary | null;
87
+ set(key: string, data: Intermediary): void;
88
+ delete(key: string): void;
89
+ }
90
+ /**
91
+ * Browser localStorage implementation
92
+ */
93
+ declare class BrowserStorage implements IStorage<string> {
94
+ private isAvailable;
95
+ get(key: string): string | null;
96
+ set(key: string, value: string): void;
97
+ delete(key: string): void;
98
+ }
99
+ /**
100
+ * In-memory storage implementation for testing
101
+ */
102
+ declare class MemoryStorage implements IStorage<string> {
103
+ private store;
104
+ get(key: string): string | null;
105
+ set(key: string, value: string): void;
106
+ delete(key: string): void;
107
+ clear(): void;
108
+ }
109
+
110
+ interface EphemeralSmartWallet {
111
+ address: Address;
112
+ client: BundlerClient;
113
+ account: SmartAccount;
114
+ signer: Account;
115
+ }
116
+
117
+ declare class BaseAppAccount implements Account$1 {
118
+ accountId: string;
119
+ paymentMakers: {
120
+ [key: string]: PaymentMaker;
121
+ };
122
+ private static toStorageKey;
123
+ static initialize(config: {
124
+ walletAddress: string;
125
+ apiKey: string;
126
+ appName: string;
127
+ useEphemeralWallet?: boolean;
128
+ allowance?: bigint;
129
+ periodInDays?: number;
130
+ storage?: IStorage<string>;
131
+ logger?: Logger;
132
+ }): Promise<BaseAppAccount>;
133
+ private static loadSavedWalletAndPermission;
134
+ private static deploySmartWallet;
135
+ constructor(spendPermission: SpendPermission | null, ephemeralSmartWallet: EphemeralSmartWallet | null, logger?: Logger, mainWalletAddress?: string, provider?: MainWalletProvider);
136
+ /**
137
+ * Dynamically import the appropriate spend-permission module based on environment.
138
+ * Uses browser version as requestSpendPermission only exists there.
139
+ * Throws error if used in server-side environment.
140
+ */
141
+ static clearAllStoredData(userWalletAddress: string, storage?: IStorage<string>): void;
142
+ }
143
+
144
+ declare class BaseAppPaymentMaker implements PaymentMaker {
145
+ private logger;
146
+ private spendPermission;
147
+ private smartWallet;
148
+ constructor(spendPermission: SpendPermission, smartWallet: EphemeralSmartWallet, logger?: Logger);
149
+ generateJWT({ paymentRequestId, codeChallenge }: {
150
+ paymentRequestId: string;
151
+ codeChallenge: string;
152
+ }): Promise<string>;
153
+ makePayment(amount: BigNumber, currency: Currency, receiver: string, memo: string): Promise<string>;
154
+ }
155
+
156
+ export { BaseAppAccount, BaseAppPaymentMaker, BrowserStorage, MainWalletPaymentMaker, MemoryStorage, IntermediaryStorage as PermissionStorage };
157
+ export type { IStorage, MainWalletProvider, SpendPermission, Intermediary as StoredPermissionData };