@chipi-stack/backend 14.12.2 → 14.13.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/index.js +51 -14
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +51 -14
- package/dist/index.mjs.map +1 -1
- package/dist/skuPurchases.js +2 -2
- package/dist/skuPurchases.js.map +1 -1
- package/dist/skuPurchases.mjs +2 -2
- package/dist/skuPurchases.mjs.map +1 -1
- package/dist/transactions.js +2 -2
- package/dist/transactions.js.map +1 -1
- package/dist/transactions.mjs +2 -2
- package/dist/transactions.mjs.map +1 -1
- package/dist/wallets.js +2 -2
- package/dist/wallets.js.map +1 -1
- package/dist/wallets.mjs +2 -2
- package/dist/wallets.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -89,7 +89,7 @@ function hashCall(call) {
|
|
|
89
89
|
return poseidonSpan([
|
|
90
90
|
CALL_TYPE_HASH_REV1,
|
|
91
91
|
toBigInt(call.contractAddress),
|
|
92
|
-
toBigInt(starknet.hash.
|
|
92
|
+
toBigInt(starknet.hash.getSelector(call.entrypoint)),
|
|
93
93
|
calldataHash
|
|
94
94
|
]);
|
|
95
95
|
}
|
|
@@ -572,7 +572,7 @@ function serializeExecuteFromOutsideV2Calldata(params) {
|
|
|
572
572
|
out.push(BigInt(oe.calls.length));
|
|
573
573
|
for (const call of oe.calls) {
|
|
574
574
|
out.push(BigInt(call.contractAddress));
|
|
575
|
-
out.push(BigInt(starknet.hash.
|
|
575
|
+
out.push(BigInt(starknet.hash.getSelector(call.entrypoint)));
|
|
576
576
|
const callData = Array.isArray(call.calldata) ? call.calldata : [];
|
|
577
577
|
out.push(BigInt(callData.length));
|
|
578
578
|
for (const datum of callData) {
|
|
@@ -1952,9 +1952,9 @@ var ChipiTransactions = class {
|
|
|
1952
1952
|
/**
|
|
1953
1953
|
* Get on-chain transaction status
|
|
1954
1954
|
*/
|
|
1955
|
-
async getTransactionStatus(
|
|
1955
|
+
async getTransactionStatus(hash10, bearerToken) {
|
|
1956
1956
|
return this.client.get({
|
|
1957
|
-
endpoint: `${shared.API_ENDPOINTS.TRANSACTIONS}/${
|
|
1957
|
+
endpoint: `${shared.API_ENDPOINTS.TRANSACTIONS}/${hash10}/status`,
|
|
1958
1958
|
bearerToken
|
|
1959
1959
|
});
|
|
1960
1960
|
}
|
|
@@ -2124,6 +2124,42 @@ var ChipiSkus = class {
|
|
|
2124
2124
|
|
|
2125
2125
|
// src/sessions.ts
|
|
2126
2126
|
init_encryption2();
|
|
2127
|
+
var FIELD_PRIME = 2n ** 251n + 17n * 2n ** 192n + 1n;
|
|
2128
|
+
var HEX_FELT = /^0x[0-9a-fA-F]{1,64}$/;
|
|
2129
|
+
var DECIMAL_FELT = /^\d+$/;
|
|
2130
|
+
var CAIRO_IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
2131
|
+
function normalizeEntrypoints(entrypoints) {
|
|
2132
|
+
return entrypoints.map((entry) => {
|
|
2133
|
+
const value = String(entry).trim();
|
|
2134
|
+
if (HEX_FELT.test(value) || DECIMAL_FELT.test(value)) {
|
|
2135
|
+
const felt = BigInt(value);
|
|
2136
|
+
if (felt >= FIELD_PRIME) {
|
|
2137
|
+
throw new shared.ChipiSessionError(
|
|
2138
|
+
`Session entrypoint ${value} is not a valid felt (>= field prime).`,
|
|
2139
|
+
shared.SESSION_ERRORS.SESSION_ENTRYPOINT_NOT_ALLOWED
|
|
2140
|
+
);
|
|
2141
|
+
}
|
|
2142
|
+
return starknet.num.toHex(felt);
|
|
2143
|
+
}
|
|
2144
|
+
if (CAIRO_IDENTIFIER.test(value)) {
|
|
2145
|
+
return starknet.hash.getSelectorFromName(value);
|
|
2146
|
+
}
|
|
2147
|
+
throw new shared.ChipiSessionError(
|
|
2148
|
+
`Session entrypoint "${value}" is neither a selector (0x\u2026) nor a function name.`,
|
|
2149
|
+
shared.SESSION_ERRORS.SESSION_ENTRYPOINT_NOT_ALLOWED
|
|
2150
|
+
);
|
|
2151
|
+
});
|
|
2152
|
+
}
|
|
2153
|
+
function decodeSessionData(result, nowSeconds) {
|
|
2154
|
+
const validUntil = Number(BigInt(result[0]));
|
|
2155
|
+
const maxCalls = Number(BigInt(result[1]));
|
|
2156
|
+
const callsUsed = Number(BigInt(result[2]));
|
|
2157
|
+
const remainingCalls = Math.max(maxCalls - callsUsed, 0);
|
|
2158
|
+
const isActive = validUntil !== 0 && nowSeconds <= validUntil && remainingCalls > 0;
|
|
2159
|
+
return { isActive, validUntil, remainingCalls, allowedEntrypoints: [] };
|
|
2160
|
+
}
|
|
2161
|
+
|
|
2162
|
+
// src/sessions.ts
|
|
2127
2163
|
var ChipiSessions = class {
|
|
2128
2164
|
constructor(client) {
|
|
2129
2165
|
this.client = client;
|
|
@@ -2263,13 +2299,14 @@ var ChipiSessions = class {
|
|
|
2263
2299
|
maxCalls: sessionConfig.maxCalls,
|
|
2264
2300
|
allowedEntrypoints: sessionConfig.allowedEntrypoints.length
|
|
2265
2301
|
});
|
|
2302
|
+
const allowedEntrypoints = normalizeEntrypoints(sessionConfig.allowedEntrypoints);
|
|
2266
2303
|
const calldata = [
|
|
2267
2304
|
sessionConfig.sessionPublicKey,
|
|
2268
2305
|
starknet.num.toHex(sessionConfig.validUntil),
|
|
2269
2306
|
starknet.num.toHex(sessionConfig.maxCalls),
|
|
2270
2307
|
// Array: first element is length, then elements
|
|
2271
|
-
starknet.num.toHex(
|
|
2272
|
-
...
|
|
2308
|
+
starknet.num.toHex(allowedEntrypoints.length),
|
|
2309
|
+
...allowedEntrypoints
|
|
2273
2310
|
];
|
|
2274
2311
|
const txHash = await executePaymasterTransaction({
|
|
2275
2312
|
params: {
|
|
@@ -2419,11 +2456,10 @@ var ChipiSessions = class {
|
|
|
2419
2456
|
allowedEntrypoints: []
|
|
2420
2457
|
};
|
|
2421
2458
|
}
|
|
2422
|
-
const isActive
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
const allowedEntrypoints = resultArray.slice(4, 4 + entrypointsLen);
|
|
2459
|
+
const { isActive, validUntil, remainingCalls, allowedEntrypoints } = decodeSessionData(
|
|
2460
|
+
resultArray,
|
|
2461
|
+
Math.floor(Date.now() / 1e3)
|
|
2462
|
+
);
|
|
2427
2463
|
const sessionData = {
|
|
2428
2464
|
isActive,
|
|
2429
2465
|
validUntil,
|
|
@@ -2434,7 +2470,8 @@ var ChipiSessions = class {
|
|
|
2434
2470
|
isActive,
|
|
2435
2471
|
validUntil: new Date(validUntil * 1e3).toISOString(),
|
|
2436
2472
|
remainingCalls,
|
|
2437
|
-
|
|
2473
|
+
// The struct carries the whitelist length, not the selectors.
|
|
2474
|
+
allowedEntrypointsLen: Number(BigInt(resultArray[3]))
|
|
2438
2475
|
});
|
|
2439
2476
|
return sessionData;
|
|
2440
2477
|
} catch (error) {
|
|
@@ -3586,8 +3623,8 @@ var ChipiSDK = class {
|
|
|
3586
3623
|
/**
|
|
3587
3624
|
* Get on-chain transaction status (supports polling for confirmation)
|
|
3588
3625
|
*/
|
|
3589
|
-
async getTransactionStatus(
|
|
3590
|
-
return this.transactions.getTransactionStatus(
|
|
3626
|
+
async getTransactionStatus(hash10, bearerToken) {
|
|
3627
|
+
return this.transactions.getTransactionStatus(hash10, this.resolveBearerToken(bearerToken));
|
|
3591
3628
|
}
|
|
3592
3629
|
/**
|
|
3593
3630
|
* Prepare a wallet upgrade (e.g., READY → CHIPI or CHIPI v29 → v33).
|