@cheqd/studio 3.18.0-develop.2 → 3.18.0-develop.4
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 +17 -6
- package/dist/controllers/api/account.d.ts +4 -2
- package/dist/controllers/api/account.d.ts.map +1 -1
- package/dist/controllers/api/account.js +76 -26
- package/dist/controllers/api/account.js.map +1 -1
- package/dist/database/entities/faucet-request.entity.d.ts +1 -2
- package/dist/database/entities/faucet-request.entity.d.ts.map +1 -1
- package/dist/database/entities/faucet-request.entity.js +11 -12
- package/dist/database/entities/faucet-request.entity.js.map +1 -1
- package/dist/database/migrations/1791500000002-studio-migrations.d.ts +7 -0
- package/dist/database/migrations/1791500000002-studio-migrations.d.ts.map +1 -0
- package/dist/database/migrations/1791500000002-studio-migrations.js +10 -0
- package/dist/database/migrations/1791500000002-studio-migrations.js.map +1 -0
- package/dist/database/types/types.d.ts.map +1 -1
- package/dist/database/types/types.js +3 -0
- package/dist/database/types/types.js.map +1 -1
- package/dist/helpers/faucet-quota.d.ts +30 -2
- package/dist/helpers/faucet-quota.d.ts.map +1 -1
- package/dist/helpers/faucet-quota.js +73 -9
- package/dist/helpers/faucet-quota.js.map +1 -1
- package/dist/helpers/faucet.d.ts +5 -0
- package/dist/helpers/faucet.d.ts.map +1 -1
- package/dist/helpers/faucet.js +18 -0
- package/dist/helpers/faucet.js.map +1 -1
- package/dist/services/api/faucet-request.d.ts +24 -2
- package/dist/services/api/faucet-request.d.ts.map +1 -1
- package/dist/services/api/faucet-request.js +102 -13
- package/dist/services/api/faucet-request.js.map +1 -1
- package/dist/static/swagger-api.json +2 -2
- package/dist/types/constants.d.ts +2 -0
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/constants.js +10 -2
- package/dist/types/constants.js.map +1 -1
- package/example.env +4 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -107,17 +107,28 @@ 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. `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
|
|
111
|
-
4. `TESTNET_MINIMUM_BALANCE`: Backward-compatible fallback for the initial top-up amount if
|
|
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`, and only when the testnet account is newly created, not on later calls), 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 old name `TESTNET_FAUCET_UPPER_CAP_CHEQ` is no longer read, because it was the faucet cap and would inflate this amount. (Default: `TESTNET_MINIMUM_BALANCE`, so 10,000 CHEQ)
|
|
111
|
+
4. `TESTNET_MINIMUM_BALANCE`: Backward-compatible fallback for the initial top-up amount if `TESTNET_INITIAL_TOPUP_CHEQ` is not set. (Default: 10,000 CHEQ testnet tokens)
|
|
112
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
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
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
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
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. `
|
|
118
|
-
11. `
|
|
119
|
-
12. `
|
|
120
|
-
13. `
|
|
117
|
+
10. `FAUCET_BALANCE_SETTLE_SECONDS`: A faucet transfer takes a few blocks to show up in an address's on-chain balance. For this many seconds, requests already made for the same address are subtracted from the room left under `FAUCET_ADDRESS_CAP_CHEQ`, so simultaneous requests cannot each be allowed the full room. (Default: 20)
|
|
118
|
+
11. `FAUCET_REQUEST_RETENTION_MONTHS`: How many calendar months of faucet request history to keep in the `faucetRequest` table. Only the current month is needed to enforce the quota; older rows are kept for support and deleted after this. The cleanup runs inside normal faucet requests, at most once an hour per process (Studio has no scheduler). `0` keeps everything. To clean up by hand: `DELETE FROM "faucetRequest" WHERE "createdAt" < date_trunc('month', now() AT TIME ZONE 'UTC') - interval '13 months';` (Default: 13)
|
|
119
|
+
12. `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)
|
|
120
|
+
13. `FAUCET_API_KEY`: API key for faucet service authentication
|
|
121
|
+
14. `FAUCET_ACCESS_CLIENT_ID`: Cloudflare Access client ID for accessing the Testnet Faucet API
|
|
122
|
+
15. `FAUCET_ACCESS_CLIENT_SECRET`: Cloudflare Access client secret for accessing the Testnet Faucet API
|
|
123
|
+
|
|
124
|
+
`POST /account/faucet` accepts three kinds of credential: a Studio user session (bearer token), an API key (`x-api-key` header) and a machine-to-machine token (bearer token plus a `customer-id` header selecting the customer). All three are checked against the same rule: the scopes they carry must include `request:faucet:testnet`. A user session and an API key get their scopes from the user's LogTo roles, so the scope comes with the Basic and Build plan roles; a machine-to-machine token carries its scopes in the token, so `request:faucet:testnet` must be granted to the M2M application's role in LogTo. The plan check, address ownership, quota and limits apply identically to all three.
|
|
125
|
+
|
|
126
|
+
The faucet quota, limits and handlers have two Postgres-backed test suites that are skipped unless `FAUCET_TEST_DATABASE_URL` points at a disposable database, so a plain `npm run test:unit` and CI are unaffected. Start a database with `docker run -d --rm --name faucet-test-db -e POSTGRES_PASSWORD=pw -e POSTGRES_DB=studio -p 55432:5432 postgres:16`, then:
|
|
127
|
+
|
|
128
|
+
- the ledger tests (jest): `FAUCET_TEST_DATABASE_URL=postgres://postgres:pw@localhost:55432/studio npm run test:unit -- faucet-request.service`
|
|
129
|
+
- the handler tests (Node's test runner, which needs Node 20 because the controller's dependencies do not load on newer versions): `FAUCET_TEST_DATABASE_URL=postgres://postgres:pw@localhost:55432/studio npx -y -p node@20 node --import tsx --import ./tests/integration/hooks/register.mjs --test tests/integration/faucet-handler.test.ts`
|
|
130
|
+
|
|
131
|
+
Faucet decisions are logged as one JSON line each, with an `event` name, so a blocked or refunded request can be traced: `faucet.reserved`, `faucet.completed`, `faucet.released` (the faucet reported a failure, quota given back), `faucet.unknown` (the faucet call threw, quota kept), `faucet.quota_exceeded`, `faucet.too_frequent`, `faucet.address_cap_exceeded`, `faucet.reservations_abandoned`, `faucet.bootstrap_topup_skipped`, `faucet.retention_deleted` and the `*_failed` errors. Rejections are warnings and carry the customer, address, amount and the relevant figures (`usedNcheq`, `limitNcheq`, `roomNcheq`, `retryAfterSeconds`); the early checks that run before Stripe are marked `"stage":"precheck"`. A customer's history is also in the `faucetRequest` table: `SELECT "createdAt", address, "amountNcheq", status FROM "faucetRequest" WHERE "customerId" = '<id>' ORDER BY "createdAt" DESC;`.
|
|
121
132
|
|
|
122
133
|
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`.
|
|
123
134
|
|
|
@@ -3,6 +3,7 @@ import type { CustomerEntity } from '../../database/entities/customer.entity.js'
|
|
|
3
3
|
import type { PaymentAccountEntity } from '../../database/entities/payment.account.entity.js';
|
|
4
4
|
import type { SafeAPIResponse } from '../../types/common.js';
|
|
5
5
|
import { CheqdNetwork } from '@cheqd/sdk';
|
|
6
|
+
import { BootStrapAccountResponse } from '../../types/account.js';
|
|
6
7
|
export declare class AccountController {
|
|
7
8
|
static createValidator: import("express-validator").ValidationChain[];
|
|
8
9
|
static faucetValidator: import("express-validator").ValidationChain[];
|
|
@@ -93,7 +94,7 @@ export declare class AccountController {
|
|
|
93
94
|
* post:
|
|
94
95
|
* tags: [Account]
|
|
95
96
|
* summary: Request cheqd testnet CHEQ tokens for a Studio payment account.
|
|
96
|
-
* description: Funds
|
|
97
|
+
* description: Funds a cheqd testnet address, by default the customer's own payment account, or any valid cheqd address supplied. 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. Authentication is by a Studio user session (bearer token), an API key (`x-api-key`) or a machine-to-machine token (bearer token plus a `customer-id` header); whichever is used, the credential must carry the `request:faucet:testnet` scope. The response includes the remaining quota.
|
|
97
98
|
* requestBody:
|
|
98
99
|
* content:
|
|
99
100
|
* application/json:
|
|
@@ -102,7 +103,7 @@ export declare class AccountController {
|
|
|
102
103
|
* properties:
|
|
103
104
|
* address:
|
|
104
105
|
* type: string
|
|
105
|
-
* description: Optional
|
|
106
|
+
* description: Optional cheqd testnet address to fund; it does not have to belong to the customer. Requests count against the calling customer's quota. Defaults to the authenticated customer's testnet account.
|
|
106
107
|
* amount:
|
|
107
108
|
* type: number
|
|
108
109
|
* 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).
|
|
@@ -188,4 +189,5 @@ export declare class AccountController {
|
|
|
188
189
|
*/
|
|
189
190
|
getBalances(_request: Request, response: Response): Promise<Response<any, Record<string, any>>>;
|
|
190
191
|
}
|
|
192
|
+
export declare function topupTestnet(customer: CustomerEntity, testnetResp: any, status: BootStrapAccountResponse, isNewTestnetAccount: boolean, firstName?: string | null, lastName?: string | null): Promise<void>;
|
|
191
193
|
//# sourceMappingURL=account.d.ts.map
|
|
@@ -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;AA+BxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AA0BlE,qBAAa,iBAAiB;IAC7B,OAAc,eAAe,gDAS3B;IAEF,OAAc,eAAe,gDAO3B;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;WA4N9C,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;IA4GxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IAEU,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IAkNrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACU,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;IA0C9D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;CAqF9D;AAyPD,wBAAsB,YAAY,CACjC,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,GAAG,EAChB,MAAM,EAAE,wBAAwB,EAChC,mBAAmB,EAAE,OAAO,EAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,iBAqCxB"}
|
|
@@ -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 { 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';
|
|
8
|
+
import { FAUCET_ADDRESS_CAP_CHEQ, FAUCET_BALANCE_SETTLE_SECONDS, 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, isFaucetTimeout } from '../../helpers/faucet.js';
|
|
11
|
+
import { FaucetHelper, isFaucetTimeout, isValidFaucetAddress } 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';
|
|
@@ -35,7 +35,7 @@ import { CredentialCategory } from '../../types/credential.js';
|
|
|
35
35
|
import { Like } from 'typeorm';
|
|
36
36
|
import { productHasCapability, StudioPlanCapability } from '../../services/admin/plan-capabilities.js';
|
|
37
37
|
import { FaucetRequestService } from '../../services/api/faucet-request.js';
|
|
38
|
-
import { buildFaucetQuotaSummary, creditWithinQuota,
|
|
38
|
+
import { buildFaucetQuotaSummary, creditWithinQuota, logFaucetEvent, maxRequestableNcheq, remainingQuota, secondsUntilReset, } from '../../helpers/faucet-quota.js';
|
|
39
39
|
dotenv.config();
|
|
40
40
|
export class AccountController {
|
|
41
41
|
static createValidator = [
|
|
@@ -50,6 +50,10 @@ export class AccountController {
|
|
|
50
50
|
];
|
|
51
51
|
static faucetValidator = [
|
|
52
52
|
check('address').optional().isString().notEmpty().withMessage('address should be a valid string').bail(),
|
|
53
|
+
check('address')
|
|
54
|
+
.optional()
|
|
55
|
+
.custom((address) => isValidFaucetAddress(address))
|
|
56
|
+
.withMessage('address should be a valid lowercase cheqd bech32 account address'),
|
|
53
57
|
check('amount').optional().isFloat({ gt: 0 }).withMessage('amount should be a positive number').bail(),
|
|
54
58
|
];
|
|
55
59
|
/**
|
|
@@ -297,6 +301,7 @@ export class AccountController {
|
|
|
297
301
|
status.stripeAccountCreated = true;
|
|
298
302
|
// 7. Provision Mainnet & Testnet accounts in parallel
|
|
299
303
|
const accounts = await PaymentAccountService.instance.find({ customer: customerEntity }, { key: true });
|
|
304
|
+
const isNewTestnetAccount = !accounts.some((acc) => acc.namespace === CheqdNetwork.Testnet);
|
|
300
305
|
const [mainnetResp, testnetResp] = await Promise.all([
|
|
301
306
|
AccountController.provisionCustomerAccount(CheqdNetwork.Mainnet, accounts, customerEntity),
|
|
302
307
|
AccountController.provisionCustomerAccount(CheqdNetwork.Testnet, accounts, customerEntity),
|
|
@@ -314,7 +319,7 @@ export class AccountController {
|
|
|
314
319
|
// 8. Update LogTo custom data and Top‑up Testnet in parallel (non-blocking)
|
|
315
320
|
await Promise.all([
|
|
316
321
|
updateCustomData(userEntity.logToId, customerEntity, mainnetResp, testnetResp, logToHelper, status),
|
|
317
|
-
topupTestnet(customerEntity, testnetResp, status, logToFirstName, logToLastName),
|
|
322
|
+
topupTestnet(customerEntity, testnetResp, status, isNewTestnetAccount, logToFirstName, logToLastName),
|
|
318
323
|
]);
|
|
319
324
|
// 9. Add user to Mailchimp with "cheqd_Studio" tag (feature-flagged)
|
|
320
325
|
if (process.env.MAILCHIMP_ENABLED === 'true' &&
|
|
@@ -444,6 +449,8 @@ export class AccountController {
|
|
|
444
449
|
}
|
|
445
450
|
// 3. Check if paymentAccount exists for the customer
|
|
446
451
|
const accounts = await PaymentAccountService.instance.find({ customer: customerEntity }, { key: true });
|
|
452
|
+
// The initial top-up is only for a testnet account created by this call, not for an existing one
|
|
453
|
+
const isNewTestnetAccount = !accounts.some((acc) => acc.namespace === CheqdNetwork.Testnet);
|
|
447
454
|
const mainnetAccountResponse = await AccountController.provisionCustomerAccount(CheqdNetwork.Mainnet, accounts, customerEntity);
|
|
448
455
|
if (!mainnetAccountResponse.success) {
|
|
449
456
|
return response.status(mainnetAccountResponse.status).json({
|
|
@@ -458,7 +465,7 @@ export class AccountController {
|
|
|
458
465
|
}
|
|
459
466
|
const testnetAccount = testnetAccountResponse.data;
|
|
460
467
|
// 4. Check the token balance for Testnet account
|
|
461
|
-
if (testnetAccount.address && process.env.ENABLE_ACCOUNT_TOPUP === 'true') {
|
|
468
|
+
if (isNewTestnetAccount && testnetAccount.address && process.env.ENABLE_ACCOUNT_TOPUP === 'true') {
|
|
462
469
|
const topupAmountNcheq = cheqToNcheq(TESTNET_INITIAL_TOPUP_CHEQ) - (await getTestnetBalanceNcheq(testnetAccount.address));
|
|
463
470
|
if (topupAmountNcheq > 0n) {
|
|
464
471
|
// 3.1 If it's less then required for DID creation - assign new portion from testnet-faucet
|
|
@@ -468,7 +475,10 @@ export class AccountController {
|
|
|
468
475
|
const resp = await delegateWithinQuota(customerEntity, testnetAccount.address, faucetFirstName, faucetLastName, topupAmountNcheq);
|
|
469
476
|
if (resp.quotaExceeded) {
|
|
470
477
|
// Account creation must not fail because the monthly faucet quota is used up
|
|
471
|
-
|
|
478
|
+
logFaucetEvent('warn', 'faucet.bootstrap_topup_skipped', {
|
|
479
|
+
customerId: customerEntity.customerId,
|
|
480
|
+
reason: 'quota_exceeded',
|
|
481
|
+
});
|
|
472
482
|
}
|
|
473
483
|
else if (resp.status !== StatusCodes.OK) {
|
|
474
484
|
return response.status(StatusCodes.BAD_GATEWAY).json({
|
|
@@ -503,7 +513,7 @@ export class AccountController {
|
|
|
503
513
|
* post:
|
|
504
514
|
* tags: [Account]
|
|
505
515
|
* summary: Request cheqd testnet CHEQ tokens for a Studio payment account.
|
|
506
|
-
* description: Funds
|
|
516
|
+
* description: Funds a cheqd testnet address, by default the customer's own payment account, or any valid cheqd address supplied. 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. Authentication is by a Studio user session (bearer token), an API key (`x-api-key`) or a machine-to-machine token (bearer token plus a `customer-id` header); whichever is used, the credential must carry the `request:faucet:testnet` scope. The response includes the remaining quota.
|
|
507
517
|
* requestBody:
|
|
508
518
|
* content:
|
|
509
519
|
* application/json:
|
|
@@ -512,7 +522,7 @@ export class AccountController {
|
|
|
512
522
|
* properties:
|
|
513
523
|
* address:
|
|
514
524
|
* type: string
|
|
515
|
-
* description: Optional
|
|
525
|
+
* description: Optional cheqd testnet address to fund; it does not have to belong to the customer. Requests count against the calling customer's quota. Defaults to the authenticated customer's testnet account.
|
|
516
526
|
* amount:
|
|
517
527
|
* type: number
|
|
518
528
|
* 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).
|
|
@@ -557,6 +567,11 @@ export class AccountController {
|
|
|
557
567
|
// Cheap check first, so a tight loop of requests does not reach Stripe, the RPC node or the faucet
|
|
558
568
|
const waitSeconds = await FaucetRequestService.instance.getSecondsUntilNextAllowed(customer, FAUCET_MIN_INTERVAL_SECONDS);
|
|
559
569
|
if (waitSeconds > 0) {
|
|
570
|
+
logFaucetEvent('warn', 'faucet.too_frequent', {
|
|
571
|
+
customerId: customer.customerId,
|
|
572
|
+
retryAfterSeconds: waitSeconds,
|
|
573
|
+
stage: 'precheck',
|
|
574
|
+
});
|
|
560
575
|
return tooManyFaucetRequests(response, waitSeconds);
|
|
561
576
|
}
|
|
562
577
|
const subscription = await SubscriptionService.instance.findCurrent(customer);
|
|
@@ -576,21 +591,25 @@ export class AccountController {
|
|
|
576
591
|
error: 'The current subscription does not include testnet faucet access.',
|
|
577
592
|
});
|
|
578
593
|
}
|
|
579
|
-
const testnetAccount = await
|
|
594
|
+
const testnetAccount = await resolveFaucetTarget(customer, requestedAddress);
|
|
580
595
|
if (!testnetAccount) {
|
|
581
|
-
return response.status(
|
|
582
|
-
error:
|
|
583
|
-
? 'The requested address is not an owned Studio testnet payment account.'
|
|
584
|
-
: 'No Studio testnet payment account was found for this customer.',
|
|
596
|
+
return response.status(StatusCodes.NOT_FOUND).json({
|
|
597
|
+
error: 'No Studio testnet payment account was found for this customer.',
|
|
585
598
|
});
|
|
586
599
|
}
|
|
587
600
|
const addressCapNcheq = cheqToNcheq(FAUCET_ADDRESS_CAP_CHEQ);
|
|
588
601
|
const quotaLimitNcheq = cheqToNcheq(FAUCET_MONTHLY_LIMIT_CHEQ);
|
|
589
602
|
// Nothing can be requested once the quota is used up, so answer before the (slow) balance query
|
|
590
|
-
const usedNcheq = await FaucetRequestService.instance.
|
|
603
|
+
const { usedNcheq, window } = await FaucetRequestService.instance.getQuotaStatus(customer);
|
|
591
604
|
const quotaRemainingNcheq = remainingQuota(usedNcheq, quotaLimitNcheq);
|
|
592
605
|
if (quotaRemainingNcheq <= 0n) {
|
|
593
|
-
|
|
606
|
+
logFaucetEvent('warn', 'faucet.quota_exceeded', {
|
|
607
|
+
customerId: customer.customerId,
|
|
608
|
+
address: testnetAccount.address,
|
|
609
|
+
usedNcheq: usedNcheq.toString(),
|
|
610
|
+
limitNcheq: quotaLimitNcheq.toString(),
|
|
611
|
+
stage: 'precheck',
|
|
612
|
+
});
|
|
594
613
|
return response
|
|
595
614
|
.status(StatusCodes.TOO_MANY_REQUESTS)
|
|
596
615
|
.set('Retry-After', String(secondsUntilReset(window)))
|
|
@@ -626,6 +645,13 @@ export class AccountController {
|
|
|
626
645
|
});
|
|
627
646
|
}
|
|
628
647
|
if (amountToRequestNcheq > roomUnderCapNcheq) {
|
|
648
|
+
logFaucetEvent('warn', 'faucet.address_cap_exceeded', {
|
|
649
|
+
customerId: customer.customerId,
|
|
650
|
+
address: testnetAccount.address,
|
|
651
|
+
amountNcheq: amountToRequestNcheq.toString(),
|
|
652
|
+
roomNcheq: roomUnderCapNcheq.toString(),
|
|
653
|
+
stage: 'precheck',
|
|
654
|
+
});
|
|
629
655
|
return response.status(StatusCodes.BAD_REQUEST).json({
|
|
630
656
|
error: 'Requested amount exceeds the maximum available top-up for this address.',
|
|
631
657
|
address: testnetAccount.address,
|
|
@@ -640,10 +666,24 @@ export class AccountController {
|
|
|
640
666
|
amountNcheq: amountToRequestNcheq,
|
|
641
667
|
limitNcheq: quotaLimitNcheq,
|
|
642
668
|
minIntervalSeconds: FAUCET_MIN_INTERVAL_SECONDS,
|
|
669
|
+
addressCap: {
|
|
670
|
+
capNcheq: addressCapNcheq,
|
|
671
|
+
currentBalanceNcheq,
|
|
672
|
+
settleSeconds: FAUCET_BALANCE_SETTLE_SECONDS,
|
|
673
|
+
},
|
|
643
674
|
});
|
|
644
675
|
if (credit.outcome === 'too_frequent') {
|
|
645
676
|
return tooManyFaucetRequests(response, credit.retryAfterSeconds);
|
|
646
677
|
}
|
|
678
|
+
if (credit.outcome === 'address_cap_exceeded') {
|
|
679
|
+
// Requests made moments ago for this address have not reached its balance yet
|
|
680
|
+
return response.status(StatusCodes.BAD_REQUEST).json({
|
|
681
|
+
error: 'Requested amount exceeds the maximum available top-up for this address.',
|
|
682
|
+
address: testnetAccount.address,
|
|
683
|
+
balance,
|
|
684
|
+
requestMore: buildRequestMore(customer, testnetAccount.address, balance, requestedAmountCheq),
|
|
685
|
+
});
|
|
686
|
+
}
|
|
647
687
|
if (credit.outcome === 'quota_exceeded') {
|
|
648
688
|
return response
|
|
649
689
|
.status(StatusCodes.TOO_MANY_REQUESTS)
|
|
@@ -835,10 +875,10 @@ export class AccountController {
|
|
|
835
875
|
if (testnetAddress) {
|
|
836
876
|
try {
|
|
837
877
|
const addressCapNcheq = cheqToNcheq(FAUCET_ADDRESS_CAP_CHEQ);
|
|
838
|
-
const usedNcheq = await FaucetRequestService.instance.
|
|
878
|
+
const { usedNcheq, window } = await FaucetRequestService.instance.getQuotaStatus(response.locals.customer);
|
|
839
879
|
faucet = {
|
|
840
880
|
cap: { cheq: ncheqToCheq(addressCapNcheq), ncheq: addressCapNcheq.toString() },
|
|
841
|
-
quota: buildFaucetQuotaSummary(usedNcheq, cheqToNcheq(FAUCET_MONTHLY_LIMIT_CHEQ),
|
|
881
|
+
quota: buildFaucetQuotaSummary(usedNcheq, cheqToNcheq(FAUCET_MONTHLY_LIMIT_CHEQ), window),
|
|
842
882
|
};
|
|
843
883
|
}
|
|
844
884
|
catch (error) {
|
|
@@ -908,13 +948,14 @@ async function getBalanceNcheq(address, rpcUrl) {
|
|
|
908
948
|
async function getTestnetBalanceNcheq(address) {
|
|
909
949
|
return getBalanceNcheq(address, process.env.TESTNET_RPC_URL);
|
|
910
950
|
}
|
|
911
|
-
|
|
951
|
+
/**
|
|
952
|
+
* Resolves the address the faucet should fund. A supplied address was already validated by `faucetValidator` and may
|
|
953
|
+
* belong to anyone; quota and interval limits are charged to the calling customer either way. With no address this is
|
|
954
|
+
* the customer's own testnet payment account, or null if they have none.
|
|
955
|
+
*/
|
|
956
|
+
async function resolveFaucetTarget(customer, requestedAddress) {
|
|
912
957
|
if (requestedAddress) {
|
|
913
|
-
return
|
|
914
|
-
address: requestedAddress,
|
|
915
|
-
namespace: CheqdNetwork.Testnet,
|
|
916
|
-
customer,
|
|
917
|
-
});
|
|
958
|
+
return { address: requestedAddress };
|
|
918
959
|
}
|
|
919
960
|
return PaymentAccountService.instance.findOne({
|
|
920
961
|
namespace: CheqdNetwork.Testnet,
|
|
@@ -1048,14 +1089,16 @@ async function delegateWithinQuota(customer, address, firstName, lastName, amoun
|
|
|
1048
1089
|
quotaExceeded: true,
|
|
1049
1090
|
};
|
|
1050
1091
|
case 'too_frequent':
|
|
1051
|
-
|
|
1092
|
+
case 'address_cap_exceeded':
|
|
1093
|
+
// not requested here: the bootstrap top-up applies neither a minimum interval nor the address cap
|
|
1052
1094
|
return { status: StatusCodes.TOO_MANY_REQUESTS, error: 'Too many faucet requests.' };
|
|
1053
1095
|
case 'faucet_failed':
|
|
1054
1096
|
return { status: credit.status, error: credit.error };
|
|
1055
1097
|
}
|
|
1056
1098
|
}
|
|
1057
|
-
|
|
1058
|
-
|
|
1099
|
+
// Exported for the handler tests only
|
|
1100
|
+
export async function topupTestnet(customer, testnetResp, status, isNewTestnetAccount, firstName, lastName) {
|
|
1101
|
+
if (!isNewTestnetAccount || !testnetResp.data?.address || process.env.ENABLE_ACCOUNT_TOPUP !== 'true') {
|
|
1059
1102
|
return;
|
|
1060
1103
|
}
|
|
1061
1104
|
try {
|
|
@@ -1068,6 +1111,13 @@ async function topupTestnet(customer, testnetResp, status, firstName, lastName)
|
|
|
1068
1111
|
if (faucet.status === StatusCodes.OK) {
|
|
1069
1112
|
status.testnetMinimumBalance = true;
|
|
1070
1113
|
}
|
|
1114
|
+
else if (faucet.quotaExceeded) {
|
|
1115
|
+
// Account bootstrap must not fail because the monthly faucet quota is used up
|
|
1116
|
+
logFaucetEvent('warn', 'faucet.bootstrap_topup_skipped', {
|
|
1117
|
+
customerId: customer.customerId,
|
|
1118
|
+
reason: 'quota_exceeded',
|
|
1119
|
+
});
|
|
1120
|
+
}
|
|
1071
1121
|
else {
|
|
1072
1122
|
status.errors.push(faucet.error);
|
|
1073
1123
|
}
|
|
@@ -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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"}
|
|
@@ -15,11 +15,10 @@ export declare class FaucetRequestEntity {
|
|
|
15
15
|
faucetRequestId: string;
|
|
16
16
|
customer: CustomerEntity;
|
|
17
17
|
address: string;
|
|
18
|
-
amountNcheq:
|
|
18
|
+
amountNcheq: bigint;
|
|
19
19
|
status: FaucetRequestStatus;
|
|
20
20
|
createdAt: Date;
|
|
21
21
|
completedAt?: Date;
|
|
22
|
-
setCreatedAt(): void;
|
|
23
22
|
constructor(customer: CustomerEntity, address: string, amountNcheq: bigint);
|
|
24
23
|
}
|
|
25
24
|
//# sourceMappingURL=faucet-request.entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faucet-request.entity.d.ts","sourceRoot":"","sources":["../../../src/database/entities/faucet-request.entity.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,2DAA4D,CAAC;AACjG,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"faucet-request.entity.d.ts","sourceRoot":"","sources":["../../../src/database/entities/faucet-request.entity.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,2DAA4D,CAAC;AACjG,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAQ3E;;;GAGG;AACH,qBAGa,mBAAmB;IAE/B,eAAe,EAAG,MAAM,CAAC;IAIzB,QAAQ,EAAG,cAAc,CAAC;IAM1B,OAAO,EAAG,MAAM,CAAC;IAQjB,WAAW,EAAG,MAAM,CAAC;IAOrB,MAAM,EAAG,mBAAmB,CAAC;IAM7B,SAAS,EAAG,IAAI,CAAC;IAMjB,WAAW,CAAC,EAAE,IAAI,CAAC;gBAEP,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAM1E"}
|
|
@@ -4,7 +4,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import {
|
|
7
|
+
import { Check, Column, CreateDateColumn, Entity, Index, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from 'typeorm';
|
|
8
8
|
import * as dotenv from 'dotenv';
|
|
9
9
|
import { CustomerEntity } from './customer.entity.js';
|
|
10
10
|
dotenv.config();
|
|
@@ -15,6 +15,11 @@ dotenv.config();
|
|
|
15
15
|
* - abandoned: stayed pending past the timeout (e.g. the process died). No longer counts.
|
|
16
16
|
*/
|
|
17
17
|
export const FAUCET_REQUEST_STATUSES = ['pending', 'completed', 'unknown', 'abandoned'];
|
|
18
|
+
// `bigint` columns come back from the driver as strings; expose them as bigint instead
|
|
19
|
+
const bigintTransformer = {
|
|
20
|
+
to: (value) => value?.toString(),
|
|
21
|
+
from: (value) => (value === null || value === undefined ? value : BigInt(value)),
|
|
22
|
+
};
|
|
18
23
|
/**
|
|
19
24
|
* One row per testnet faucet request made through `POST /account/faucet` or the account bootstrap top-up.
|
|
20
25
|
* Summed per customer to enforce the monthly faucet quota.
|
|
@@ -23,19 +28,16 @@ let FaucetRequestEntity = class FaucetRequestEntity {
|
|
|
23
28
|
faucetRequestId;
|
|
24
29
|
customer;
|
|
25
30
|
address;
|
|
26
|
-
// ncheq amount
|
|
31
|
+
// ncheq amount
|
|
27
32
|
amountNcheq;
|
|
28
33
|
status;
|
|
34
|
+
// Set by the database (DEFAULT now()), so every instance agrees on when a request was made
|
|
29
35
|
createdAt;
|
|
30
36
|
completedAt;
|
|
31
|
-
setCreatedAt() {
|
|
32
|
-
this.createdAt = new Date();
|
|
33
|
-
}
|
|
34
37
|
constructor(customer, address, amountNcheq) {
|
|
35
38
|
this.customer = customer;
|
|
36
39
|
this.address = address;
|
|
37
|
-
|
|
38
|
-
this.amountNcheq = amountNcheq?.toString();
|
|
40
|
+
this.amountNcheq = amountNcheq;
|
|
39
41
|
this.status = 'pending';
|
|
40
42
|
}
|
|
41
43
|
};
|
|
@@ -56,6 +58,7 @@ __decorate([
|
|
|
56
58
|
Column({
|
|
57
59
|
type: 'bigint',
|
|
58
60
|
nullable: false,
|
|
61
|
+
transformer: bigintTransformer,
|
|
59
62
|
})
|
|
60
63
|
], FaucetRequestEntity.prototype, "amountNcheq", void 0);
|
|
61
64
|
__decorate([
|
|
@@ -66,9 +69,8 @@ __decorate([
|
|
|
66
69
|
})
|
|
67
70
|
], FaucetRequestEntity.prototype, "status", void 0);
|
|
68
71
|
__decorate([
|
|
69
|
-
|
|
72
|
+
CreateDateColumn({
|
|
70
73
|
type: 'timestamptz',
|
|
71
|
-
nullable: false,
|
|
72
74
|
})
|
|
73
75
|
], FaucetRequestEntity.prototype, "createdAt", void 0);
|
|
74
76
|
__decorate([
|
|
@@ -77,9 +79,6 @@ __decorate([
|
|
|
77
79
|
nullable: true,
|
|
78
80
|
})
|
|
79
81
|
], FaucetRequestEntity.prototype, "completedAt", void 0);
|
|
80
|
-
__decorate([
|
|
81
|
-
BeforeInsert()
|
|
82
|
-
], FaucetRequestEntity.prototype, "setCreatedAt", null);
|
|
83
82
|
FaucetRequestEntity = __decorate([
|
|
84
83
|
Entity('faucetRequest'),
|
|
85
84
|
Check('CHK_faucetRequest_status', `"status" IN (${FAUCET_REQUEST_STATUSES.map((status) => `'${status}'`).join(', ')})`),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"faucet-request.entity.js","sourceRoot":"","sources":["../../../src/database/entities/faucet-request.entity.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"faucet-request.entity.js","sourceRoot":"","sources":["../../../src/database/entities/faucet-request.entity.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAExH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,CAAU,CAAC;AAGjG,uFAAuF;AACvF,MAAM,iBAAiB,GAAG;IACzB,EAAE,EAAE,CAAC,KAAqB,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE;IAChD,IAAI,EAAE,CAAC,KAAqB,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;CAChG,CAAC;AAEF;;;GAGG;AAII,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAE/B,eAAe,CAAU;IAIzB,QAAQ,CAAkB;IAM1B,OAAO,CAAU;IAEjB,eAAe;IAMf,WAAW,CAAU;IAOrB,MAAM,CAAuB;IAE7B,2FAA2F;IAI3F,SAAS,CAAQ;IAMjB,WAAW,CAAQ;IAEnB,YAAY,QAAwB,EAAE,OAAe,EAAE,WAAmB;QACzE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IACzB,CAAC;CACD,CAAA;AA7CA;IADC,sBAAsB,CAAC,MAAM,CAAC;4DACN;AAIzB;IAFC,SAAS,CAAC,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC5G,UAAU,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;qDACT;AAM1B;IAJC,MAAM,CAAC;QACP,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;KACf,CAAC;oDACe;AAQjB;IALC,MAAM,CAAC;QACP,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,iBAAiB;KAC9B,CAAC;wDACmB;AAOrB;IALC,MAAM,CAAC;QACP,IAAI,EAAE,MAAM;QACZ,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,WAAW;KACpB,CAAC;mDAC2B;AAM7B;IAHC,gBAAgB,CAAC;QACjB,IAAI,EAAE,aAAa;KACnB,CAAC;sDACe;AAMjB;IAJC,MAAM,CAAC;QACP,IAAI,EAAE,aAAa;QACnB,QAAQ,EAAE,IAAI;KACd,CAAC;wDACiB;AAvCP,mBAAmB;IAH/B,MAAM,CAAC,eAAe,CAAC;IACvB,KAAK,CAAC,0BAA0B,EAAE,gBAAgB,uBAAuB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACvH,KAAK,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;GACpB,mBAAmB,CA+C/B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
2
|
+
export declare class StudioMigrations1791500000002 implements MigrationInterface {
|
|
3
|
+
name: string;
|
|
4
|
+
up(queryRunner: QueryRunner): Promise<void>;
|
|
5
|
+
down(queryRunner: QueryRunner): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=1791500000002-studio-migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"1791500000002-studio-migrations.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/1791500000002-studio-migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1D,qBAAa,6BAA8B,YAAW,kBAAkB;IACvE,IAAI,SAAmC;IAE1B,EAAE,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1D"}
|