@ic402/client 0.1.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/dist/idl.js ADDED
@@ -0,0 +1,248 @@
1
+ /// Candid IDL factory for ic402 example canister.
2
+ /// Embedded following engramx pattern — no .did file dependency.
3
+ import { IDL } from '@icp-sdk/core/candid';
4
+ const PaymentRequirement = IDL.Record({
5
+ scheme: IDL.Text,
6
+ network: IDL.Text,
7
+ token: IDL.Text,
8
+ amount: IDL.Nat,
9
+ recipient: IDL.Text,
10
+ nonce: IDL.Vec(IDL.Nat8),
11
+ expiry: IDL.Int,
12
+ tokenName: IDL.Opt(IDL.Text),
13
+ tokenVersion: IDL.Opt(IDL.Text),
14
+ });
15
+ const Eip3009Authorization = IDL.Record({
16
+ from: IDL.Text,
17
+ to: IDL.Text,
18
+ value: IDL.Nat,
19
+ validAfter: IDL.Nat,
20
+ validBefore: IDL.Nat,
21
+ nonce: IDL.Vec(IDL.Nat8),
22
+ v: IDL.Nat8,
23
+ r: IDL.Vec(IDL.Nat8),
24
+ s: IDL.Vec(IDL.Nat8),
25
+ });
26
+ const PaymentSignature = IDL.Record({
27
+ scheme: IDL.Text,
28
+ network: IDL.Text,
29
+ signature: IDL.Vec(IDL.Nat8),
30
+ publicKey: IDL.Opt(IDL.Vec(IDL.Nat8)),
31
+ sender: IDL.Text,
32
+ nonce: IDL.Vec(IDL.Nat8),
33
+ authorization: IDL.Opt(Eip3009Authorization),
34
+ });
35
+ const PaymentReceipt = IDL.Record({
36
+ id: IDL.Text,
37
+ amount: IDL.Nat,
38
+ token: IDL.Text,
39
+ sender: IDL.Text,
40
+ recipient: IDL.Text,
41
+ network: IDL.Text,
42
+ timestamp: IDL.Int,
43
+ txHash: IDL.Opt(IDL.Text),
44
+ sessionId: IDL.Opt(IDL.Text),
45
+ refunded: IDL.Opt(IDL.Nat),
46
+ });
47
+ const PaymentResult = IDL.Variant({
48
+ ok: PaymentReceipt,
49
+ insufficientFunds: IDL.Null,
50
+ invalidSignature: IDL.Null,
51
+ expired: IDL.Null,
52
+ policyDenied: IDL.Text,
53
+ tokenNotAccepted: IDL.Null,
54
+ networkNotSupported: IDL.Null,
55
+ settlementFailed: IDL.Text,
56
+ reputationTooLow: IDL.Nat,
57
+ depositBelowMinimum: IDL.Nat,
58
+ });
59
+ const SessionIntent = IDL.Record({
60
+ network: IDL.Text,
61
+ token: IDL.Text,
62
+ recipient: IDL.Text,
63
+ suggestedDeposit: IDL.Nat,
64
+ minDeposit: IDL.Opt(IDL.Nat),
65
+ expiry: IDL.Int,
66
+ costPerCall: IDL.Opt(IDL.Nat),
67
+ description: IDL.Opt(IDL.Text),
68
+ });
69
+ const SessionStatus = IDL.Variant({
70
+ open: IDL.Null,
71
+ closing: IDL.Null,
72
+ closed: IDL.Null,
73
+ expired: IDL.Null,
74
+ });
75
+ const SessionState = IDL.Record({
76
+ id: IDL.Text,
77
+ payer: IDL.Principal,
78
+ deposited: IDL.Nat,
79
+ consumed: IDL.Nat,
80
+ remaining: IDL.Nat,
81
+ voucherCount: IDL.Nat,
82
+ status: SessionStatus,
83
+ openedAt: IDL.Int,
84
+ lastActivityAt: IDL.Int,
85
+ });
86
+ const SessionConfig = IDL.Record({
87
+ maxDeposit: IDL.Nat,
88
+ autoClose: IDL.Bool,
89
+ idleTimeout: IDL.Opt(IDL.Int),
90
+ });
91
+ const Voucher = IDL.Record({
92
+ sessionId: IDL.Text,
93
+ cumulativeAmount: IDL.Nat,
94
+ sequence: IDL.Nat,
95
+ signature: IDL.Vec(IDL.Nat8),
96
+ });
97
+ const SpendingPolicy = IDL.Record({
98
+ maxPerTransaction: IDL.Opt(IDL.Nat),
99
+ maxPerDay: IDL.Opt(IDL.Nat),
100
+ rateLimitPerMinute: IDL.Opt(IDL.Nat),
101
+ maxSessionDeposit: IDL.Opt(IDL.Nat),
102
+ maxConcurrentSessions: IDL.Opt(IDL.Nat),
103
+ maxSessionDuration: IDL.Opt(IDL.Int),
104
+ sessionIdleTimeout: IDL.Opt(IDL.Int),
105
+ allowedCallers: IDL.Opt(IDL.Vec(IDL.Principal)),
106
+ blockedCallers: IDL.Opt(IDL.Vec(IDL.Principal)),
107
+ });
108
+ // ── Content Delivery ──
109
+ const ContentRef = IDL.Record({
110
+ id: IDL.Text,
111
+ mimeType: IDL.Opt(IDL.Text),
112
+ sizeBytes: IDL.Opt(IDL.Nat),
113
+ metadata: IDL.Opt(IDL.Vec(IDL.Tuple(IDL.Text, IDL.Text))),
114
+ });
115
+ const AccessGrant = IDL.Record({
116
+ grantId: IDL.Text,
117
+ contentRef: ContentRef,
118
+ grantee: IDL.Principal,
119
+ receiptId: IDL.Text,
120
+ issuedAt: IDL.Int,
121
+ expiresAt: IDL.Int,
122
+ hmac: IDL.Vec(IDL.Nat8),
123
+ });
124
+ const AccessGrantResult = IDL.Variant({
125
+ ok: IDL.Null,
126
+ expired: IDL.Null,
127
+ invalidGrant: IDL.Null,
128
+ revoked: IDL.Null,
129
+ });
130
+ const DeliveryMethod = IDL.Variant({
131
+ inline: IDL.Vec(IDL.Nat8),
132
+ canisterQuery: IDL.Record({ method: IDL.Text, chunkCount: IDL.Nat }),
133
+ httpUrl: IDL.Text,
134
+ assetCanister: IDL.Record({ canisterId: IDL.Principal, path: IDL.Text }),
135
+ });
136
+ const ContentDelivery = IDL.Record({
137
+ grant: AccessGrant,
138
+ delivery: DeliveryMethod,
139
+ });
140
+ const GetContentResult = IDL.Variant({
141
+ paymentRequired: IDL.Vec(PaymentRequirement),
142
+ ok: ContentDelivery,
143
+ error: IDL.Text,
144
+ });
145
+ const SearchResult = IDL.Variant({
146
+ paymentRequired: IDL.Vec(PaymentRequirement),
147
+ ok: IDL.Vec(IDL.Text),
148
+ error: IDL.Text,
149
+ });
150
+ const OpenSessionResult = IDL.Variant({
151
+ ok: SessionState,
152
+ err: IDL.Text,
153
+ });
154
+ const SessionQueryResult = IDL.Variant({
155
+ ok: IDL.Text,
156
+ error: IDL.Text,
157
+ });
158
+ // ── Identity (ERC-8004) ──
159
+ const ServiceEntry = IDL.Record({
160
+ name: IDL.Text,
161
+ endpoint: IDL.Text,
162
+ version: IDL.Text,
163
+ skills: IDL.Vec(IDL.Text),
164
+ domains: IDL.Vec(IDL.Text),
165
+ });
166
+ const AgentCard = IDL.Record({
167
+ name: IDL.Text,
168
+ description: IDL.Text,
169
+ services: IDL.Vec(ServiceEntry),
170
+ x402Support: IDL.Bool,
171
+ });
172
+ // ── Content Store ──
173
+ const ContentEntry = IDL.Record({
174
+ id: IDL.Text,
175
+ mimeType: IDL.Text,
176
+ totalSize: IDL.Nat,
177
+ chunkCount: IDL.Nat,
178
+ createdAt: IDL.Int,
179
+ });
180
+ const ContentStoreResult = IDL.Variant({
181
+ ok: IDL.Null,
182
+ contentNotFound: IDL.Null,
183
+ chunkNotFound: IDL.Nat,
184
+ contentAlreadyExists: IDL.Null,
185
+ chunkTooLarge: IDL.Nat,
186
+ });
187
+ export const exampleIdlFactory = () => IDL.Service({
188
+ // Paid service
189
+ search: IDL.Func([IDL.Text, IDL.Opt(PaymentSignature)], [SearchResult], []),
190
+ // Sessions
191
+ requestSession: IDL.Func([], [SessionIntent], []),
192
+ openSession: IDL.Func([SessionConfig, PaymentSignature], [OpenSessionResult], []),
193
+ sessionQuery: IDL.Func([Voucher, IDL.Text], [SessionQueryResult], []),
194
+ endSession: IDL.Func([IDL.Text], [PaymentResult], []),
195
+ // Pattern 1: In-canister content (ContentStore)
196
+ uploadContent: IDL.Func([IDL.Text, IDL.Text, IDL.Vec(IDL.Nat8)], [ContentStoreResult], []),
197
+ uploadContentInit: IDL.Func([IDL.Text, IDL.Text, IDL.Nat, IDL.Nat], [ContentStoreResult], []),
198
+ uploadContentChunk: IDL.Func([IDL.Text, IDL.Nat, IDL.Vec(IDL.Nat8)], [ContentStoreResult], []),
199
+ deleteContent: IDL.Func([IDL.Text], [ContentStoreResult], []),
200
+ listContent: IDL.Func([], [IDL.Vec(ContentEntry)], ['query']),
201
+ getContent: IDL.Func([IDL.Text, IDL.Opt(PaymentSignature)], [GetContentResult], []),
202
+ getChunk: IDL.Func([AccessGrant, IDL.Nat], [IDL.Opt(IDL.Vec(IDL.Nat8))], ['query']),
203
+ // Pattern 2: Asset canister
204
+ getAssetContent: IDL.Func([IDL.Text, IDL.Opt(PaymentSignature)], [GetContentResult], []),
205
+ // Pattern 3: External (S3/IPFS/Arweave)
206
+ getExternalContent: IDL.Func([IDL.Text, IDL.Opt(PaymentSignature)], [GetContentResult], []),
207
+ // Identity (ERC-8004)
208
+ getAgentCard: IDL.Func([], [AgentCard], ['query']),
209
+ getAgentId: IDL.Func([], [IDL.Opt(IDL.Nat)], ['query']),
210
+ getEvmPublicKey: IDL.Func([], [IDL.Vec(IDL.Nat8)], []),
211
+ getEvmAddress: IDL.Func([], [IDL.Text], []),
212
+ registerAgent: IDL.Func([], [IDL.Variant({ ok: IDL.Record({ tokenId: IDL.Nat, txHash: IDL.Text }), err: IDL.Text })], []),
213
+ // x402 Client
214
+ fetchX402: IDL.Func([IDL.Text], [
215
+ IDL.Variant({
216
+ ok: IDL.Record({
217
+ status: IDL.Nat,
218
+ body: IDL.Text,
219
+ paidAmount: IDL.Nat,
220
+ txHash: IDL.Text,
221
+ }),
222
+ free: IDL.Record({ status: IDL.Nat, body: IDL.Text }),
223
+ paymentFailed: IDL.Text,
224
+ httpError: IDL.Record({ status: IDL.Nat, body: IDL.Text }),
225
+ transientError: IDL.Text,
226
+ }),
227
+ ], []),
228
+ fetchX402Post: IDL.Func([IDL.Text, IDL.Text, IDL.Text], [
229
+ IDL.Variant({
230
+ ok: IDL.Record({
231
+ status: IDL.Nat,
232
+ body: IDL.Text,
233
+ paidAmount: IDL.Nat,
234
+ txHash: IDL.Text,
235
+ }),
236
+ free: IDL.Record({ status: IDL.Nat, body: IDL.Text }),
237
+ paymentFailed: IDL.Text,
238
+ httpError: IDL.Record({ status: IDL.Nat, body: IDL.Text }),
239
+ transientError: IDL.Text,
240
+ }),
241
+ ], []),
242
+ // Admin
243
+ verifyGrant: IDL.Func([AccessGrant], [AccessGrantResult], ['query']),
244
+ setPolicy: IDL.Func([SpendingPolicy], [], []),
245
+ forceCloseSession: IDL.Func([IDL.Text], [PaymentResult], []),
246
+ });
247
+ export { PaymentRequirement, PaymentSignature, PaymentReceipt, PaymentResult, SessionIntent, SessionState, SessionConfig, Voucher, SpendingPolicy, ContentRef, AccessGrant, AccessGrantResult, DeliveryMethod, ContentDelivery, GetContentResult, ContentEntry, ContentStoreResult, ServiceEntry, AgentCard, };
248
+ //# sourceMappingURL=idl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idl.js","sourceRoot":"","sources":["../src/idl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export { Ic402Client } from './client.js';
2
+ export type { Ic402ClientConfig, SessionHandle, BudgetConfig, SessionPreferences, } from './client.js';
3
+ export type { PaymentRequirement, PaymentReceipt, SessionIntent, SessionState, Voucher, ContentRef, AccessGrant, AccessGrantResult, DeliveryMethod, ContentDelivery, ContentEntry, ContentStoreResult, } from './types.js';
4
+ export type { Eip3009Authorization, X402PaymentRequirement } from './types.js';
5
+ export { signVoucher, encodeVoucherPayload } from './voucher.js';
6
+ export type { VoucherSigner } from './voucher.js';
7
+ export { exampleIdlFactory } from './idl.js';
8
+ export { usdcDomain, TRANSFER_WITH_AUTHORIZATION_TYPES, buildTransferAuthorizationMessage, buildX402PaymentHeader, } from './eip712.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EACV,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,OAAO,EACP,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,YAAY,EACZ,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,iCAAiC,EACjC,iCAAiC,EACjC,sBAAsB,GACvB,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export { Ic402Client } from './client.js';
2
+ export { signVoucher, encodeVoucherPayload } from './voucher.js';
3
+ export { exampleIdlFactory } from './idl.js';
4
+ export { usdcDomain, TRANSFER_WITH_AUTHORIZATION_TYPES, buildTransferAuthorizationMessage, buildX402PaymentHeader, } from './eip712.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAsB1C,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EACL,UAAU,EACV,iCAAiC,EACjC,iCAAiC,EACjC,sBAAsB,GACvB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,132 @@
1
+ export interface PaymentRequirement {
2
+ scheme: string;
3
+ network: string;
4
+ token: string;
5
+ amount: bigint;
6
+ recipient: string;
7
+ nonce: Uint8Array;
8
+ expiry: bigint;
9
+ }
10
+ export interface PaymentReceipt {
11
+ id: string;
12
+ amount: bigint;
13
+ token: string;
14
+ sender: string;
15
+ recipient: string;
16
+ network: string;
17
+ timestamp: bigint;
18
+ txHash?: string;
19
+ sessionId?: string;
20
+ refunded?: bigint;
21
+ }
22
+ export interface SessionIntent {
23
+ network: string;
24
+ token: string;
25
+ recipient: string;
26
+ suggestedDeposit: bigint;
27
+ minDeposit?: bigint;
28
+ expiry: bigint;
29
+ costPerCall?: bigint;
30
+ description?: string;
31
+ }
32
+ export interface SessionState {
33
+ id: string;
34
+ deposited: bigint;
35
+ consumed: bigint;
36
+ remaining: bigint;
37
+ voucherCount: bigint;
38
+ status: 'open' | 'closing' | 'closed' | 'expired';
39
+ openedAt: bigint;
40
+ lastActivityAt: bigint;
41
+ }
42
+ export interface Voucher {
43
+ sessionId: string;
44
+ cumulativeAmount: bigint;
45
+ sequence: bigint;
46
+ signature: Uint8Array;
47
+ }
48
+ export interface Eip3009Authorization {
49
+ from: string;
50
+ to: string;
51
+ value: bigint;
52
+ validAfter: bigint;
53
+ validBefore: bigint;
54
+ nonce: Uint8Array;
55
+ v: number;
56
+ r: Uint8Array;
57
+ s: Uint8Array;
58
+ }
59
+ export interface X402PaymentRequirement {
60
+ scheme: string;
61
+ network: string;
62
+ asset: string;
63
+ maxAmountRequired: string;
64
+ payTo: string;
65
+ maxTimeoutSeconds: number;
66
+ extra?: {
67
+ name: string;
68
+ version: string;
69
+ };
70
+ }
71
+ export interface ContentRef {
72
+ id: string;
73
+ mimeType?: string;
74
+ sizeBytes?: bigint;
75
+ metadata?: [string, string][];
76
+ }
77
+ export interface AccessGrant {
78
+ grantId: string;
79
+ contentRef: ContentRef;
80
+ grantee: string;
81
+ receiptId: string;
82
+ issuedAt: bigint;
83
+ expiresAt: bigint;
84
+ hmac: Uint8Array;
85
+ }
86
+ export type AccessGrantResult = {
87
+ ok: null;
88
+ } | {
89
+ expired: null;
90
+ } | {
91
+ invalidGrant: null;
92
+ } | {
93
+ revoked: null;
94
+ };
95
+ export type DeliveryMethod = {
96
+ inline: Uint8Array;
97
+ } | {
98
+ canisterQuery: {
99
+ method: string;
100
+ chunkCount: bigint;
101
+ };
102
+ } | {
103
+ httpUrl: string;
104
+ } | {
105
+ assetCanister: {
106
+ canisterId: string;
107
+ path: string;
108
+ };
109
+ };
110
+ export interface ContentDelivery {
111
+ grant: AccessGrant;
112
+ delivery: DeliveryMethod;
113
+ }
114
+ export interface ContentEntry {
115
+ id: string;
116
+ mimeType: string;
117
+ totalSize: bigint;
118
+ chunkCount: bigint;
119
+ createdAt: bigint;
120
+ }
121
+ export type ContentStoreResult = {
122
+ ok: null;
123
+ } | {
124
+ contentNotFound: null;
125
+ } | {
126
+ chunkNotFound: bigint;
127
+ } | {
128
+ contentAlreadyExists: null;
129
+ } | {
130
+ chunkTooLarge: bigint;
131
+ };
132
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ /// Mirrors the Motoko types from src/ic402/Types.mo.
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,qDAAqD"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * CBOR-encode a voucher payload for signing.
3
+ * Produces canonical CBOR: array(3) of [sessionId, cumulativeAmount, sequence]
4
+ */
5
+ declare function encodeVoucherPayload(sessionId: string, cumulativeAmount: bigint, sequence: bigint): Uint8Array;
6
+ export interface VoucherSigner {
7
+ sign(payload: Uint8Array): Promise<Uint8Array>;
8
+ getPublicKey(): Promise<Uint8Array>;
9
+ }
10
+ /**
11
+ * Sign a cumulative voucher for a session.
12
+ *
13
+ * @param signer - An object with a sign method (e.g., Ed25519KeyIdentity)
14
+ * @param sessionId - The session to sign for
15
+ * @param cumulativeAmount - Total amount consumed so far
16
+ * @param sequence - Monotonically increasing sequence number
17
+ * @returns The signed voucher blob
18
+ */
19
+ export declare function signVoucher(signer: VoucherSigner, sessionId: string, cumulativeAmount: bigint, sequence: bigint): Promise<Uint8Array>;
20
+ export { encodeVoucherPayload };
21
+ //# sourceMappingURL=voucher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voucher.d.ts","sourceRoot":"","sources":["../src/voucher.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,iBAAS,oBAAoB,CAC3B,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,UAAU,CAEZ;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/C,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;CACrC;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,25 @@
1
+ /// Voucher signing for ic402 sessions.
2
+ /// Signs cumulative voucher payloads using Ed25519.
3
+ import { encode } from 'cborg';
4
+ /**
5
+ * CBOR-encode a voucher payload for signing.
6
+ * Produces canonical CBOR: array(3) of [sessionId, cumulativeAmount, sequence]
7
+ */
8
+ function encodeVoucherPayload(sessionId, cumulativeAmount, sequence) {
9
+ return encode([sessionId, cumulativeAmount, sequence]);
10
+ }
11
+ /**
12
+ * Sign a cumulative voucher for a session.
13
+ *
14
+ * @param signer - An object with a sign method (e.g., Ed25519KeyIdentity)
15
+ * @param sessionId - The session to sign for
16
+ * @param cumulativeAmount - Total amount consumed so far
17
+ * @param sequence - Monotonically increasing sequence number
18
+ * @returns The signed voucher blob
19
+ */
20
+ export async function signVoucher(signer, sessionId, cumulativeAmount, sequence) {
21
+ const payload = encodeVoucherPayload(sessionId, cumulativeAmount, sequence);
22
+ return signer.sign(payload);
23
+ }
24
+ export { encodeVoucherPayload };
25
+ //# sourceMappingURL=voucher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voucher.js","sourceRoot":"","sources":["../src/voucher.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,oDAAoD;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B;;;GAGG;AACH,SAAS,oBAAoB,CAC3B,SAAiB,EACjB,gBAAwB,EACxB,QAAgB;IAEhB,OAAO,MAAM,CAAC,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzD,CAAC;AAOD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAqB,EACrB,SAAiB,EACjB,gBAAwB,EACxB,QAAgB;IAEhB,MAAM,OAAO,GAAG,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IAC5E,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@ic402/client",
3
+ "version": "0.1.1",
4
+ "description": "TypeScript client SDK for ic402-enabled ICP canisters",
5
+ "license": "Apache-2.0",
6
+ "author": "ic402 contributors",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/vhew/ic402.git",
10
+ "directory": "packages/client"
11
+ },
12
+ "keywords": [
13
+ "ic402",
14
+ "x402",
15
+ "payment",
16
+ "icp",
17
+ "internet-computer",
18
+ "typescript",
19
+ "sdk",
20
+ "evm",
21
+ "icrc2",
22
+ "micropayment",
23
+ "streaming",
24
+ "eip-3009"
25
+ ],
26
+ "type": "module",
27
+ "main": "dist/index.js",
28
+ "types": "dist/index.d.ts",
29
+ "exports": {
30
+ ".": {
31
+ "types": "./dist/index.d.ts",
32
+ "import": "./dist/index.js",
33
+ "default": "./dist/index.js"
34
+ }
35
+ },
36
+ "files": [
37
+ "dist",
38
+ "README.md",
39
+ "LICENSE"
40
+ ],
41
+ "sideEffects": false,
42
+ "engines": {
43
+ "node": ">=19.0.0"
44
+ },
45
+ "scripts": {
46
+ "build": "tsc",
47
+ "test": "vitest run"
48
+ },
49
+ "dependencies": {
50
+ "@canister-software/x402-icp": "0.1.1",
51
+ "@x402/core": "2.7.0",
52
+ "@x402/fetch": "2.7.0",
53
+ "cborg": "4.5.8",
54
+ "viem": "2.47.5"
55
+ },
56
+ "peerDependencies": {
57
+ "@icp-sdk/core": ">=5.1.0"
58
+ },
59
+ "devDependencies": {
60
+ "@icp-sdk/core": "5.1.0",
61
+ "typescript": "5.9.3",
62
+ "vitest": "4.1.0"
63
+ }
64
+ }