{
  "tool_id": "art-587-finp2p-ledger-proof-verifier",
  "note": "golden_hash filled by `node golden-parity.test.mjs --update`.",
  "vectors": [
    {
      "name": "default-inputs",
      "policy_parameters": {},
      "output_payload": {
        "hash_match": {
          "result": true,
          "computed_hash": "0x10ca3eff73ebec87d2394fc58560afeab86dac7a21f5e402ea0a55e5c8a6758f",
          "expected_source": "signature_digest"
        },
        "signature_match": {
          "result": false,
          "curve": "secp256k1",
          "hash_func": "keccak_256"
        },
        "verified_against": "caller-supplied verification_public_key (not independently resolved -- see FINP2P-VERIFY-BUILD-SPEC.md §2)",
        "hashlist_field_order": [
          "id",
          "operationType",
          "transactionOperationId",
          "srcAssetId",
          "srcAssetLedgerInfoType",
          "srcAssetLedgerInfoId",
          "srcAccount",
          "srcAccountType",
          "dstAssetId",
          "dstAssetLedgerInfoType",
          "dstAssetLedgerInfoId",
          "destAccount",
          "dstAccountType",
          "transactionId",
          "amount",
          "execPlanId",
          "instructionSeq"
        ],
        "hashlist_values_declared": null,
        "hashlist_values_consistent": null,
        "parse_errors": [
          "signature must be 65 bytes (r||s||v), got 0"
        ],
        "scope_note": "Signature and hash verified against supplied FinP2P material only. This node makes no assertion about ledger finality, settlement, or acceptance (FINP2P-VERIFY-BUILD-SPEC.md §6)."
      },
      "golden_hash": "009869d013e5676fc9dc381e7f4b6e99783c1d03856d5ac3f4621c0e8356b729"
    },
    {
      "name": "valid-hash-and-signature",
      "policy_parameters": {
        "receipt": {
          "id": "r-fixture-1",
          "operationType": "transfer",
          "transactionOperationId": "top-1",
          "srcAssetId": "asset-A",
          "srcAssetLedgerInfoType": "caip19",
          "srcAssetLedgerInfoId": "eip155:1:erc20:0xabc",
          "srcAccount": "acct-src",
          "srcAccountType": "finId",
          "dstAssetId": "asset-B",
          "dstAssetLedgerInfoType": "caip19",
          "dstAssetLedgerInfoId": "eip155:1:erc20:0xdef",
          "destAccount": "acct-dst",
          "dstAccountType": "finId",
          "transactionId": "tx-1",
          "amount": "1000",
          "execPlanId": "plan-1",
          "instructionSeq": "1"
        },
        "proof": {
          "signatureProofPolicy": "hashList",
          "hashFunc": "keccak_256",
          "hashListValues": [
            "id",
            "operationType",
            "transactionOperationId",
            "srcAssetId",
            "srcAssetLedgerInfoType",
            "srcAssetLedgerInfoId",
            "srcAccount",
            "srcAccountType",
            "dstAssetId",
            "dstAssetLedgerInfoType",
            "dstAssetLedgerInfoId",
            "destAccount",
            "dstAccountType",
            "transactionId",
            "amount",
            "execPlanId",
            "instructionSeq"
          ],
          "signature": "0xb6c5da02c9ea7fa7bdc5c473922ea59cde0df712a911835656619cb91c5eac5b6031c7b9b569e5feeaeb3dbb13b05a59e3a77c634339c91352a09e2d6377a81800"
        },
        "verification_public_key": "0x0256b328b30c8bf5839e24058747879408bdb36241dc9c2e7c619faa12b2920967"
      },
      "output_payload": {
        "hash_match": {
          "result": true,
          "computed_hash": "0x7026457a4291c4b86aebf2c19ea04acb3420907c95292ab9b32da025f0cc0dbd",
          "expected_source": "hashListValues"
        },
        "signature_match": {
          "result": true,
          "curve": "secp256k1",
          "hash_func": "keccak_256"
        },
        "verified_against": "caller-supplied verification_public_key (not independently resolved -- see FINP2P-VERIFY-BUILD-SPEC.md §2)",
        "hashlist_field_order": [
          "id",
          "operationType",
          "transactionOperationId",
          "srcAssetId",
          "srcAssetLedgerInfoType",
          "srcAssetLedgerInfoId",
          "srcAccount",
          "srcAccountType",
          "dstAssetId",
          "dstAssetLedgerInfoType",
          "dstAssetLedgerInfoId",
          "destAccount",
          "dstAccountType",
          "transactionId",
          "amount",
          "execPlanId",
          "instructionSeq"
        ],
        "hashlist_values_declared": [
          "id",
          "operationType",
          "transactionOperationId",
          "srcAssetId",
          "srcAssetLedgerInfoType",
          "srcAssetLedgerInfoId",
          "srcAccount",
          "srcAccountType",
          "dstAssetId",
          "dstAssetLedgerInfoType",
          "dstAssetLedgerInfoId",
          "destAccount",
          "dstAccountType",
          "transactionId",
          "amount",
          "execPlanId",
          "instructionSeq"
        ],
        "hashlist_values_consistent": true,
        "parse_errors": [],
        "scope_note": "Signature and hash verified against supplied FinP2P material only. This node makes no assertion about ledger finality, settlement, or acceptance (FINP2P-VERIFY-BUILD-SPEC.md §6)."
      },
      "golden_hash": "d193ed2432634660cd15c8962214e2a40d2cc440bc041141bcdddf4bbd8e6519"
    },
    {
      "name": "tampered-receipt-field",
      "policy_parameters": {
        "receipt": {
          "id": "r-fixture-1",
          "operationType": "transfer",
          "transactionOperationId": "top-1",
          "srcAssetId": "asset-A",
          "srcAssetLedgerInfoType": "caip19",
          "srcAssetLedgerInfoId": "eip155:1:erc20:0xabc",
          "srcAccount": "acct-src",
          "srcAccountType": "finId",
          "dstAssetId": "asset-B",
          "dstAssetLedgerInfoType": "caip19",
          "dstAssetLedgerInfoId": "eip155:1:erc20:0xdef",
          "destAccount": "acct-dst",
          "dstAccountType": "finId",
          "transactionId": "tx-1",
          "amount": "999999999",
          "execPlanId": "plan-1",
          "instructionSeq": "1"
        },
        "proof": {
          "signatureProofPolicy": "hashList",
          "hashFunc": "keccak_256",
          "hashListValues": [
            "id",
            "operationType",
            "transactionOperationId",
            "srcAssetId",
            "srcAssetLedgerInfoType",
            "srcAssetLedgerInfoId",
            "srcAccount",
            "srcAccountType",
            "dstAssetId",
            "dstAssetLedgerInfoType",
            "dstAssetLedgerInfoId",
            "destAccount",
            "dstAccountType",
            "transactionId",
            "amount",
            "execPlanId",
            "instructionSeq"
          ],
          "signature": "0xb6c5da02c9ea7fa7bdc5c473922ea59cde0df712a911835656619cb91c5eac5b6031c7b9b569e5feeaeb3dbb13b05a59e3a77c634339c91352a09e2d6377a81800"
        },
        "verification_public_key": "0x0256b328b30c8bf5839e24058747879408bdb36241dc9c2e7c619faa12b2920967"
      },
      "output_payload": {
        "hash_match": {
          "result": true,
          "computed_hash": "0xde8947c48e26f307a6365419bad3127891194fc1a57d6ae4fd5e65e03af58479",
          "expected_source": "hashListValues"
        },
        "signature_match": {
          "result": false,
          "curve": "secp256k1",
          "hash_func": "keccak_256"
        },
        "verified_against": "caller-supplied verification_public_key (not independently resolved -- see FINP2P-VERIFY-BUILD-SPEC.md §2)",
        "hashlist_field_order": [
          "id",
          "operationType",
          "transactionOperationId",
          "srcAssetId",
          "srcAssetLedgerInfoType",
          "srcAssetLedgerInfoId",
          "srcAccount",
          "srcAccountType",
          "dstAssetId",
          "dstAssetLedgerInfoType",
          "dstAssetLedgerInfoId",
          "destAccount",
          "dstAccountType",
          "transactionId",
          "amount",
          "execPlanId",
          "instructionSeq"
        ],
        "hashlist_values_declared": [
          "id",
          "operationType",
          "transactionOperationId",
          "srcAssetId",
          "srcAssetLedgerInfoType",
          "srcAssetLedgerInfoId",
          "srcAccount",
          "srcAccountType",
          "dstAssetId",
          "dstAssetLedgerInfoType",
          "dstAssetLedgerInfoId",
          "destAccount",
          "dstAccountType",
          "transactionId",
          "amount",
          "execPlanId",
          "instructionSeq"
        ],
        "hashlist_values_consistent": true,
        "parse_errors": [],
        "scope_note": "Signature and hash verified against supplied FinP2P material only. This node makes no assertion about ledger finality, settlement, or acceptance (FINP2P-VERIFY-BUILD-SPEC.md §6)."
      },
      "golden_hash": "62f3d46a8eada3494d055082b2d576ae128ceff8ec148ba81fcae8ab8b550c0c"
    }
  ]
}
