@cheqd/studio 3.17.0 → 3.18.0-develop.2
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/README.md +13 -7
- package/dist/controllers/api/account.d.ts +8 -3
- package/dist/controllers/api/account.d.ts.map +1 -1
- package/dist/controllers/api/account.js +153 -34
- package/dist/controllers/api/account.js.map +1 -1
- package/dist/database/cache/store.d.ts +7 -0
- package/dist/database/cache/store.d.ts.map +1 -1
- package/dist/database/cache/store.js +6 -0
- package/dist/database/cache/store.js.map +1 -1
- package/dist/database/entities/faucet-request.entity.d.ts +25 -0
- package/dist/database/entities/faucet-request.entity.d.ts.map +1 -0
- package/dist/database/entities/faucet-request.entity.js +89 -0
- package/dist/database/entities/faucet-request.entity.js.map +1 -0
- package/dist/database/migrations/1791500000000-studio-migrations.d.ts +7 -0
- package/dist/database/migrations/1791500000000-studio-migrations.d.ts.map +1 -0
- package/dist/database/migrations/1791500000000-studio-migrations.js +14 -0
- package/dist/database/migrations/1791500000000-studio-migrations.js.map +1 -0
- package/dist/database/migrations/1791500000001-studio-migrations.d.ts +7 -0
- package/dist/database/migrations/1791500000001-studio-migrations.d.ts.map +1 -0
- package/dist/database/migrations/1791500000001-studio-migrations.js +16 -0
- package/dist/database/migrations/1791500000001-studio-migrations.js.map +1 -0
- package/dist/database/types/types.d.ts.map +1 -1
- package/dist/database/types/types.js +8 -0
- package/dist/database/types/types.js.map +1 -1
- package/dist/helpers/faucet-quota.d.ts +90 -0
- package/dist/helpers/faucet-quota.d.ts.map +1 -0
- package/dist/helpers/faucet-quota.js +99 -0
- package/dist/helpers/faucet-quota.js.map +1 -0
- package/dist/helpers/faucet.d.ts +3 -1
- package/dist/helpers/faucet.d.ts.map +1 -1
- package/dist/helpers/faucet.js +9 -2
- package/dist/helpers/faucet.js.map +1 -1
- package/dist/services/api/faucet-request.d.ts +39 -0
- package/dist/services/api/faucet-request.d.ts.map +1 -0
- package/dist/services/api/faucet-request.js +106 -0
- package/dist/services/api/faucet-request.js.map +1 -0
- package/dist/static/swagger-api.json +65 -3
- package/dist/types/account.d.ts +16 -0
- package/dist/types/account.d.ts.map +1 -1
- package/dist/types/constants.d.ts +14 -1
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/constants.js +42 -5
- package/dist/types/constants.js.map +1 -1
- package/dist/types/swagger-api-types.d.ts +39 -0
- package/dist/types/swagger-api-types.d.ts.map +1 -1
- package/dist/types/swagger-api-types.js +39 -0
- package/dist/types/swagger-api-types.js.map +1 -1
- package/example.env +13 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -107,13 +107,19 @@ some tokens on the testnet for making the process simpler.
|
|
|
107
107
|
|
|
108
108
|
1. `ENABLE_ACCOUNT_TOPUP`: Enable/disable such functionality (`false` by default)
|
|
109
109
|
2. `FAUCET_URI`: Faucet service API endpoint (Default: `https://faucet-api.cheqd.network/credit`)
|
|
110
|
-
3. `
|
|
111
|
-
4. `TESTNET_MINIMUM_BALANCE`: Backward-compatible fallback for the
|
|
112
|
-
5. `
|
|
113
|
-
6. `
|
|
114
|
-
7. `
|
|
115
|
-
|
|
116
|
-
|
|
110
|
+
3. `TESTNET_INITIAL_TOPUP_CHEQ`: Amount of testnet `CHEQ` a new account's testnet address is topped up to when it is bootstrapped (only if `ENABLE_ACCOUNT_TOPUP` is `true`), converted to `ncheq` internally. The top-up is debited from the customer's monthly faucet quota (`FAUCET_MONTHLY_LIMIT_CHEQ`); if the quota is exhausted it is skipped and account creation still succeeds. The previous name, `TESTNET_FAUCET_UPPER_CAP_CHEQ`, is still honoured as a fallback. (Default: `TESTNET_MINIMUM_BALANCE`, or 10,000 CHEQ)
|
|
111
|
+
4. `TESTNET_MINIMUM_BALANCE`: Backward-compatible fallback for the initial top-up amount if neither `TESTNET_INITIAL_TOPUP_CHEQ` nor `TESTNET_FAUCET_UPPER_CAP_CHEQ` is set. (Default: 10,000 CHEQ testnet tokens)
|
|
112
|
+
5. `FAUCET_MONTHLY_LIMIT_CHEQ`: The most `CHEQ` a customer can request through `POST /account/faucet` across all their addresses per calendar month (UTC). Usable with a Studio session or an API key. Requests that would exceed it return `429` with a `Retry-After` header. The initial top-up at account creation counts towards it. (Default: 100,000 CHEQ)
|
|
113
|
+
6. `FAUCET_ADDRESS_CAP_CHEQ`: The most `CHEQ` a single testnet address can hold before `POST /account/faucet` stops topping it up. (Default: `FAUCET_MONTHLY_LIMIT_CHEQ`, so there is one figure unless this is set)
|
|
114
|
+
7. `FAUCET_SUBSCRIPTION_CACHE_SECONDS`: How long `POST /account/faucet` caches a customer's Stripe subscription status and plan, so API-key use does not call Stripe on every request. The stored subscription status is still checked on every request, so a cancellation takes effect immediately; a plan change can take this long to be seen. `0` disables the cache. (Default: 60)
|
|
115
|
+
8. `FAUCET_MIN_INTERVAL_SECONDS`: Minimum gap between two `POST /account/faucet` requests from the same customer, so a script cannot hammer the endpoint in a tight loop. A request made too soon returns `429` with a `Retry-After` header and does not reach Stripe, the RPC node or the faucet. `0` disables it. Does not apply to the automatic top-up at account creation. (Default: 10)
|
|
116
|
+
9. `FAUCET_PENDING_TIMEOUT_SECONDS`: How long a faucet quota reservation that has not been confirmed counts towards the quota before it is treated as abandoned (for example because the process died before calling the faucet). Keep it longer than the longest faucet call. A reservation whose faucet call threw (outcome unknown, so tokens may have been sent) always keeps counting. (Default: 600)
|
|
117
|
+
10. `FAUCET_REQUEST_TIMEOUT_SECONDS`: How long to wait for the faucet service to answer before giving up. A `POST /account/faucet` that times out returns `504`; the faucet may still have credited the account, so the quota used is kept. (Default: 30)
|
|
118
|
+
11. `FAUCET_API_KEY`: API key for faucet service authentication
|
|
119
|
+
12. `FAUCET_ACCESS_CLIENT_ID`: Cloudflare Access client ID for accessing the Testnet Faucet API
|
|
120
|
+
13. `FAUCET_ACCESS_CLIENT_SECRET`: Cloudflare Access client secret for accessing the Testnet Faucet API
|
|
121
|
+
|
|
122
|
+
Studio exposes `POST /account/faucet` for authenticated Studio users on Basic-or-higher subscriptions. The endpoint accepts optional `address` and `amount` fields; `amount` is expressed in CHEQ. If `address` is omitted, Studio uses the customer's testnet payment account. If `amount` is omitted, Studio tops the address up to `FAUCET_ADDRESS_CAP_CHEQ`, or by whatever monthly quota is left if that is lower. Requests that exceed the address cap return a `requestMore.mailtoHref` for contacting `product@cheqd.io`.
|
|
117
123
|
|
|
118
124
|
#### Account balances & CHEQ pricing
|
|
119
125
|
|
|
@@ -93,7 +93,7 @@ export declare class AccountController {
|
|
|
93
93
|
* post:
|
|
94
94
|
* tags: [Account]
|
|
95
95
|
* summary: Request cheqd testnet CHEQ tokens for a Studio payment account.
|
|
96
|
-
* description: Funds an authenticated Studio user's owned testnet payment account up to the
|
|
96
|
+
* description: Funds an authenticated Studio user's owned testnet payment account. An address can hold at most FAUCET_ADDRESS_CAP_CHEQ, and a customer can request at most FAUCET_MONTHLY_LIMIT_CHEQ per calendar month (UTC) across all their addresses; both default to 100,000 CHEQ. Without an amount the address is topped up to the cap, or by the quota left if that is lower. Works with a Studio user session or an API key; the response includes the remaining quota.
|
|
97
97
|
* requestBody:
|
|
98
98
|
* content:
|
|
99
99
|
* application/json:
|
|
@@ -105,7 +105,7 @@ export declare class AccountController {
|
|
|
105
105
|
* description: Optional owned Studio testnet payment account address. Defaults to the authenticated customer's testnet account.
|
|
106
106
|
* amount:
|
|
107
107
|
* type: number
|
|
108
|
-
* description: Optional amount in CHEQ. Defaults to the
|
|
108
|
+
* description: Optional amount in CHEQ. Defaults to the most that can be requested now (the lower of the room under the address cap and the monthly quota left).
|
|
109
109
|
* responses:
|
|
110
110
|
* 200:
|
|
111
111
|
* description: The request was processed.
|
|
@@ -117,8 +117,12 @@ export declare class AccountController {
|
|
|
117
117
|
* description: Forbidden.
|
|
118
118
|
* 404:
|
|
119
119
|
* description: No Studio testnet payment account was found for this customer.
|
|
120
|
+
* 429:
|
|
121
|
+
* description: Too many requests. Either the customer's monthly faucet quota is exhausted (the body includes the quota details), or a request was made too soon after the previous one (FAUCET_MIN_INTERVAL_SECONDS). The Retry-After header gives the seconds to wait.
|
|
120
122
|
* 502:
|
|
121
123
|
* description: Upstream faucet request failed.
|
|
124
|
+
* 504:
|
|
125
|
+
* description: The faucet did not respond within FAUCET_REQUEST_TIMEOUT_SECONDS. The request may or may not have been processed.
|
|
122
126
|
* 503:
|
|
123
127
|
* description: Stripe subscription checks are disabled.
|
|
124
128
|
* 500:
|
|
@@ -168,7 +172,8 @@ export declare class AccountController {
|
|
|
168
172
|
* Returns the on-chain balance of the authenticated customer's mainnet and testnet payment
|
|
169
173
|
* accounts, expressed in ncheq, CHEQ and USD. The CHEQ/USD rate is sourced from CoinGecko and
|
|
170
174
|
* cached; if it (or a network's RPC endpoint) is unavailable the response still returns 200 with
|
|
171
|
-
* the affected `usd`/`rate`/`balance` fields set to `null`.
|
|
175
|
+
* the affected `usd`/`rate`/`balance` fields set to `null`. Also returns the testnet faucet cap and
|
|
176
|
+
* the customer's monthly faucet quota usage under `faucet`.
|
|
172
177
|
* responses:
|
|
173
178
|
* 200:
|
|
174
179
|
* description: The request was successful.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/controllers/api/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAU9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAgB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../src/controllers/api/account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mDAAmD,CAAC;AAU9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAgB,MAAM,YAAY,CAAC;AAwDxD,qBAAa,iBAAiB;IAC7B,OAAc,eAAe,gDAS3B;IAEF,OAAc,eAAe,gDAG3B;IACF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACU,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAoCtD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAiC/C,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;WA2N9C,wBAAwB,CACpC,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,oBAAoB,EAAE,EAChC,cAAc,EAAE,cAAc,GAC5B,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;IA2DjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IAEU,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAyGxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IAEU,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAoLrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACU,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IA0C9D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;CAuF9D"}
|
|
@@ -5,10 +5,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { CheqdNetwork, checkBalance } from '@cheqd/sdk';
|
|
8
|
-
import { MINIMAL_DENOM, OperationNameEnum,
|
|
8
|
+
import { FAUCET_ADDRESS_CAP_CHEQ, FAUCET_MIN_INTERVAL_SECONDS, FAUCET_MONTHLY_LIMIT_CHEQ, FAUCET_SUBSCRIPTION_CACHE_SECONDS, MINIMAL_DENOM, OperationNameEnum, TESTNET_INITIAL_TOPUP_CHEQ, } from '../../types/constants.js';
|
|
9
9
|
import { CustomerService } from '../../services/api/customer.js';
|
|
10
10
|
import { LogToHelper } from '../../middleware/auth/logto-helper.js';
|
|
11
|
-
import { FaucetHelper } from '../../helpers/faucet.js';
|
|
11
|
+
import { FaucetHelper, isFaucetTimeout } from '../../helpers/faucet.js';
|
|
12
12
|
import { PriceHelper } from '../../helpers/price.js';
|
|
13
13
|
import { cheqToNcheq, ncheqToCheq, toSafeFaucetAmount } from '../../helpers/denom.js';
|
|
14
14
|
import { StatusCodes } from 'http-status-codes';
|
|
@@ -34,6 +34,8 @@ import { ResourceService } from '../../services/api/resource.js';
|
|
|
34
34
|
import { CredentialCategory } from '../../types/credential.js';
|
|
35
35
|
import { Like } from 'typeorm';
|
|
36
36
|
import { productHasCapability, StudioPlanCapability } from '../../services/admin/plan-capabilities.js';
|
|
37
|
+
import { FaucetRequestService } from '../../services/api/faucet-request.js';
|
|
38
|
+
import { buildFaucetQuotaSummary, creditWithinQuota, getFaucetQuotaWindow, maxRequestableNcheq, remainingQuota, secondsUntilReset, } from '../../helpers/faucet-quota.js';
|
|
37
39
|
dotenv.config();
|
|
38
40
|
export class AccountController {
|
|
39
41
|
static createValidator = [
|
|
@@ -457,14 +459,18 @@ export class AccountController {
|
|
|
457
459
|
const testnetAccount = testnetAccountResponse.data;
|
|
458
460
|
// 4. Check the token balance for Testnet account
|
|
459
461
|
if (testnetAccount.address && process.env.ENABLE_ACCOUNT_TOPUP === 'true') {
|
|
460
|
-
const topupAmountNcheq = cheqToNcheq(
|
|
462
|
+
const topupAmountNcheq = cheqToNcheq(TESTNET_INITIAL_TOPUP_CHEQ) - (await getTestnetBalanceNcheq(testnetAccount.address));
|
|
461
463
|
if (topupAmountNcheq > 0n) {
|
|
462
464
|
// 3.1 If it's less then required for DID creation - assign new portion from testnet-faucet
|
|
463
465
|
// Handle case where firstName or lastName is not set
|
|
464
466
|
const faucetFirstName = logToFirstName || customerEntity.name;
|
|
465
467
|
const faucetLastName = logToLastName || 'n/a';
|
|
466
|
-
const resp = await
|
|
467
|
-
if (resp.
|
|
468
|
+
const resp = await delegateWithinQuota(customerEntity, testnetAccount.address, faucetFirstName, faucetLastName, topupAmountNcheq);
|
|
469
|
+
if (resp.quotaExceeded) {
|
|
470
|
+
// Account creation must not fail because the monthly faucet quota is used up
|
|
471
|
+
console.warn(`Initial testnet top-up skipped, monthly faucet quota exceeded: ${customerEntity.customerId}`);
|
|
472
|
+
}
|
|
473
|
+
else if (resp.status !== StatusCodes.OK) {
|
|
468
474
|
return response.status(StatusCodes.BAD_GATEWAY).json({
|
|
469
475
|
error: resp.error,
|
|
470
476
|
});
|
|
@@ -497,7 +503,7 @@ export class AccountController {
|
|
|
497
503
|
* post:
|
|
498
504
|
* tags: [Account]
|
|
499
505
|
* summary: Request cheqd testnet CHEQ tokens for a Studio payment account.
|
|
500
|
-
* description: Funds an authenticated Studio user's owned testnet payment account up to the
|
|
506
|
+
* description: Funds an authenticated Studio user's owned testnet payment account. An address can hold at most FAUCET_ADDRESS_CAP_CHEQ, and a customer can request at most FAUCET_MONTHLY_LIMIT_CHEQ per calendar month (UTC) across all their addresses; both default to 100,000 CHEQ. Without an amount the address is topped up to the cap, or by the quota left if that is lower. Works with a Studio user session or an API key; the response includes the remaining quota.
|
|
501
507
|
* requestBody:
|
|
502
508
|
* content:
|
|
503
509
|
* application/json:
|
|
@@ -509,7 +515,7 @@ export class AccountController {
|
|
|
509
515
|
* description: Optional owned Studio testnet payment account address. Defaults to the authenticated customer's testnet account.
|
|
510
516
|
* amount:
|
|
511
517
|
* type: number
|
|
512
|
-
* description: Optional amount in CHEQ. Defaults to the
|
|
518
|
+
* description: Optional amount in CHEQ. Defaults to the most that can be requested now (the lower of the room under the address cap and the monthly quota left).
|
|
513
519
|
* responses:
|
|
514
520
|
* 200:
|
|
515
521
|
* description: The request was processed.
|
|
@@ -521,19 +527,18 @@ export class AccountController {
|
|
|
521
527
|
* description: Forbidden.
|
|
522
528
|
* 404:
|
|
523
529
|
* description: No Studio testnet payment account was found for this customer.
|
|
530
|
+
* 429:
|
|
531
|
+
* description: Too many requests. Either the customer's monthly faucet quota is exhausted (the body includes the quota details), or a request was made too soon after the previous one (FAUCET_MIN_INTERVAL_SECONDS). The Retry-After header gives the seconds to wait.
|
|
524
532
|
* 502:
|
|
525
533
|
* description: Upstream faucet request failed.
|
|
534
|
+
* 504:
|
|
535
|
+
* description: The faucet did not respond within FAUCET_REQUEST_TIMEOUT_SECONDS. The request may or may not have been processed.
|
|
526
536
|
* 503:
|
|
527
537
|
* description: Stripe subscription checks are disabled.
|
|
528
538
|
* 500:
|
|
529
539
|
* $ref: '#/components/schemas/InternalError'
|
|
530
540
|
*/
|
|
531
541
|
async requestFaucetTokens(request, response) {
|
|
532
|
-
if (request.headers['x-api-key'] || request.headers['customer-id']) {
|
|
533
|
-
return response.status(StatusCodes.FORBIDDEN).json({
|
|
534
|
-
error: 'Faucet requests are only available to authenticated Studio users.',
|
|
535
|
-
});
|
|
536
|
-
}
|
|
537
542
|
if (!response.locals.user || !response.locals.customer) {
|
|
538
543
|
return response.status(StatusCodes.UNAUTHORIZED).json({
|
|
539
544
|
error: 'Unauthorized error: Studio user context was not found.',
|
|
@@ -549,20 +554,24 @@ export class AccountController {
|
|
|
549
554
|
const requestedAddress = request.body.address;
|
|
550
555
|
const requestedAmountCheq = request.body.amount !== undefined ? Number(request.body.amount) : undefined;
|
|
551
556
|
try {
|
|
557
|
+
// Cheap check first, so a tight loop of requests does not reach Stripe, the RPC node or the faucet
|
|
558
|
+
const waitSeconds = await FaucetRequestService.instance.getSecondsUntilNextAllowed(customer, FAUCET_MIN_INTERVAL_SECONDS);
|
|
559
|
+
if (waitSeconds > 0) {
|
|
560
|
+
return tooManyFaucetRequests(response, waitSeconds);
|
|
561
|
+
}
|
|
552
562
|
const subscription = await SubscriptionService.instance.findCurrent(customer);
|
|
553
563
|
if (!subscription) {
|
|
554
564
|
return response.status(StatusCodes.FORBIDDEN).json({
|
|
555
565
|
error: 'An active Basic or higher subscription is required to request testnet CHEQ tokens.',
|
|
556
566
|
});
|
|
557
567
|
}
|
|
558
|
-
const
|
|
559
|
-
if (!['active', 'trialing'].includes(
|
|
568
|
+
const plan = await getSubscriptionPlan(stripe, subscription.subscriptionId);
|
|
569
|
+
if (!['active', 'trialing'].includes(plan.status)) {
|
|
560
570
|
return response.status(StatusCodes.FORBIDDEN).json({
|
|
561
571
|
error: 'An active Basic or higher subscription is required to request testnet CHEQ tokens.',
|
|
562
572
|
});
|
|
563
573
|
}
|
|
564
|
-
|
|
565
|
-
if (!productHasCapability(productId, StudioPlanCapability.Faucet)) {
|
|
574
|
+
if (!productHasCapability(plan.productId, StudioPlanCapability.Faucet)) {
|
|
566
575
|
return response.status(StatusCodes.FORBIDDEN).json({
|
|
567
576
|
error: 'The current subscription does not include testnet faucet access.',
|
|
568
577
|
});
|
|
@@ -575,16 +584,27 @@ export class AccountController {
|
|
|
575
584
|
: 'No Studio testnet payment account was found for this customer.',
|
|
576
585
|
});
|
|
577
586
|
}
|
|
578
|
-
const
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
587
|
+
const addressCapNcheq = cheqToNcheq(FAUCET_ADDRESS_CAP_CHEQ);
|
|
588
|
+
const quotaLimitNcheq = cheqToNcheq(FAUCET_MONTHLY_LIMIT_CHEQ);
|
|
589
|
+
// Nothing can be requested once the quota is used up, so answer before the (slow) balance query
|
|
590
|
+
const usedNcheq = await FaucetRequestService.instance.getUsedNcheq(customer);
|
|
591
|
+
const quotaRemainingNcheq = remainingQuota(usedNcheq, quotaLimitNcheq);
|
|
592
|
+
if (quotaRemainingNcheq <= 0n) {
|
|
593
|
+
const window = getFaucetQuotaWindow();
|
|
594
|
+
return response
|
|
595
|
+
.status(StatusCodes.TOO_MANY_REQUESTS)
|
|
596
|
+
.set('Retry-After', String(secondsUntilReset(window)))
|
|
597
|
+
.json({
|
|
598
|
+
error: 'Monthly testnet faucet quota exceeded for this account.',
|
|
599
|
+
quota: buildFaucetQuotaSummary(usedNcheq, quotaLimitNcheq, window),
|
|
582
600
|
});
|
|
583
601
|
}
|
|
584
602
|
const currentBalanceNcheq = await getTestnetBalanceNcheq(testnetAccount.address);
|
|
585
|
-
const
|
|
586
|
-
|
|
587
|
-
|
|
603
|
+
const roomUnderCapNcheq = addressCapNcheq - currentBalanceNcheq;
|
|
604
|
+
// What can be requested right now: limited by both the room under the address cap and the monthly quota
|
|
605
|
+
const maxRequestable = maxRequestableNcheq(roomUnderCapNcheq, quotaRemainingNcheq);
|
|
606
|
+
const balance = buildFaucetBalanceResponse(currentBalanceNcheq, addressCapNcheq, maxRequestable);
|
|
607
|
+
if (roomUnderCapNcheq <= 0n) {
|
|
588
608
|
return response.status(StatusCodes.OK).json({
|
|
589
609
|
funded: false,
|
|
590
610
|
reason: 'cap_reached',
|
|
@@ -593,13 +613,19 @@ export class AccountController {
|
|
|
593
613
|
requestMore: buildRequestMore(customer, testnetAccount.address, balance, requestedAmountCheq),
|
|
594
614
|
});
|
|
595
615
|
}
|
|
596
|
-
|
|
616
|
+
// With no amount, top up as much as is allowed now. If the quota is used up this falls through
|
|
617
|
+
// to the reservation below, which answers 429 with the quota details.
|
|
618
|
+
const amountToRequestNcheq = requestedAmountCheq !== undefined
|
|
619
|
+
? cheqToNcheq(requestedAmountCheq)
|
|
620
|
+
: maxRequestable > 0n
|
|
621
|
+
? maxRequestable
|
|
622
|
+
: roomUnderCapNcheq;
|
|
597
623
|
if (amountToRequestNcheq <= 0n) {
|
|
598
624
|
return response.status(StatusCodes.BAD_REQUEST).json({
|
|
599
625
|
error: 'amount is too small to request.',
|
|
600
626
|
});
|
|
601
627
|
}
|
|
602
|
-
if (amountToRequestNcheq >
|
|
628
|
+
if (amountToRequestNcheq > roomUnderCapNcheq) {
|
|
603
629
|
return response.status(StatusCodes.BAD_REQUEST).json({
|
|
604
630
|
error: 'Requested amount exceeds the maximum available top-up for this address.',
|
|
605
631
|
address: testnetAccount.address,
|
|
@@ -607,10 +633,29 @@ export class AccountController {
|
|
|
607
633
|
requestMore: buildRequestMore(customer, testnetAccount.address, balance, requestedAmountCheq),
|
|
608
634
|
});
|
|
609
635
|
}
|
|
610
|
-
const
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
636
|
+
const safeAmount = toSafeFaucetAmount(amountToRequestNcheq);
|
|
637
|
+
const credit = await creditWithinQuota(FaucetRequestService.instance, () => FaucetHelper.delegateTokens(testnetAccount.address, customer.name, 'n/a', customer.email, safeAmount), {
|
|
638
|
+
customer,
|
|
639
|
+
address: testnetAccount.address,
|
|
640
|
+
amountNcheq: amountToRequestNcheq,
|
|
641
|
+
limitNcheq: quotaLimitNcheq,
|
|
642
|
+
minIntervalSeconds: FAUCET_MIN_INTERVAL_SECONDS,
|
|
643
|
+
});
|
|
644
|
+
if (credit.outcome === 'too_frequent') {
|
|
645
|
+
return tooManyFaucetRequests(response, credit.retryAfterSeconds);
|
|
646
|
+
}
|
|
647
|
+
if (credit.outcome === 'quota_exceeded') {
|
|
648
|
+
return response
|
|
649
|
+
.status(StatusCodes.TOO_MANY_REQUESTS)
|
|
650
|
+
.set('Retry-After', String(secondsUntilReset(credit.window)))
|
|
651
|
+
.json({
|
|
652
|
+
error: 'Monthly testnet faucet quota exceeded for this account.',
|
|
653
|
+
quota: buildFaucetQuotaSummary(credit.usedNcheq, quotaLimitNcheq, credit.window),
|
|
654
|
+
});
|
|
655
|
+
}
|
|
656
|
+
if (credit.outcome === 'faucet_failed') {
|
|
657
|
+
console.error('Faucet request failed:', credit.status, credit.error);
|
|
658
|
+
if (credit.status === StatusCodes.TOO_MANY_REQUESTS) {
|
|
614
659
|
return response.status(StatusCodes.TOO_MANY_REQUESTS).json({
|
|
615
660
|
error: 'Testnet faucet requests are rate-limited for this address. Please wait a while before trying again.',
|
|
616
661
|
});
|
|
@@ -627,9 +672,16 @@ export class AccountController {
|
|
|
627
672
|
ncheq: amountToRequestNcheq.toString(),
|
|
628
673
|
},
|
|
629
674
|
balance,
|
|
675
|
+
quota: buildFaucetQuotaSummary(credit.usedNcheq, quotaLimitNcheq, credit.window),
|
|
630
676
|
});
|
|
631
677
|
}
|
|
632
678
|
catch (error) {
|
|
679
|
+
if (isFaucetTimeout(error)) {
|
|
680
|
+
// The faucet may still have credited the account, so say so rather than suggesting a plain failure
|
|
681
|
+
return response.status(StatusCodes.GATEWAY_TIMEOUT).json({
|
|
682
|
+
error: 'The testnet faucet did not respond in time. The request may or may not have been processed, so check the address balance before trying again.',
|
|
683
|
+
});
|
|
684
|
+
}
|
|
633
685
|
return response.status(StatusCodes.INTERNAL_SERVER_ERROR).json({
|
|
634
686
|
error: `Internal error: ${error?.message || error}`,
|
|
635
687
|
});
|
|
@@ -719,7 +771,8 @@ export class AccountController {
|
|
|
719
771
|
* Returns the on-chain balance of the authenticated customer's mainnet and testnet payment
|
|
720
772
|
* accounts, expressed in ncheq, CHEQ and USD. The CHEQ/USD rate is sourced from CoinGecko and
|
|
721
773
|
* cached; if it (or a network's RPC endpoint) is unavailable the response still returns 200 with
|
|
722
|
-
* the affected `usd`/`rate`/`balance` fields set to `null`.
|
|
774
|
+
* the affected `usd`/`rate`/`balance` fields set to `null`. Also returns the testnet faucet cap and
|
|
775
|
+
* the customer's monthly faucet quota usage under `faucet`.
|
|
723
776
|
* responses:
|
|
724
777
|
* 200:
|
|
725
778
|
* description: The request was successful.
|
|
@@ -778,9 +831,24 @@ export class AccountController {
|
|
|
778
831
|
usd: rate ? cheq * rate.cheqUsd : null,
|
|
779
832
|
};
|
|
780
833
|
};
|
|
834
|
+
let faucet = null;
|
|
835
|
+
if (testnetAddress) {
|
|
836
|
+
try {
|
|
837
|
+
const addressCapNcheq = cheqToNcheq(FAUCET_ADDRESS_CAP_CHEQ);
|
|
838
|
+
const usedNcheq = await FaucetRequestService.instance.getUsedNcheq(response.locals.customer);
|
|
839
|
+
faucet = {
|
|
840
|
+
cap: { cheq: ncheqToCheq(addressCapNcheq), ncheq: addressCapNcheq.toString() },
|
|
841
|
+
quota: buildFaucetQuotaSummary(usedNcheq, cheqToNcheq(FAUCET_MONTHLY_LIMIT_CHEQ), getFaucetQuotaWindow()),
|
|
842
|
+
};
|
|
843
|
+
}
|
|
844
|
+
catch (error) {
|
|
845
|
+
console.error('getBalances: faucet quota lookup failed:', error?.message || error);
|
|
846
|
+
}
|
|
847
|
+
}
|
|
781
848
|
return response.status(StatusCodes.OK).json({
|
|
782
849
|
mainnet: toNetworkBalance(mainnetAddress, mainnetNcheq),
|
|
783
850
|
testnet: toNetworkBalance(testnetAddress, testnetNcheq),
|
|
851
|
+
faucet,
|
|
784
852
|
rate,
|
|
785
853
|
});
|
|
786
854
|
}
|
|
@@ -799,8 +867,8 @@ __decorate([
|
|
|
799
867
|
], AccountController.prototype, "requestFaucetTokens", null);
|
|
800
868
|
const FAUCET_REQUEST_MORE_EMAIL = 'product@cheqd.io';
|
|
801
869
|
const FAUCET_REQUEST_MORE_SUBJECT = 'Request more cheqd testnet CHEQ tokens';
|
|
802
|
-
function buildFaucetBalanceResponse(currentBalanceNcheq, capNcheq,
|
|
803
|
-
const remainingNcheq =
|
|
870
|
+
function buildFaucetBalanceResponse(currentBalanceNcheq, capNcheq, maxRequestableNcheq) {
|
|
871
|
+
const remainingNcheq = maxRequestableNcheq > 0n ? maxRequestableNcheq : 0n;
|
|
804
872
|
return {
|
|
805
873
|
denom: MINIMAL_DENOM,
|
|
806
874
|
current: {
|
|
@@ -935,17 +1003,68 @@ async function updateCustomData(logToId, customer, mainnetResp, testnetResp, log
|
|
|
935
1003
|
console.warn('Logto Custom Data Update failed:', err);
|
|
936
1004
|
}
|
|
937
1005
|
}
|
|
1006
|
+
function tooManyFaucetRequests(response, retryAfterSeconds) {
|
|
1007
|
+
return response
|
|
1008
|
+
.status(StatusCodes.TOO_MANY_REQUESTS)
|
|
1009
|
+
.set('Retry-After', String(retryAfterSeconds))
|
|
1010
|
+
.json({
|
|
1011
|
+
error: `Too many faucet requests. Please wait ${retryAfterSeconds} seconds before trying again.`,
|
|
1012
|
+
});
|
|
1013
|
+
}
|
|
1014
|
+
/**
|
|
1015
|
+
* Status and plan of a Stripe subscription, cached briefly so repeated (e.g. API-key) faucet requests do not
|
|
1016
|
+
* call Stripe every time. Only active/trialing results are cached, and the stored subscription status is still
|
|
1017
|
+
* checked in the database on every request, so a cancellation takes effect immediately; a plan change can take
|
|
1018
|
+
* up to FAUCET_SUBSCRIPTION_CACHE_SECONDS to be seen.
|
|
1019
|
+
*/
|
|
1020
|
+
async function getSubscriptionPlan(stripe, subscriptionId) {
|
|
1021
|
+
const cached = LocalStore.instance.getSubscriptionPlan(subscriptionId);
|
|
1022
|
+
if (cached)
|
|
1023
|
+
return cached;
|
|
1024
|
+
const subscription = await stripe.subscriptions.retrieve(subscriptionId);
|
|
1025
|
+
const plan = {
|
|
1026
|
+
status: subscription.status,
|
|
1027
|
+
productId: getStripeObjectKey(subscription.items.data[0].plan.product),
|
|
1028
|
+
};
|
|
1029
|
+
if (FAUCET_SUBSCRIPTION_CACHE_SECONDS > 0 && ['active', 'trialing'].includes(plan.status)) {
|
|
1030
|
+
LocalStore.instance.setSubscriptionPlan(subscriptionId, plan, FAUCET_SUBSCRIPTION_CACHE_SECONDS);
|
|
1031
|
+
}
|
|
1032
|
+
return plan;
|
|
1033
|
+
}
|
|
1034
|
+
/**
|
|
1035
|
+
* Credits an address from the faucet and debits the amount from the customer's monthly faucet quota.
|
|
1036
|
+
* See `creditWithinQuota` for how the reservation is settled.
|
|
1037
|
+
*/
|
|
1038
|
+
async function delegateWithinQuota(customer, address, firstName, lastName, amountNcheq) {
|
|
1039
|
+
const safeAmount = toSafeFaucetAmount(amountNcheq);
|
|
1040
|
+
const credit = await creditWithinQuota(FaucetRequestService.instance, () => FaucetHelper.delegateTokens(address, firstName, lastName, customer.email, safeAmount), { customer, address, amountNcheq, limitNcheq: cheqToNcheq(FAUCET_MONTHLY_LIMIT_CHEQ) });
|
|
1041
|
+
switch (credit.outcome) {
|
|
1042
|
+
case 'credited':
|
|
1043
|
+
return { status: StatusCodes.OK, error: '' };
|
|
1044
|
+
case 'quota_exceeded':
|
|
1045
|
+
return {
|
|
1046
|
+
status: StatusCodes.TOO_MANY_REQUESTS,
|
|
1047
|
+
error: 'Monthly testnet faucet quota exceeded for this account.',
|
|
1048
|
+
quotaExceeded: true,
|
|
1049
|
+
};
|
|
1050
|
+
case 'too_frequent':
|
|
1051
|
+
// not requested here: the bootstrap top-up does not apply a minimum interval
|
|
1052
|
+
return { status: StatusCodes.TOO_MANY_REQUESTS, error: 'Too many faucet requests.' };
|
|
1053
|
+
case 'faucet_failed':
|
|
1054
|
+
return { status: credit.status, error: credit.error };
|
|
1055
|
+
}
|
|
1056
|
+
}
|
|
938
1057
|
async function topupTestnet(customer, testnetResp, status, firstName, lastName) {
|
|
939
1058
|
if (!testnetResp.data?.address || process.env.ENABLE_ACCOUNT_TOPUP !== 'true') {
|
|
940
1059
|
return;
|
|
941
1060
|
}
|
|
942
1061
|
try {
|
|
943
|
-
const topupAmountNcheq = cheqToNcheq(
|
|
1062
|
+
const topupAmountNcheq = cheqToNcheq(TESTNET_INITIAL_TOPUP_CHEQ) - (await getTestnetBalanceNcheq(testnetResp.data.address));
|
|
944
1063
|
if (topupAmountNcheq > 0n) {
|
|
945
1064
|
// Handle case where firstName or lastName is not set
|
|
946
1065
|
const faucetFirstName = firstName || customer.name;
|
|
947
1066
|
const faucetLastName = lastName || 'n/a';
|
|
948
|
-
const faucet = await
|
|
1067
|
+
const faucet = await delegateWithinQuota(customer, testnetResp.data.address, faucetFirstName, faucetLastName, topupAmountNcheq);
|
|
949
1068
|
if (faucet.status === StatusCodes.OK) {
|
|
950
1069
|
status.testnetMinimumBalance = true;
|
|
951
1070
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/controllers/api/account.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../../src/controllers/api/account.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { PaymentAccountEntity } from '../entities/payment.account.entity.js';
|
|
2
|
+
/** The parts of a Stripe subscription that the faucet endpoint needs, as last read from Stripe. */
|
|
3
|
+
export interface SubscriptionPlanSnapshot {
|
|
4
|
+
status: string;
|
|
5
|
+
productId: string;
|
|
6
|
+
}
|
|
2
7
|
export declare class LocalStore {
|
|
3
8
|
private cache;
|
|
4
9
|
static instance: LocalStore;
|
|
5
10
|
constructor();
|
|
6
11
|
setCustomerAccounts(key: string, data: PaymentAccountEntity[]): void;
|
|
7
12
|
getCustomerAccounts(key: string): PaymentAccountEntity[] | undefined;
|
|
13
|
+
setSubscriptionPlan(subscriptionId: string, plan: SubscriptionPlanSnapshot, ttlSeconds: number): void;
|
|
14
|
+
getSubscriptionPlan(subscriptionId: string): SubscriptionPlanSnapshot | undefined;
|
|
8
15
|
}
|
|
9
16
|
//# sourceMappingURL=store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/database/cache/store.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/database/cache/store.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAI7E,mGAAmG;AACnG,MAAM,WAAW,wBAAwB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CAClB;AAID,qBAAa,UAAU;IACtB,OAAO,CAAC,KAAK,CAAY;IAEzB,OAAc,QAAQ,aAAoB;;IAM1C,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE;IAI7D,mBAAmB,CAAC,GAAG,EAAE,MAAM,GACA,oBAAoB,EAAE,GAAG,SAAS;IAGjE,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM;IAI9F,mBAAmB,CAAC,cAAc,EAAE,MAAM,GACuB,wBAAwB,GAAG,SAAS;CAErG"}
|
|
@@ -14,5 +14,11 @@ export class LocalStore {
|
|
|
14
14
|
getCustomerAccounts(key) {
|
|
15
15
|
return this.cache.get(key);
|
|
16
16
|
}
|
|
17
|
+
setSubscriptionPlan(subscriptionId, plan, ttlSeconds) {
|
|
18
|
+
this.cache.set(`subscription-plan:${subscriptionId}`, plan, ttlSeconds);
|
|
19
|
+
}
|
|
20
|
+
getSubscriptionPlan(subscriptionId) {
|
|
21
|
+
return this.cache.get(`subscription-plan:${subscriptionId}`);
|
|
22
|
+
}
|
|
17
23
|
}
|
|
18
24
|
//# sourceMappingURL=store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/database/cache/store.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAIjC,MAAM,CAAC,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/database/cache/store.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAIjC,MAAM,CAAC,MAAM,EAAE,CAAC;AAQhB,IAAI,EAAE,eAAe,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;AAE5C,MAAM,OAAO,UAAU;IACd,KAAK,CAAY;IAElB,MAAM,CAAC,QAAQ,GAAG,IAAI,UAAU,EAAE,CAAC;IAE1C;QACC,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,EAAE,CAAC;IAC9B,CAAC;IAED,mBAAmB,CAAC,GAAW,EAAE,IAA4B;QAC5D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;IAED,mBAAmB,CAAC,GAAW;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAuC,CAAC;IAClE,CAAC;IAED,mBAAmB,CAAC,cAAsB,EAAE,IAA8B,EAAE,UAAkB;QAC7F,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACzE,CAAC;IAED,mBAAmB,CAAC,cAAsB;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,cAAc,EAAE,CAAyC,CAAC;IACtG,CAAC"}
|