@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/LICENSE +190 -0
- package/README.md +112 -0
- package/dist/client.d.ts +105 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +309 -0
- package/dist/client.js.map +1 -0
- package/dist/eip712.d.ts +59 -0
- package/dist/eip712.d.ts.map +1 -0
- package/dist/eip712.js +74 -0
- package/dist/eip712.js.map +1 -0
- package/dist/idl.d.ts +48 -0
- package/dist/idl.d.ts.map +1 -0
- package/dist/idl.js +248 -0
- package/dist/idl.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +132 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/voucher.d.ts +21 -0
- package/dist/voucher.d.ts.map +1 -0
- package/dist/voucher.js +25 -0
- package/dist/voucher.js.map +1 -0
- package/package.json +64 -0
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
|
package/dist/idl.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idl.js","sourceRoot":"","sources":["../src/idl.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|
package/dist/types.d.ts
ADDED
|
@@ -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 @@
|
|
|
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"}
|
package/dist/voucher.js
ADDED
|
@@ -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
|
+
}
|