@forestrie/forestrie-cli 0.11.0 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -421,6 +421,16 @@ differing from the genesis, a receipt with no delegation certificate or a
421
421
  non-KS256 genesis root, and any result other than that magic word.
422
422
  Use an archive node for an old `--block`.
423
423
 
424
+ **Trust.** An attestation is what the RPC you named reported; it is unsigned,
425
+ and `verify` cannot tell a fetched one from a forged one. So:
426
+
427
+ - **Fetch it yourself,** or accept one only from a party you would trust to
428
+ read the chain for you.
429
+ - **For more confidence, ask several independent RPCs** with the same
430
+ `--block` and check that each succeeds with the same `blockHash`.
431
+ - **Pick a block near the receipt's time.** The guarantee is "valid under the
432
+ contract's signers at that block", and owners can change after issuance.
433
+
424
434
  ## Use as a library: `decode-receipt`
425
435
 
426
436
  The receipt decoder behind `forestrie decode-receipt` is exported as a
package/dist/cli.js CHANGED
@@ -36758,7 +36758,7 @@ var init_verify3 = __esm(() => {
36758
36758
  },
36759
36759
  "ks256-attestation": {
36760
36760
  type: "string",
36761
- description: "ERC-1271 attestation (CBOR from `forestrie fetch-ks256-attestation`) for a KS256 contract root such as a Safe: the delegation certificate then verifies offline as valid under the contract's signers at the attested block, not as a signature by one key. Needs the forest chain id from --genesis. verify never calls the chain",
36761
+ description: "ERC-1271 attestation (CBOR from `forestrie fetch-ks256-attestation`) for a KS256 contract root such as a Safe: the delegation certificate then verifies offline as valid under the contract's signers at the attested block, not as a signature by one key. Needs the forest chain id from --genesis. verify never calls the chain. Trust: an attestation is unsigned and only as good as whoever fetched it — accept one only from a party you would trust to read the chain for you, or fetch it yourself",
36762
36762
  valueHint: "path"
36763
36763
  },
36764
36764
  receipt: {
@@ -36852,7 +36852,7 @@ var init_verify_grant = __esm(() => {
36852
36852
  },
36853
36853
  "ks256-attestation": {
36854
36854
  type: "string",
36855
- description: "ERC-1271 attestation (CBOR from `forestrie fetch-ks256-attestation`) for a KS256 contract root such as a Safe: the delegation certificate then verifies offline as valid under the contract's signers at the attested block, not as a signature by one key. Needs the forest chain id from --genesis. verify never calls the chain",
36855
+ description: "ERC-1271 attestation (CBOR from `forestrie fetch-ks256-attestation`) for a KS256 contract root such as a Safe: the delegation certificate then verifies offline as valid under the contract's signers at the attested block, not as a signature by one key. Needs the forest chain id from --genesis. verify never calls the chain. Trust: an attestation is unsigned and only as good as whoever fetched it — accept one only from a party you would trust to read the chain for you, or fetch it yourself",
36856
36856
  valueHint: "path"
36857
36857
  },
36858
36858
  receipt: {
@@ -37313,7 +37313,7 @@ var init_fetch_ks256_attestation3 = __esm(() => {
37313
37313
  fetch_ks256_attestation_default = defineForestrieCommand({
37314
37314
  meta: {
37315
37315
  name: "fetch-ks256-attestation",
37316
- description: "Ask a KS256 contract root (a Safe) over ERC-1271 whether it signs the receipt's delegation certificate, and cache the block-bound answer as a --ks256-attestation artifact (CBOR binding chainId/address/digest/signature hash/block) — verify then accepts the contract-rooted receipt offline as valid under the contract's signers at that block. Auditable: anyone with RPC can re-run the call at that block. An EOA root needs no attestation (verify recovers it)"
37316
+ description: "Ask a KS256 contract root (a Safe) over ERC-1271 whether it signs the receipt's delegation certificate, and cache the block-bound answer as a --ks256-attestation artifact (CBOR binding chainId/address/digest/signature hash/block) — verify then accepts the contract-rooted receipt offline as valid under the contract's signers at that block. The answer is only as trustworthy as the RPC you name; for more confidence run it against several independent RPCs with the same --block and check they agree on the block hash. Auditable: anyone with RPC can re-run the call at that block. An EOA root needs no attestation (verify recovers it)"
37317
37317
  },
37318
37318
  args: {
37319
37319
  receipt: {
@@ -37339,7 +37339,7 @@ var init_fetch_ks256_attestation3 = __esm(() => {
37339
37339
  },
37340
37340
  block: {
37341
37341
  type: "string",
37342
- description: "Block number to pin the calls to, or 'latest' (default) — needs an archive node for old blocks",
37342
+ description: "Block number to pin the calls to, or 'latest' (default). The attestation speaks for the contract's signers at this block, so pick one near the receipt's time for an authorised-at-issuance reading; old blocks need an archive node",
37343
37343
  valueHint: "number|latest"
37344
37344
  },
37345
37345
  out: {
@@ -37483,7 +37483,7 @@ init_dist();
37483
37483
  // package.json
37484
37484
  var package_default = {
37485
37485
  name: "@forestrie/forestrie-cli",
37486
- version: "0.11.0",
37486
+ version: "0.11.1",
37487
37487
  description: "forestrie — participant CLI for forestrie transparency logs (SCITT / COSE receipts)",
37488
37488
  keywords: [
37489
37489
  "forestrie",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forestrie/forestrie-cli",
3
- "version": "0.11.0",
3
+ "version": "0.11.1",
4
4
  "description": "forestrie — participant CLI for forestrie transparency logs (SCITT / COSE receipts)",
5
5
  "keywords": [
6
6
  "forestrie",
@@ -6,7 +6,7 @@ export default defineForestrieCommand({
6
6
  meta: {
7
7
  name: "fetch-ks256-attestation",
8
8
  description:
9
- "Ask a KS256 contract root (a Safe) over ERC-1271 whether it signs the receipt's delegation certificate, and cache the block-bound answer as a --ks256-attestation artifact (CBOR binding chainId/address/digest/signature hash/block) — verify then accepts the contract-rooted receipt offline as valid under the contract's signers at that block. Auditable: anyone with RPC can re-run the call at that block. An EOA root needs no attestation (verify recovers it)",
9
+ "Ask a KS256 contract root (a Safe) over ERC-1271 whether it signs the receipt's delegation certificate, and cache the block-bound answer as a --ks256-attestation artifact (CBOR binding chainId/address/digest/signature hash/block) — verify then accepts the contract-rooted receipt offline as valid under the contract's signers at that block. The answer is only as trustworthy as the RPC you name; for more confidence run it against several independent RPCs with the same --block and check they agree on the block hash. Auditable: anyone with RPC can re-run the call at that block. An EOA root needs no attestation (verify recovers it)",
10
10
  },
11
11
  args: {
12
12
  receipt: {
@@ -35,7 +35,7 @@ export default defineForestrieCommand({
35
35
  block: {
36
36
  type: "string",
37
37
  description:
38
- "Block number to pin the calls to, or 'latest' (default) — needs an archive node for old blocks",
38
+ "Block number to pin the calls to, or 'latest' (default). The attestation speaks for the contract's signers at this block, so pick one near the receipt's time for an authorised-at-issuance reading; old blocks need an archive node",
39
39
  valueHint: "number|latest",
40
40
  },
41
41
  out: {
@@ -24,7 +24,7 @@ export default defineForestrieCommand({
24
24
  "ks256-attestation": {
25
25
  type: "string",
26
26
  description:
27
- "ERC-1271 attestation (CBOR from `forestrie fetch-ks256-attestation`) for a KS256 contract root such as a Safe: the delegation certificate then verifies offline as valid under the contract's signers at the attested block, not as a signature by one key. Needs the forest chain id from --genesis. verify never calls the chain",
27
+ "ERC-1271 attestation (CBOR from `forestrie fetch-ks256-attestation`) for a KS256 contract root such as a Safe: the delegation certificate then verifies offline as valid under the contract's signers at the attested block, not as a signature by one key. Needs the forest chain id from --genesis. verify never calls the chain. Trust: an attestation is unsigned and only as good as whoever fetched it — accept one only from a party you would trust to read the chain for you, or fetch it yourself",
28
28
  valueHint: "path",
29
29
  },
30
30
  receipt: {
@@ -24,7 +24,7 @@ export default defineForestrieCommand({
24
24
  "ks256-attestation": {
25
25
  type: "string",
26
26
  description:
27
- "ERC-1271 attestation (CBOR from `forestrie fetch-ks256-attestation`) for a KS256 contract root such as a Safe: the delegation certificate then verifies offline as valid under the contract's signers at the attested block, not as a signature by one key. Needs the forest chain id from --genesis. verify never calls the chain",
27
+ "ERC-1271 attestation (CBOR from `forestrie fetch-ks256-attestation`) for a KS256 contract root such as a Safe: the delegation certificate then verifies offline as valid under the contract's signers at the attested block, not as a signature by one key. Needs the forest chain id from --genesis. verify never calls the chain. Trust: an attestation is unsigned and only as good as whoever fetched it — accept one only from a party you would trust to read the chain for you, or fetch it yourself",
28
28
  valueHint: "path",
29
29
  },
30
30
  receipt: {