@serfab/cadre-core 1.16.0 → 1.17.0
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 +1 -1
- package/dist/bootstrap-peer-store-file.js +1 -1
- package/dist/bootstrap-peer-store.d.ts +1 -1
- package/dist/bootstrap-peer-store.js +4 -4
- package/dist/cadre-invite-protocol.d.ts +55 -138
- package/dist/cadre-invite-protocol.js +94 -449
- package/dist/cadre-invite-protocol.js.map +1 -1
- package/dist/cadre-join-request.d.ts +15 -2
- package/dist/cadre-join-request.js +22 -3
- package/dist/cadre-join-request.js.map +1 -1
- package/dist/cadre-node.d.ts +530 -247
- package/dist/cadre-node.js +1046 -525
- package/dist/cadre-node.js.map +1 -1
- package/dist/control-authorization.d.ts +36 -14
- package/dist/control-authorization.js +20 -3
- package/dist/control-authorization.js.map +1 -1
- package/dist/control-cohort.d.ts +22 -23
- package/dist/control-cohort.js +24 -24
- package/dist/control-cohort.js.map +1 -1
- package/dist/control-database.d.ts +416 -136
- package/dist/control-database.js +757 -378
- package/dist/control-database.js.map +1 -1
- package/dist/control-protocol-guard.d.ts +5 -4
- package/dist/control-protocol-guard.js +6 -3
- package/dist/control-protocol-guard.js.map +1 -1
- package/dist/control-schema-version.d.ts +80 -0
- package/dist/control-schema-version.js +203 -0
- package/dist/control-schema-version.js.map +1 -0
- package/dist/control-schema.d.ts +45 -5
- package/dist/control-schema.js +254 -70
- package/dist/control-schema.js.map +1 -1
- package/dist/control-write-retry.d.ts +5 -5
- package/dist/control-write-retry.js +10 -8
- package/dist/control-write-retry.js.map +1 -1
- package/dist/delegate-admission.d.ts +13 -0
- package/dist/delegate-admission.js +27 -0
- package/dist/delegate-admission.js.map +1 -1
- package/dist/ed25519-key.d.ts +10 -7
- package/dist/ed25519-key.js +23 -20
- package/dist/ed25519-key.js.map +1 -1
- package/dist/edge-node/config.d.ts +122 -0
- package/dist/edge-node/config.js +199 -0
- package/dist/edge-node/config.js.map +1 -0
- package/dist/edge-node/dissolve.d.ts +95 -0
- package/dist/edge-node/dissolve.js +184 -0
- package/dist/edge-node/dissolve.js.map +1 -0
- package/dist/edge-node/edge-join.d.ts +44 -0
- package/dist/edge-node/edge-join.js +227 -0
- package/dist/edge-node/edge-join.js.map +1 -0
- package/dist/edge-node/edge-node.d.ts +295 -0
- package/dist/edge-node/edge-node.js +704 -0
- package/dist/edge-node/edge-node.js.map +1 -0
- package/dist/edge-node/index.d.ts +18 -0
- package/dist/edge-node/index.js +18 -0
- package/dist/edge-node/index.js.map +1 -0
- package/dist/edge-node/join-credential.d.ts +11 -0
- package/dist/edge-node/join-credential.js +11 -0
- package/dist/edge-node/join-credential.js.map +1 -0
- package/dist/edge-node/lazy-raw-storage.d.ts +40 -0
- package/dist/edge-node/lazy-raw-storage.js +134 -0
- package/dist/edge-node/lazy-raw-storage.js.map +1 -0
- package/dist/edge-node/node-local.d.ts +60 -0
- package/dist/edge-node/node-local.js +58 -0
- package/dist/edge-node/node-local.js.map +1 -0
- package/dist/edge-node/options.d.ts +83 -0
- package/dist/edge-node/options.js +110 -0
- package/dist/edge-node/options.js.map +1 -0
- package/dist/edge-node/owner-grant.d.ts +41 -0
- package/dist/edge-node/owner-grant.js +38 -0
- package/dist/edge-node/owner-grant.js.map +1 -0
- package/dist/edge-node/platform.d.ts +140 -0
- package/dist/edge-node/platform.js +12 -0
- package/dist/edge-node/platform.js.map +1 -0
- package/dist/edge-node/strand-move.d.ts +115 -0
- package/dist/edge-node/strand-move.js +223 -0
- package/dist/edge-node/strand-move.js.map +1 -0
- package/dist/edge-node/strands.d.ts +28 -0
- package/dist/edge-node/strands.js +60 -0
- package/dist/edge-node/strands.js.map +1 -0
- package/dist/index.d.ts +16 -7
- package/dist/index.js +26 -7
- package/dist/index.js.map +1 -1
- package/dist/joined-strand-store.d.ts +3 -3
- package/dist/joined-strand-store.js +3 -3
- package/dist/joined-strand-store.js.map +1 -1
- package/dist/key-store.d.ts +9 -4
- package/dist/key-store.js +9 -4
- package/dist/key-store.js.map +1 -1
- package/dist/machine-removal.d.ts +19 -39
- package/dist/machine-removal.js +24 -98
- package/dist/machine-removal.js.map +1 -1
- package/dist/member-redemption.d.ts +250 -0
- package/dist/member-redemption.js +485 -0
- package/dist/member-redemption.js.map +1 -0
- package/dist/owner-anchor-sync.d.ts +4 -4
- package/dist/owner-anchor-sync.js +16 -15
- package/dist/owner-anchor-sync.js.map +1 -1
- package/dist/owner-grant-protocol.d.ts +247 -0
- package/dist/owner-grant-protocol.js +330 -0
- package/dist/owner-grant-protocol.js.map +1 -0
- package/dist/owner-key-export.d.ts +70 -0
- package/dist/owner-key-export.js +279 -0
- package/dist/owner-key-export.js.map +1 -0
- package/dist/owner-key-flows.d.ts +55 -0
- package/dist/owner-key-flows.js +60 -0
- package/dist/owner-key-flows.js.map +1 -0
- package/dist/owner-key-store.d.ts +31 -0
- package/dist/owner-key-store.js +81 -0
- package/dist/owner-key-store.js.map +1 -0
- package/dist/owner-keys.d.ts +78 -0
- package/dist/owner-keys.js +133 -0
- package/dist/owner-keys.js.map +1 -0
- package/dist/owner-signer.d.ts +54 -0
- package/dist/owner-signer.js +51 -0
- package/dist/owner-signer.js.map +1 -0
- package/dist/peer-authorization.d.ts +83 -18
- package/dist/peer-authorization.js +123 -53
- package/dist/peer-authorization.js.map +1 -1
- package/dist/provider/rent-node.js +1 -1
- package/dist/provider/rent-node.js.map +1 -1
- package/dist/seed-bootstrap.d.ts +131 -109
- package/dist/seed-bootstrap.js +260 -248
- package/dist/seed-bootstrap.js.map +1 -1
- package/dist/seed-trust-policy.js +4 -4
- package/dist/strand-addr-protocol.d.ts +4 -1
- package/dist/strand-addr-protocol.js +8 -2
- package/dist/strand-addr-protocol.js.map +1 -1
- package/dist/strand-cohort.d.ts +3 -0
- package/dist/strand-cohort.js.map +1 -1
- package/dist/strand-database.d.ts +1 -0
- package/dist/strand-database.js +3 -0
- package/dist/strand-database.js.map +1 -1
- package/dist/strand-first-sync-gate.d.ts +4 -3
- package/dist/strand-first-sync-gate.js +4 -3
- package/dist/strand-first-sync-gate.js.map +1 -1
- package/dist/strand-instance-manager.d.ts +1 -1
- package/dist/strand-membership-writer.d.ts +13 -2
- package/dist/strand-membership-writer.js +52 -16
- package/dist/strand-membership-writer.js.map +1 -1
- package/dist/strand-move.d.ts +6 -5
- package/dist/strand-move.js +31 -30
- package/dist/strand-move.js.map +1 -1
- package/dist/strand-peer-redial.js +2 -3
- package/dist/strand-peer-redial.js.map +1 -1
- package/dist/types.d.ts +286 -103
- package/dist/types.js.map +1 -1
- package/package.json +11 -2
- package/src/bootstrap-peer-store-file.ts +44 -44
- package/src/bootstrap-peer-store.ts +214 -214
- package/src/cadre-invite-protocol.ts +652 -1052
- package/src/cadre-join-request.ts +24 -3
- package/src/cadre-node.ts +1166 -541
- package/src/control-authorization.ts +47 -14
- package/src/control-cohort.ts +127 -128
- package/src/control-database.ts +940 -456
- package/src/control-protocol-guard.ts +7 -4
- package/src/control-schema-version.ts +251 -0
- package/src/control-schema.ts +265 -70
- package/src/control-write-retry.ts +569 -567
- package/src/delegate-admission.ts +37 -0
- package/src/ed25519-key.ts +174 -171
- package/src/edge-node/config.ts +277 -0
- package/src/edge-node/dissolve.ts +251 -0
- package/src/edge-node/edge-join.ts +319 -0
- package/src/edge-node/edge-node.ts +1045 -0
- package/src/edge-node/index.ts +59 -0
- package/src/edge-node/join-credential.ts +16 -0
- package/src/edge-node/lazy-raw-storage.ts +178 -0
- package/src/edge-node/node-local.ts +84 -0
- package/src/edge-node/options.ts +179 -0
- package/src/edge-node/owner-grant.ts +63 -0
- package/src/edge-node/platform.ts +151 -0
- package/src/edge-node/strand-move.ts +270 -0
- package/src/edge-node/strands.ts +72 -0
- package/src/index.ts +886 -789
- package/src/joined-strand-store.ts +4 -4
- package/src/key-store.ts +10 -4
- package/src/machine-removal.ts +26 -111
- package/src/member-redemption.ts +642 -0
- package/src/owner-anchor-sync.ts +19 -18
- package/src/owner-grant-protocol.ts +532 -0
- package/src/owner-key-export.ts +348 -0
- package/src/owner-key-flows.ts +109 -0
- package/src/owner-key-store.ts +85 -0
- package/src/owner-keys.ts +178 -0
- package/src/owner-signer.ts +94 -0
- package/src/peer-authorization.ts +558 -488
- package/src/provider/rent-node.ts +1 -1
- package/src/seed-bootstrap.ts +301 -312
- package/src/seed-trust-policy.ts +4 -4
- package/src/strand-addr-protocol.ts +547 -538
- package/src/strand-cohort.ts +4 -0
- package/src/strand-database.ts +3 -0
- package/src/strand-first-sync-gate.ts +4 -3
- package/src/strand-instance-manager.ts +1 -1
- package/src/strand-membership-writer.ts +61 -16
- package/src/strand-move.ts +45 -36
- package/src/strand-peer-redial.ts +2 -3
- package/src/types.ts +304 -103
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import debug from 'debug';
|
|
2
2
|
import { digest, verify } from '@optimystic/quereus-plugin-crypto';
|
|
3
|
-
import { controlAuthorizationFields, unboundAuthorizationFields, cadreInviteRowFields } from './control-authorization.js';
|
|
3
|
+
import { controlAuthorizationFields, unboundAuthorizationFields, cadreInviteRowFields, ownerGrantRowFields } from './control-authorization.js';
|
|
4
4
|
import { ed25519PublicKeyB64FromPeerId } from './ed25519-key.js';
|
|
5
5
|
const log = debug('sereus:cadre:peer-authorization');
|
|
6
6
|
/**
|
|
@@ -142,20 +142,22 @@ export function verifyRevocationSigner(partyId, row) {
|
|
|
142
142
|
/**
|
|
143
143
|
* Canonical digest an owner signs to seat a further `OwnerKey` row — the signed-add branch
|
|
144
144
|
* of `OwnerKey.Authorized`, which stores the pair as `VouchOwner` / `VouchSig`. SQL mirror:
|
|
145
|
-
* `digest('CadreControl.OwnerKey', 'add', party_id(), new.Key, new.StampId)`.
|
|
146
|
-
* digest needs no builder here: it is the generic guarded `'remove'` digest over
|
|
145
|
+
* `digest('CadreControl.OwnerKey', 'add', party_id(), new.Key, coalesce(new.Label, ''), new.StampId)`.
|
|
146
|
+
* The removal digest needs no builder here: it is the generic guarded `'remove'` digest over
|
|
147
|
+
* (Key, StampId).
|
|
147
148
|
*/
|
|
148
|
-
export function ownerKeyAddDigest(partyId, key, stampId) {
|
|
149
|
-
return taggedDigest('CadreControl.OwnerKey', 'add', partyId, [key, stampId]);
|
|
149
|
+
export function ownerKeyAddDigest(partyId, key, label, stampId) {
|
|
150
|
+
return taggedDigest('CadreControl.OwnerKey', 'add', partyId, [key, label ?? '', stampId]);
|
|
150
151
|
}
|
|
151
152
|
/**
|
|
152
153
|
* Does an owner-signed `OwnerKey` row's stored voucher verify — `vouchSig` by `vouchOwner`
|
|
153
|
-
* over {@link ownerKeyAddDigest} for (`partyId`, `key`, `stampId`)? Whether
|
|
154
|
-
* anchored is the caller's question, as for {@link verifyCadrePeerVoucher}.
|
|
154
|
+
* over {@link ownerKeyAddDigest} for (`partyId`, `key`, `label`, `stampId`)? Whether
|
|
155
|
+
* `vouchOwner` is anchored is the caller's question, as for {@link verifyCadrePeerVoucher}.
|
|
156
|
+
* Never throws.
|
|
155
157
|
*/
|
|
156
|
-
export function verifyOwnerKeyVoucher(partyId, key, stampId, vouchOwner, vouchSig) {
|
|
158
|
+
export function verifyOwnerKeyVoucher(partyId, key, label, stampId, vouchOwner, vouchSig) {
|
|
157
159
|
try {
|
|
158
|
-
return verifyB64(ownerKeyAddDigest(partyId, key, stampId), vouchSig, vouchOwner);
|
|
160
|
+
return verifyB64(ownerKeyAddDigest(partyId, key, label, stampId), vouchSig, vouchOwner);
|
|
159
161
|
}
|
|
160
162
|
catch (error) {
|
|
161
163
|
log('verifyOwnerKeyVoucher failed: %o', error);
|
|
@@ -310,40 +312,24 @@ export function verifyCadreInviteRedemption(partyId, fields, inviteSig, peerSig)
|
|
|
310
312
|
return false;
|
|
311
313
|
}
|
|
312
314
|
}
|
|
313
|
-
/**
|
|
314
|
-
* The links of an invitation admission that do not depend on WHICH table's row was
|
|
315
|
-
* admitted — shared by {@link verifyInvitationAdmission} (`CadrePeer`) and
|
|
316
|
-
* {@link verifyInvitationOwnerAdmission} (`OwnerKey`), which differ only in the row
|
|
317
|
-
* columns the usage must name and, for an owner row, in `grantsOwner`. The chain is
|
|
318
|
-
*
|
|
319
|
-
* row --vouchUsage--> usage --inviteKey--> invitation --issuerKey--> anchored owner
|
|
320
|
-
*
|
|
321
|
-
* and every link here is verified: the issuer is anchored (`isAnchored`) and is the row's
|
|
322
|
-
* `vouchOwner`; the usage names this invitation and is the row's `vouchUsage`; a targeted
|
|
323
|
-
* invitation names the redeeming device; the stored `peerKey` really is the key behind the
|
|
324
|
-
* usage's `peerId` (the schema cannot unwrap a multihash, so a writer could assert any
|
|
325
|
-
* pair); the invitation's stored `'add'` signature verifies over the row rebuilt from its
|
|
326
|
-
* columns; the holder's `'redeem'` signature verifies with the invitation key and the
|
|
327
|
-
* device's `'consent'` signature with its own key. All three signatures are judged for
|
|
328
|
-
* `partyId`. Throws on malformed input; the two callers turn that into `false`.
|
|
329
|
-
*/
|
|
330
|
-
function verifyAdmissionChain(partyId, vouchOwner, vouchUsage, usage, invite, isAnchored) {
|
|
331
|
-
return isAnchored(vouchOwner)
|
|
332
|
-
&& invite.issuerKey === vouchOwner
|
|
333
|
-
&& usage.usageStampId === vouchUsage
|
|
334
|
-
&& usage.inviteKey === invite.key
|
|
335
|
-
&& (invite.peerId === null || invite.peerId === usage.peerId)
|
|
336
|
-
&& ed25519PublicKeyB64FromPeerId(usage.peerId) === usage.peerKey
|
|
337
|
-
&& verifyB64(cadreInviteAddDigest(partyId, invite), invite.issuerSig, invite.issuerKey)
|
|
338
|
-
&& verifyB64(cadreInviteRedeemDigest(partyId, invite.key, usage.usageStampId, usage.peerKey), usage.inviteSig, invite.key)
|
|
339
|
-
&& verifyB64(cadreInviteConsentDigest(partyId, invite.key, usage.usageStampId, usage.peerKey), usage.peerSig, usage.peerKey);
|
|
340
|
-
}
|
|
341
315
|
/**
|
|
342
316
|
* Is an invitation-admitted `CadrePeer` row (`vouchSig` null, `vouchUsage` set) a
|
|
343
317
|
* member this node should trust? The read-side mirror of the consent branch of
|
|
344
318
|
* `CadrePeer.AuthorizedInsert`, re-checked against THIS node's anchor because the
|
|
345
|
-
* replicated `OwnerKey` table can be polluted. The
|
|
346
|
-
*
|
|
319
|
+
* replicated `OwnerKey` table can be polluted. The chain is
|
|
320
|
+
*
|
|
321
|
+
* row --vouchUsage--> usage --inviteKey--> invitation --issuerKey--> anchored owner
|
|
322
|
+
*
|
|
323
|
+
* and every link is verified: the issuer is anchored (`isAnchored`) and is the row's
|
|
324
|
+
* `vouchOwner`; the usage is the row's `vouchUsage`, names this peer id and this exact row
|
|
325
|
+
* incarnation (`peerStampId`), and names this invitation; a targeted invitation names the
|
|
326
|
+
* redeeming device; the stored `peerKey` really is the key behind the usage's `peerId` (the
|
|
327
|
+
* schema cannot unwrap a multihash, so a writer could assert any pair); the invitation's
|
|
328
|
+
* stored `'add'` signature verifies over the row rebuilt from its columns; the holder's
|
|
329
|
+
* `'redeem'` signature verifies with the invitation key and the device's `'consent'`
|
|
330
|
+
* signature with its own key. All three signatures are judged for `partyId`. A machine
|
|
331
|
+
* invitation admits a machine and nothing else, so no `OwnerKey` row is ever verified
|
|
332
|
+
* through this chain; a grant-seated owner row is {@link verifyOwnerGrantAdmission}'s.
|
|
347
333
|
*
|
|
348
334
|
* Expiry, use count and withdrawal are deliberately NOT re-checked: they were conditions
|
|
349
335
|
* at redemption (`CadreInviteUsage.Authorized`), and membership persists until an owner
|
|
@@ -358,9 +344,17 @@ export function verifyInvitationAdmission(partyId, row, usage, invite, isAnchore
|
|
|
358
344
|
return row.stampId !== null
|
|
359
345
|
&& row.vouchOwner !== null
|
|
360
346
|
&& row.vouchUsage !== null
|
|
347
|
+
&& isAnchored(row.vouchOwner)
|
|
348
|
+
&& invite.issuerKey === row.vouchOwner
|
|
349
|
+
&& usage.usageStampId === row.vouchUsage
|
|
361
350
|
&& usage.peerStampId === row.stampId
|
|
362
351
|
&& usage.peerId === row.peerId
|
|
363
|
-
&&
|
|
352
|
+
&& usage.inviteKey === invite.key
|
|
353
|
+
&& (invite.peerId === null || invite.peerId === usage.peerId)
|
|
354
|
+
&& ed25519PublicKeyB64FromPeerId(usage.peerId) === usage.peerKey
|
|
355
|
+
&& verifyB64(cadreInviteAddDigest(partyId, invite), invite.issuerSig, invite.issuerKey)
|
|
356
|
+
&& verifyB64(cadreInviteRedeemDigest(partyId, invite.key, usage.usageStampId, usage.peerKey), usage.inviteSig, invite.key)
|
|
357
|
+
&& verifyB64(cadreInviteConsentDigest(partyId, invite.key, usage.usageStampId, usage.peerKey), usage.peerSig, usage.peerKey);
|
|
364
358
|
}
|
|
365
359
|
catch (error) {
|
|
366
360
|
log('verifyInvitationAdmission failed: %o', error);
|
|
@@ -368,25 +362,101 @@ export function verifyInvitationAdmission(partyId, row, usage, invite, isAnchore
|
|
|
368
362
|
}
|
|
369
363
|
}
|
|
370
364
|
/**
|
|
371
|
-
*
|
|
372
|
-
*
|
|
373
|
-
*
|
|
374
|
-
*
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
365
|
+
* Canonical digest an owner signs to seat an `OwnerGrant` row — the read-side mirror of
|
|
366
|
+
* `ownerGrantAddMessage` in control-database.ts, base64url instead of raw bytes. The whole
|
|
367
|
+
* row is bound, the label included, through the one field builder both sides share
|
|
368
|
+
* (`ownerGrantRowFields`). SQL mirror: `OwnerGrant.AuthorizedInsert`.
|
|
369
|
+
*/
|
|
370
|
+
export function ownerGrantAddDigest(partyId, row) {
|
|
371
|
+
return taggedDigest('CadreControl.OwnerGrant', 'add', partyId, ownerGrantRowFields(row));
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Canonical digest the HOLDER of an `OwnerGrant`'s private key signs to redeem it once:
|
|
375
|
+
* proof of possession, verified against the grant key itself
|
|
376
|
+
* (`OwnerGrantUsage.GrantPossessed`). Binds the redemption's nonce and the key being seated,
|
|
377
|
+
* so one redemption cannot be re-presented for another key or another use. Mirror of
|
|
378
|
+
* `ownerGrantRedeemMessage` in control-database.ts.
|
|
379
|
+
*/
|
|
380
|
+
export function ownerGrantRedeemDigest(partyId, grantKey, usageStampId, seatedKey) {
|
|
381
|
+
return taggedDigest('CadreControl.OwnerGrantUsage', 'redeem', partyId, [grantKey, usageStampId, seatedKey]);
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Canonical digest the key being SEATED signs to prove it is held by the redeemer
|
|
385
|
+
* (`OwnerGrantUsage.OwnerConsented`), over the same fields as {@link ownerGrantRedeemDigest}
|
|
386
|
+
* under a distinct action tag, so the holder's and the key's signatures are never
|
|
387
|
+
* interchangeable. Mirror of `ownerGrantConsentMessage` in control-database.ts.
|
|
388
|
+
*/
|
|
389
|
+
export function ownerGrantConsentDigest(partyId, grantKey, usageStampId, seatedKey) {
|
|
390
|
+
return taggedDigest('CadreControl.OwnerGrantUsage', 'consent', partyId, [grantKey, usageStampId, seatedKey]);
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Does an `OwnerGrant` row carry a valid `'add'` signature by its own `issuerKey`, for
|
|
394
|
+
* `partyId`? The grant twin of {@link verifyCadreInviteRow}, with the same contract: whether
|
|
395
|
+
* that issuer IS an owner is the caller's question, and a malformed row verifies as `false`.
|
|
396
|
+
*/
|
|
397
|
+
export function verifyOwnerGrantRow(partyId, grant) {
|
|
398
|
+
try {
|
|
399
|
+
return verifyB64(ownerGrantAddDigest(partyId, grant), grant.issuerSig, grant.issuerKey);
|
|
400
|
+
}
|
|
401
|
+
catch (error) {
|
|
402
|
+
log('verifyOwnerGrantRow failed: %o', error);
|
|
403
|
+
return false;
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* The two signatures an owner-grant redemption carries, checked before any database work:
|
|
408
|
+
* the holder's `'redeem'` signature with the grant key and the seated key's `'consent'`
|
|
409
|
+
* signature with itself, both over (`grantKey`, `usageStampId`, `seatedKey`). The grant twin
|
|
410
|
+
* of {@link verifyCadreInviteRedemption}, with the same contract: the schema
|
|
411
|
+
* (`OwnerGrantUsage.GrantPossessed` / `OwnerConsented`) stays the authority, this turns a bad
|
|
412
|
+
* signature into a clean refusal instead of a constraint failure at commit. Never throws.
|
|
413
|
+
*/
|
|
414
|
+
export function verifyOwnerGrantRedemption(partyId, fields, grantSig, ownerSig) {
|
|
415
|
+
try {
|
|
416
|
+
return verifyB64(ownerGrantRedeemDigest(partyId, fields.grantKey, fields.usageStampId, fields.seatedKey), grantSig, fields.grantKey)
|
|
417
|
+
&& verifyB64(ownerGrantConsentDigest(partyId, fields.grantKey, fields.usageStampId, fields.seatedKey), ownerSig, fields.seatedKey);
|
|
418
|
+
}
|
|
419
|
+
catch (error) {
|
|
420
|
+
log('verifyOwnerGrantRedemption failed: %o', error);
|
|
421
|
+
return false;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Is a grant-seated `OwnerKey` row (`vouchSig` null, `vouchUsage` naming an `OwnerGrantUsage`
|
|
426
|
+
* row) an owner this node should derive into its anchor? The read-side mirror of the grant
|
|
427
|
+
* branch of `OwnerKey.Authorized` (`owner-anchor-sync.ts` → `deriveOwnerAnchor`). The chain is
|
|
428
|
+
*
|
|
429
|
+
* row --vouchUsage--> usage --grantKey--> grant --issuerKey--> anchored owner
|
|
430
|
+
*
|
|
431
|
+
* and every link is verified: the issuer is anchored and is the row's `vouchOwner`; the usage
|
|
432
|
+
* is the row's `vouchUsage` and names this key and this exact row incarnation
|
|
433
|
+
* (`seatedStampId`); the usage names this grant; the row carries the grant's label; the
|
|
434
|
+
* grant's stored `'add'` signature verifies over the row rebuilt from its columns; the
|
|
435
|
+
* holder's `'redeem'` signature verifies with the grant key and the seated key's `'consent'`
|
|
436
|
+
* signature with itself. All three signatures are judged for `partyId`.
|
|
437
|
+
*
|
|
438
|
+
* Expiry, use count and withdrawal are deliberately NOT re-checked, as
|
|
439
|
+
* {@link verifyInvitationAdmission} omits them: they were conditions at redemption
|
|
440
|
+
* (`OwnerGrantUsage.Authorized`), and ownership persists until an owner removes the row.
|
|
441
|
+
* Same never-throws contract as the siblings.
|
|
378
442
|
*/
|
|
379
|
-
export function
|
|
443
|
+
export function verifyOwnerGrantAdmission(partyId, row, usage, grant, isAnchored) {
|
|
380
444
|
try {
|
|
381
445
|
return row.vouchOwner !== null
|
|
382
446
|
&& row.vouchUsage !== null
|
|
383
|
-
&&
|
|
384
|
-
&&
|
|
385
|
-
&& usage.
|
|
386
|
-
&&
|
|
447
|
+
&& isAnchored(row.vouchOwner)
|
|
448
|
+
&& grant.issuerKey === row.vouchOwner
|
|
449
|
+
&& usage.usageStampId === row.vouchUsage
|
|
450
|
+
&& usage.seatedKey === row.key
|
|
451
|
+
&& usage.seatedStampId === row.stampId
|
|
452
|
+
&& usage.grantKey === grant.key
|
|
453
|
+
&& (grant.label ?? '') === (row.label ?? '')
|
|
454
|
+
&& verifyB64(ownerGrantAddDigest(partyId, grant), grant.issuerSig, grant.issuerKey)
|
|
455
|
+
&& verifyB64(ownerGrantRedeemDigest(partyId, grant.key, usage.usageStampId, usage.seatedKey), usage.grantSig, grant.key)
|
|
456
|
+
&& verifyB64(ownerGrantConsentDigest(partyId, grant.key, usage.usageStampId, usage.seatedKey), usage.ownerSig, usage.seatedKey);
|
|
387
457
|
}
|
|
388
458
|
catch (error) {
|
|
389
|
-
log('
|
|
459
|
+
log('verifyOwnerGrantAdmission failed: %o', error);
|
|
390
460
|
return false;
|
|
391
461
|
}
|
|
392
462
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peer-authorization.js","sourceRoot":"","sources":["../src/peer-authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"peer-authorization.js","sourceRoot":"","sources":["../src/peer-authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE/I,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAGjE,MAAM,GAAG,GAAG,KAAK,CAAC,iCAAiC,CAAC,CAAC;AAErD;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,MAA0B,EAAE,MAAqB,EAAE,OAAe,EAAE,SAAmB;IAC3G,OAAO,MAAM,CAAC,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAW,CAAC;AACjH,CAAC;AAED,oFAAoF;AACpF,SAAS,mBAAmB,CAAC,MAA4B,EAAE,MAAqB,EAAE,SAAmB;IACnG,OAAO,MAAM,CAAC,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAW,CAAC;AACxG,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAc;IACpD,OAAO,mBAAmB,CAAC,kBAAkB,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACpE,CAAC;AAuBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,GAA6B;IACjF,OAAO,YAAY,CAAC,0BAA0B,EAAE,KAAK,EAAE,OAAO,EAAE;QAC9D,GAAG,CAAC,MAAM;QACV,GAAG,CAAC,QAAQ;QACZ,GAAG,CAAC,KAAK;QACT,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;QACnD,GAAG,CAAC,GAAG,IAAI,EAAE;QACb,GAAG,CAAC,OAAO;KACZ,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,MAAc,EAAE,OAAe;IACtF,OAAO,YAAY,CAAC,0BAA0B,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACxF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,MAAc,EAAE,OAAe;IACrF,OAAO,YAAY,CAAC,wBAAwB,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACrF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,MAAc,EAAE,OAAe;IACpF,OAAO,YAAY,CAAC,wBAAwB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACtF,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,SAAyB,EAAE,MAAc,EAAE,OAAe;IAC1G,OAAO,YAAY,CAAC,yBAAyB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAClG,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,GAAkB;IACxE,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IACpH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,GAAW,EAAE,KAAoB,EAAE,OAAe;IACnG,OAAO,YAAY,CAAC,uBAAuB,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe,EAAE,GAAW,EAAE,KAAoB,EAAE,OAAe,EAAE,UAAkB,EAAE,QAAgB;IAC7I,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC1F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAc,EACd,cAAsB,EACtB,SAAiB;IAEjB,IAAI,CAAC;QACH,OAAO,MAAM,CACX,uBAAuB,CAAC,MAAM,CAAC,EAC/B,SAAS,EACT,cAAc,EACd,SAAS,EACT,WAAW,EACX,WAAW,EACX,WAAW,CACZ,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,MAAc,EACd,OAAe,EACf,cAAsB,EACtB,SAAiB;IAEjB,IAAI,CAAC;QACH,OAAO,MAAM,CACX,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAChD,SAAS,EACT,cAAc,EACd,SAAS,EACT,WAAW,EACX,WAAW,EACX,WAAW,CACZ,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAa,EAAE,YAAoB,EAAE,OAAe,EAAE,UAAkB;IAExE,OAAO,mBAAmB,CAAC,6BAA6B,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;AACnH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAEtC;IACC,IAAI,CAAC;QACH,OAAO,MAAM,CACX,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,EAChF,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAC3E,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,GAA4B;IAChF,OAAO,YAAY,CAAC,0BAA0B,EAAE,KAAK,EAAE,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,SAAiB,EAAE,YAAoB,EAAE,OAAe;IAC/G,OAAO,YAAY,CAAC,+BAA+B,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe,EAAE,SAAiB,EAAE,YAAoB,EAAE,OAAe;IAChH,OAAO,YAAY,CAAC,+BAA+B,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;AAC/G,CAAC;AAED,2GAA2G;AAC3G,SAAS,SAAS,CAAC,SAAiB,EAAE,SAAiB,EAAE,SAAiB;IACxE,OAAO,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AACnG,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe,EAAE,MAAsB;IAC1E,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAe,EACf,MAAoE,EACpE,SAAiB,EACjB,OAAe;IAEf,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;eACjI,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACpI,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,GAA2B,EAC3B,KAA0B,EAC1B,MAAsB,EACtB,UAAyC;IAEzC,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,OAAO,KAAK,IAAI;eACtB,GAAG,CAAC,UAAU,KAAK,IAAI;eACvB,GAAG,CAAC,UAAU,KAAK,IAAI;eACvB,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;eAC1B,MAAM,CAAC,SAAS,KAAK,GAAG,CAAC,UAAU;eACnC,KAAK,CAAC,YAAY,KAAK,GAAG,CAAC,UAAU;eACrC,KAAK,CAAC,WAAW,KAAK,GAAG,CAAC,OAAO;eACjC,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM;eAC3B,KAAK,CAAC,SAAS,KAAK,MAAM,CAAC,GAAG;eAC9B,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC;eAC1D,6BAA6B,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,OAAO;eAC7D,SAAS,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC;eACpF,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC;eACvH,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjI,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,GAA2B;IAC9E,OAAO,YAAY,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAe,EAAE,QAAgB,EAAE,YAAoB,EAAE,SAAiB;IAC/G,OAAO,YAAY,CAAC,8BAA8B,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;AAC9G,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAE,QAAgB,EAAE,YAAoB,EAAE,SAAiB;IAChH,OAAO,YAAY,CAAC,8BAA8B,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/G,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,KAAoB;IACvE,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1F,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAe,EACf,MAAqE,EACrE,QAAgB,EAChB,QAAgB;IAEhB,IAAI,CAAC;QACH,OAAO,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;eAC/H,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACvI,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,GAAgB,EAChB,KAAyB,EACzB,KAAoB,EACpB,UAAyC;IAEzC,IAAI,CAAC;QACH,OAAO,GAAG,CAAC,UAAU,KAAK,IAAI;eACzB,GAAG,CAAC,UAAU,KAAK,IAAI;eACvB,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC;eAC1B,KAAK,CAAC,SAAS,KAAK,GAAG,CAAC,UAAU;eAClC,KAAK,CAAC,YAAY,KAAK,GAAG,CAAC,UAAU;eACrC,KAAK,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG;eAC3B,KAAK,CAAC,aAAa,KAAK,GAAG,CAAC,OAAO;eACnC,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,GAAG;eAC5B,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;eACzC,SAAS,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;eAChF,SAAS,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC;eACrH,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACpI,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -87,7 +87,7 @@ async function requireOwner(node) {
|
|
|
87
87
|
}
|
|
88
88
|
async function rentByInvitation(node, client, options) {
|
|
89
89
|
report(options, 'inviting');
|
|
90
|
-
const { invitation, encoded } = await node.createCadreInvitation({
|
|
90
|
+
const { invitation, encoded } = await node.createCadreInvitation({ uses: 1, expiresInMs: RENTAL_INVITATION_TTL_MS });
|
|
91
91
|
report(options, 'creating');
|
|
92
92
|
let container;
|
|
93
93
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rent-node.js","sourceRoot":"","sources":["../../src/provider/rent-node.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rent-node.js","sourceRoot":"","sources":["../../src/provider/rent-node.ts"],"names":[],"mappings":"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"}
|