{
  "ml": {
    "v": "7",
    "eng": "2.12.0-beta.1",
    "lvl": -1,
    "conf": 0,
    "mods": [
      {
        "cls": 0,
        "raw": 0.0001039505,
        "rte": "az",
        "prob": 0.0001039505
      },
      {
        "cls": 0,
        "raw": 0.00022498767,
        "rte": "az/tar",
        "prob": 0.00022498767
      }
    ],
    "prob": 0.0001039505,
    "files": [
      {
        "id": 0,
        "lvl": -1,
        "conf": 0,
        "prob": 0.00010395050048828125,
        "type": "crate"
      },
      {
        "id": 6,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000011344750419084448,
        "type": "rust"
      },
      {
        "id": 8,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000011533498764038086,
        "type": "rust"
      },
      {
        "id": 11,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013381242752075195,
        "type": "registry"
      },
      {
        "id": 12,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013520319953386206,
        "type": "registry"
      },
      {
        "id": 13,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013520319953386206,
        "type": "registry"
      },
      {
        "id": 14,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013520319953386206,
        "type": "registry"
      },
      {
        "id": 15,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013520319953386206,
        "type": "registry"
      },
      {
        "id": 16,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013520319953386206,
        "type": "registry"
      },
      {
        "id": 17,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013520319953386206,
        "type": "registry"
      },
      {
        "id": 18,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013520319953386206,
        "type": "registry"
      },
      {
        "id": 19,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013520319953386206,
        "type": "registry"
      },
      {
        "id": 20,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013341506019060034,
        "type": ""
      },
      {
        "id": 21,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013341506019060034,
        "type": ""
      },
      {
        "id": 22,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013341506019060034,
        "type": ""
      },
      {
        "id": 23,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013341506019060034,
        "type": ""
      },
      {
        "id": 24,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013341506019060034,
        "type": ""
      },
      {
        "id": 25,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014175971045915503,
        "type": ""
      },
      {
        "id": 26,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013341506019060034,
        "type": ""
      },
      {
        "id": 27,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013341506019060034,
        "type": ""
      },
      {
        "id": 28,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000013440847396850586,
        "type": "crate"
      },
      {
        "id": 33,
        "lvl": -1,
        "conf": 0,
        "prob": 0.000014821688637312036,
        "type": "registry"
      }
    ],
    "version": "v18.18",
    "analyzed_at": "2026-09-26T01:23:04Z"
  },
  "path": "fc-pallet-payments-2.3.1.crate",
  "raw": {
    "fetched": [
      {
        "kind": "dependency",
        "size": 17438,
        "cached": true,
        "status": 200,
        "headers": [
          [
            "connection",
            "keep-alive"
          ],
          [
            "content-length",
            "17438"
          ],
          [
            "x-cache-hits",
            "1097"
          ],
          [
            "x-amz-replication-status",
            "COMPLETED"
          ],
          [
            "x-amz-request-id",
            "T2KFRNZ34D9SXEQ0"
          ],
          [
            "etag",
            "\"b7f1a4cd029f5b6ffbc31b3acd5ae605\""
          ],
          [
            "date",
            "Wed, 23 Sep 2026 05:30:06 GMT"
          ],
          [
            "x-amz-id-2",
            "h65kZgAZN4mIn+i6CZbzsH/JDO3uP5SM9Ivo1qbvBK2Vo/muUQJgqx8dh+Qm9aMCGGXGK+jVvLU="
          ],
          [
            "x-amz-server-side-encryption",
            "AES256"
          ],
          [
            "server",
            "AmazonS3"
          ],
          [
            "last-modified",
            "Sun, 28 Jun 2026 15:02:31 GMT"
          ],
          [
            "x-amz-version-id",
            "y6M6EWEu3sDypQMDg2IeZW01.htj5N6n"
          ],
          [
            "accept-ranges",
            "bytes"
          ],
          [
            "content-type",
            "application/gzip"
          ],
          [
            "cache-control",
            "public,max-age=31536000,immutable"
          ],
          [
            "age",
            "234068"
          ],
          [
            "x-cache",
            "HIT"
          ],
          [
            "x-served-by",
            "cache-iad-kiad7000126-IAD"
          ]
        ],
        "locator": "pkg:cargo/Inflector@0.11.4",
        "outcome": "ok",
        "final_url": "https://static.crates.io/crates/Inflector/Inflector-0.11.4.crate",
        "fetched_at": 1790375472,
        "pin_verified": true,
        "resolved_url": "https://static.crates.io/crates/Inflector/Inflector-0.11.4.crate",
        "source_offset": 231,
        "source_sha256": "52d1a7af6a8da84a47b3664a60e594b962c15563aa1a95733377d571c8e0bbce",
        "content_sha256": "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
      },
      {
        "kind": "dependency",
        "size": 43134,
        "cached": true,
        "status": 200,
        "headers": [
          [
            "connection",
            "keep-alive"
          ],
          [
            "content-length",
            "43134"
          ],
          [
            "x-cache-hits",
            "3586"
          ],
          [
            "etag",
            "\"6185be920ab1302a8b29a5ed44875324\""
          ],
          [
            "x-amz-replication-status",
            "COMPLETED"
          ],
          [
            "server",
            "AmazonS3"
          ],
          [
            "date",
            "Wed, 23 Sep 2026 04:50:10 GMT"
          ],
          [
            "x-amz-id-2",
            "mZGGOd6YWJBHeYoyOwWE+XU9Ug/u89crTvoWXCNcYbTxvGto2NUFnz0P4Ll6AHX2ZTKeJfoVOg5KDbDDh93M8ntmKeLVk0qA"
          ],
          [
            "x-amz-server-side-encryption",
            "AES256"
          ],
          [
            "last-modified",
            "Sun, 28 Jun 2026 18:19:12 GMT"
          ],
          [
            "x-amz-request-id",
            "WPZE2R8K2E4TTGAZ"
          ],
          [
            "x-amz-version-id",
            "Ngmmg8KlmXzcz.b5TUsnwyVVVASFO8iQ"
          ],
          [
            "accept-ranges",
            "bytes"
          ],
          [
            "content-type",
            "application/gzip"
          ],
          [
            "cache-control",
            "public,max-age=31536000,immutable"
          ],
          [
            "age",
            "234818"
          ],
          [
            "x-cache",
            "HIT"
          ],
          [
            "x-served-by",
            "cache-iad-kiad7000191-IAD"
          ]
        ],
        "locator": "pkg:cargo/addr2line@0.25.1",
        "outcome": "ok",
        "final_url": "https://static.crates.io/crates/addr2line/addr2line-0.25.1.crate",
        "fetched_at": 1790373827,
        "pin_verified": true,
        "resolved_url": "https://static.crates.io/crates/addr2line/addr2line-0.25.1.crate",
        "source_offset": 470,
        "source_sha256": "52d1a7af6a8da84a47b3664a60e594b962c15563aa1a95733377d571c8e0bbce",
        "content_sha256": "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b"
      },
      {
        "kind": "dependency",
        "size": 13366,
        "cached": true,
        "status": 200,
        "headers": [
          [
            "connection",
            "keep-alive"
          ],
          [
            "content-length",
            "13366"
          ],
          [
            "x-cache-hits",
            "2735"
          ],
          [
            "x-amz-request-id",
            "QFAW7ZBH9C2P143Q"
          ],
          [
            "date",
            "Wed, 23 Sep 2026 05:24:26 GMT"
          ],
          [
            "etag",
            "\"873036bd52f5fd829bd41b3c2ca0bc08\""
          ],
          [
            "x-amz-replication-status",
            "COMPLETED"
          ],
          [
            "last-modified",
            "Sun, 28 Jun 2026 15:08:05 GMT"
          ],
          [
            "x-amz-server-side-encryption",
            "AES256"
          ],
          [
            "x-amz-id-2",
            "+BCB/8bqwYDBEY3Hh4sQDzCnnue1TUTjGE/AeEkQuRKMCRDe5Iudgr1rUCwi0P/bALRaNuRRS6XwWAf2O7Hi0uakfFUX56HX"
          ],
          [
            "server",
            "AmazonS3"
          ],
          [
            "x-amz-version-id",
            "mJpww7l4CTqLk2X2AQAEmLvLLdr1HfR9"
          ],
          [
            "accept-ranges",
            "bytes"
          ],
          [
            "content-type",
            "application/gzip"
          ],
          [
            "cache-control",
            "public,max-age=31536000,immutable"
          ],
          [
            "age",
            "232762"
          ],
          [
            "x-cache",
            "HIT"
          ],
          [
            "x-served-by",
            "cache-iad-kiad7000050-IAD"
          ]
        ],
        "locator": "pkg:cargo/adler2@2.0.1",
        "outcome": "ok",
        "final_url": "https://static.crates.io/crates/adler2/adler2-2.0.1.crate",
        "fetched_at": 1790373827,
        "pin_verified": true,
        "resolved_url": "https://static.crates.io/crates/adler2/adler2-2.0.1.crate",
        "source_offset": 689,
        "source_sha256": "52d1a7af6a8da84a47b3664a60e594b962c15563aa1a95733377d571c8e0bbce",
        "content_sha256": "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
      },
      {
        "kind": "dependency",
        "size": 15509,
        "cached": true,
        "status": 200,
        "headers": [
          [
            "connection",
            "keep-alive"
          ],
          [
            "content-length",
            "15509"
          ],
          [
            "x-cache-hits",
            "4526"
          ],
          [
            "x-amz-request-id",
            "AM41FGNPWXS9ZM2P"
          ],
          [
            "x-amz-replication-status",
            "COMPLETED"
          ],
          [
            "last-modified",
            "Sun, 28 Jun 2026 17:48:48 GMT"
          ],
          [
            "x-amz-id-2",
            "THxy0oZFXQrSyHLj5Qm0/FTsB/anc8XLh5PwuCAzbmQtopoYAlnCIbUDXNsa6vER4424QzNy87U="
          ],
          [
            "server",
            "AmazonS3"
          ],
          [
            "x-amz-server-side-encryption",
            "AES256"
          ],
          [
            "date",
            "Wed, 23 Sep 2026 04:51:29 GMT"
          ],
          [
            "etag",
            "\"65d4788e15f2bbf808d0229ba84e7641\""
          ],
          [
            "x-amz-version-id",
            "Ks_u5hyV7E8.v_aODkAOztGPtm4.gxqu"
          ],
          [
            "accept-ranges",
            "bytes"
          ],
          [
            "content-type",
            "application/gzip"
          ],
          [
            "cache-control",
            "public,max-age=31536000,immutable"
          ],
          [
            "age",
            "238013"
          ],
          [
            "x-cache",
            "HIT"
          ],
          [
            "x-served-by",
            "cache-iad-kiad7000216-IAD"
          ]
        ],
        "locator": "pkg:cargo/aead@0.5.2",
        "outcome": "ok",
        "final_url": "https://static.crates.io/crates/aead/aead-0.5.2.crate",
        "fetched_at": 1790377100,
        "pin_verified": true,
        "resolved_url": "https://static.crates.io/crates/aead/aead-0.5.2.crate",
        "source_offset": 877,
        "source_sha256": "52d1a7af6a8da84a47b3664a60e594b962c15563aa1a95733377d571c8e0bbce",
        "content_sha256": "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
      },
      {
        "kind": "dependency",
        "size": 43413,
        "cached": true,
        "status": 200,
        "headers": [
          [
            "connection",
            "keep-alive"
          ],
          [
            "content-length",
            "43413"
          ],
          [
            "etag",
            "\"2d72538f5e173edbd18d17e347f409bc\""
          ],
          [
            "x-amz-server-side-encryption",
            "AES256"
          ],
          [
            "x-cache-hits",
            "3363"
          ],
          [
            "accept-ranges",
            "bytes"
          ],
          [
            "x-amz-request-id",
            "VN165MPDAD034S31"
          ],
          [
            "x-amz-id-2",
            "kyCEMk6RTyV136YBpQxsFnBlhm+flp2FlsWbV2gBlxYm5OTaf0P2av+NMAAb6Ha/IuEbBHRZPIf6VyW6TXUN7fXl1EEaMsEI"
          ],
          [
            "date",
            "Wed, 23 Sep 2026 21:53:38 GMT"
          ],
          [
            "x-amz-replication-status",
            "COMPLETED"
          ],
          [
            "server",
            "AmazonS3"
          ],
          [
            "x-amz-version-id",
            "wkA8NB4HQ6NdOLKIJYloLIItrmutLP4y"
          ],
          [
            "last-modified",
            "Sun, 28 Jun 2026 16:57:27 GMT"
          ],
          [
            "content-type",
            "application/gzip"
          ],
          [
            "cache-control",
            "public,max-age=31536000,immutable"
          ],
          [
            "age",
            "173411"
          ],
          [
            "x-cache",
            "HIT"
          ],
          [
            "x-served-by",
            "cache-iad-kiad7000175-IAD"
          ]
        ],
        "locator": "pkg:cargo/ahash@0.8.12",
        "outcome": "ok",
        "final_url": "https://static.crates.io/crates/ahash/ahash-0.8.12.crate",
        "fetched_at": 1790373827,
        "pin_verified": true,
        "resolved_url": "https://static.crates.io/crates/ahash/ahash-0.8.12.crate",
        "source_offset": 1122,
        "source_sha256": "52d1a7af6a8da84a47b3664a60e594b962c15563aa1a95733377d571c8e0bbce",
        "content_sha256": "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75"
      },
      {
        "kind": "dependency",
        "size": 184015,
        "cached": true,
        "status": 200,
        "headers": [
          [
            "connection",
            "keep-alive"
          ],
          [
            "content-length",
            "184015"
          ],
          [
            "content-type",
            "application/gzip"
          ],
          [
            "date",
            "Wed, 23 Sep 2026 05:38:24 GMT"
          ],
          [
            "x-amz-request-id",
            "QRCF9JKXNMCQ0DAK"
          ],
          [
            "x-amz-replication-status",
            "COMPLETED"
          ],
          [
            "etag",
            "\"2fb8e2b2c327d642027d27dd82160195\""
          ],
          [
            "x-amz-version-id",
            "Pp1NG3tT2GOws_m0kXzhP1K8Zke2E_Jt"
          ],
          [
            "x-amz-id-2",
            "HahUakKMhVH0XVi/UCBezoxSED2SssH0kptE+j7akqAX16JNAml8wzGqxxyA00AYNwK2bNrLGoi17m7V2znxxA68eliNK1Zm"
          ],
          [
            "x-amz-server-side-encryption",
            "AES256"
          ],
          [
            "server",
            "AmazonS3"
          ],
          [
            "x-cache-hits",
            "16851"
          ],
          [
            "last-modified",
            "Sun, 28 Jun 2026 16:53:34 GMT"
          ],
          [
            "accept-ranges",
            "bytes"
          ],
          [
            "cache-control",
            "public,max-age=31536000,immutable"
          ],
          [
            "age",
            "231812"
          ],
          [
            "x-cache",
            "HIT"
          ],
          [
            "x-served-by",
            "cache-iad-kiad7000050-IAD"
          ]
        ],
        "locator": "pkg:cargo/aho-corasick@1.1.4",
        "outcome": "ok",
        "final_url": "https://static.crates.io/crates/aho-corasick/aho-corasick-1.1.4.crate",
        "fetched_at": 1790373714,
        "pin_verified": true,
        "resolved_url": "https://static.crates.io/crates/aho-corasick/aho-corasick-1.1.4.crate",
        "source_offset": 1413,
        "source_sha256": "52d1a7af6a8da84a47b3664a60e594b962c15563aa1a95733377d571c8e0bbce",
        "content_sha256": "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
      },
      {
        "kind": "dependency",
        "size": 63622,
        "cached": true,
        "status": 200,
        "headers": [
          [
            "connection",
            "keep-alive"
          ],
          [
            "content-length",
            "63622"
          ],
          [
            "x-cache-hits",
            "2708"
          ],
          [
            "server",
            "AmazonS3"
          ],
          [
            "date",
            "Wed, 23 Sep 2026 04:09:50 GMT"
          ],
          [
            "etag",
            "\"a4cce839af1f5a83a1bf73de16819a75\""
          ],
          [
            "x-amz-version-id",
            "TDgmaPe5WM7anCKQxsqqmHHcm2Zj6L3p"
          ],
          [
            "x-amz-id-2",
            "Dx1b19wcOyEMZ2+259Z0QGhSIxaF7ffxfCRafLpPiaPc+mSATo29eU8NtSyp+5wzJG5u7mKfeQE="
          ],
          [
            "x-amz-server-side-encryption",
            "AES256"
          ],
          [
            "x-amz-request-id",
            "G1AKHGGB54RCXM4T"
          ],
          [
            "last-modified",
            "Sun, 28 Jun 2026 14:58:55 GMT"
          ],
          [
            "x-amz-replication-status",
            "COMPLETED"
          ],
          [
            "accept-ranges",
            "bytes"
          ],
          [
            "content-type",
            "application/gzip"
          ],
          [
            "cache-control",
            "public,max-age=31536000,immutable"
          ],
          [
            "age",
            "237126"
          ],
          [
            "x-cache",
            "HIT"
          ],
          [
            "x-served-by",
            "cache-iad-kiad7000149-IAD"
          ]
        ],
        "locator": "pkg:cargo/allocator-api2@0.2.21",
        "outcome": "ok",
        "final_url": "https://static.crates.io/crates/allocator-api2/allocator-api2-0.2.21.crate",
        "fetched_at": 1790373714,
        "pin_verified": true,
        "resolved_url": "https://static.crates.io/crates/allocator-api2/allocator-api2-0.2.21.crate",
        "source_offset": 1642,
        "source_sha256": "52d1a7af6a8da84a47b3664a60e594b962c15563aa1a95733377d571c8e0bbce",
        "content_sha256": "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
      },
      {
        "kind": "dependency",
        "size": 18729,
        "cached": true,
        "status": 200,
        "headers": [
          [
            "connection",
            "keep-alive"
          ],
          [
            "content-length",
            "18729"
          ],
          [
            "x-cache-hits",
            "3900"
          ],
          [
            "date",
            "Wed, 23 Sep 2026 05:05:39 GMT"
          ],
          [
            "x-amz-version-id",
            "ZcTpmZ9lEeQ7RkqCuNBbUoyxp21iZoWK"
          ],
          [
            "last-modified",
            "Sun, 28 Jun 2026 18:05:57 GMT"
          ],
          [
            "etag",
            "\"3e70bb53cab36a3ef2a02dfce21bc472\""
          ],
          [
            "x-amz-id-2",
            "kKUMmAkWe1oJANDvgCEH+/Jq/L+0MD/zvZeJfwKgD5ALWabG4k49t6vWd/gqYW7HzTuivWlmpuwazk6HMpCsc7k2Myfd0Foj"
          ],
          [
            "x-amz-server-side-encryption",
            "AES256"
          ],
          [
            "server",
            "AmazonS3"
          ],
          [
            "x-amz-replication-status",
            "COMPLETED"
          ],
          [
            "x-amz-request-id",
            "P8F3TWB32QWXFJ7X"
          ],
          [
            "accept-ranges",
            "bytes"
          ],
          [
            "content-type",
            "application/gzip"
          ],
          [
            "cache-control",
            "public,max-age=31536000,immutable"
          ],
          [
            "age",
            "233889"
          ],
          [
            "x-cache",
            "HIT"
          ],
          [
            "x-served-by",
            "cache-iad-kiad7000132-IAD"
          ]
        ],
        "locator": "pkg:cargo/autocfg@1.5.0",
        "outcome": "ok",
        "final_url": "https://static.crates.io/crates/autocfg/autocfg-1.5.0.crate",
        "fetched_at": 1790373827,
        "pin_verified": true,
        "resolved_url": "https://static.crates.io/crates/autocfg/autocfg-1.5.0.crate",
        "source_offset": 10587,
        "source_sha256": "52d1a7af6a8da84a47b3664a60e594b962c15563aa1a95733377d571c8e0bbce",
        "content_sha256": "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
      },
      {
        "kind": "dependency",
        "size": 28133,
        "cached": false,
        "status": 200,
        "headers": [
          [
            "connection",
            "keep-alive"
          ],
          [
            "content-length",
            "28133"
          ],
          [
            "x-amz-request-id",
            "A5B5MK3D3WRJVAMB"
          ],
          [
            "x-amz-id-2",
            "Er948cA/2iYSXACfNwlDm/tgY5QeXfbc7u0XVDJAw6BRgTVQ/s63uJN8/1dQRdCzjBKpVpb/XkU="
          ],
          [
            "x-cache-hits",
            "16"
          ],
          [
            "accept-ranges",
            "bytes"
          ],
          [
            "date",
            "Fri, 25 Sep 2026 04:55:06 GMT"
          ],
          [
            "server",
            "AmazonS3"
          ],
          [
            "last-modified",
            "Fri, 25 Sep 2026 04:54:19 GMT"
          ],
          [
            "etag",
            "\"4df32081d649a73e5855fa2b0fd35a13\""
          ],
          [
            "x-amz-replication-status",
            "COMPLETED"
          ],
          [
            "x-amz-version-id",
            "VhGt1hmUb.0PRAN1n1RE7ompQdPXdYuf"
          ],
          [
            "cache-control",
            "public,max-age=31536000,immutable"
          ],
          [
            "content-type",
            "application/gzip"
          ],
          [
            "x-amz-server-side-encryption",
            "AES256"
          ],
          [
            "age",
            "73678"
          ],
          [
            "x-cache",
            "HIT"
          ],
          [
            "x-served-by",
            "cache-iad-kiad7000073-IAD"
          ]
        ],
        "locator": "pkg:cargo/fc-traits-payments@2.3.1",
        "outcome": "ok",
        "final_url": "https://static.crates.io/crates/fc-traits-payments/fc-traits-payments-2.3.1.crate",
        "fetched_at": 1790385783,
        "pin_verified": true,
        "resolved_url": "https://static.crates.io/crates/fc-traits-payments/fc-traits-payments-2.3.1.crate",
        "source_offset": 26626,
        "source_sha256": "52d1a7af6a8da84a47b3664a60e594b962c15563aa1a95733377d571c8e0bbce",
        "content_sha256": "864982c971e9d0b29e62d75d8c56f395e8edbeeaca7f77cd70a6617457cd3f74"
      }
    ],
    "files": [
      {
        "id": 0,
        "mol": "Md₂(In₂Pa)",
        "sha": "16df924752f05c11c5e2b2ca7ab622e5934f4f2d5ad24b129cf61793fc6dccd2",
        "path": "/data/samples/incoming/forager/rust/crates.io/_/fc-pallet-payments/fc-pallet-payments-2.3.1.crate",
        "risk": 3,
        "size": 47028,
        "type": "crate",
        "facts": {
          "metrics": {
            "file": {
              "size": 47028,
              "entropy": 7.99
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 47028,
              "peak_region_entropy": 7.84
            }
          }
        },
        "ident": {
          "name": {
            "value": "fc-pallet-payments",
            "source": "crate.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://github.com/virto-network/frame-contrib.git",
              "kind": "repository",
              "source": "crate.repository"
            }
          ],
          "trust": "unsigned",
          "emails": [
            "contact@virto.team"
          ],
          "authors": [
            {
              "name": "Virto team",
              "role": "author",
              "email": "contact@virto.team",
              "source": "crate.authors"
            }
          ],
          "version": {
            "value": "2.3.1",
            "source": "crate.version",
            "verified": false
          },
          "identifier": {
            "value": "fc-pallet-payments",
            "source": "crate.name",
            "verified": false
          }
        },
        "traits": [
          {
            "id": "metadata/import/rust/frame_support/fail::frame_support/fail",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::fail",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/oninitialize::frame_support/traits/oninitialize",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::OnInitialize",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/onfinalize::frame_support/traits/onfinalize",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::OnFinalize",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_system/ensuresigned::frame_system/ensuresigned",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_system::EnsureSigned",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/weights/constants/rocksdbweight::frame_support/weights/constants/rocksdbweight",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::weights::constants::RocksDbWeight",
            "from": [
              {
                "file": 10
              }
            ]
          },
          {
            "id": "metadata/package/name/convention::cargo-repository-field",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package declares repository"
          },
          {
            "id": "metadata/package/name/convention::cargo-license-field",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package declares license"
          },
          {
            "id": "metadata/import/rust/frame_support/traits/tokens/preservation/preserve::frame_support/traits/tokens/preservation/preserve",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::tokens::Preservation::Preserve",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-test-attr",
            "conf": 0.9,
            "crit": 2,
            "desc": "#[test] attribute",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/callertrait::frame_support/traits/callertrait",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::CallerTrait",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-4",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"have\"",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::rust-tests-path-filename",
            "conf": 0.85,
            "crit": 2,
            "desc": "Path or filename indicates Rust tests",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/traits/blocknumberprovider::sp_runtime/traits/blocknumberprovider",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::traits::BlockNumberProvider",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/equalprivilegeonly::frame_support/traits/equalprivilegeonly",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::EqualPrivilegeOnly",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/fungibles/mutate::FunMutate",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::fungibles::Mutate as FunMutate",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/tokens/fortitude/polite::frame_support/traits/tokens/fortitude/polite",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::tokens::Fortitude::Polite",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/mock/hooks::mock/hooks",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports mock::Hooks",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/import/rust/codec/decode::codec/decode",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports codec::Decode",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-3",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"that\"",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/boundedvec::frame_support/boundedvec",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::BoundedVec",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/dispatcherror::sp_runtime/dispatcherror",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::DispatchError",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/querypreimage::frame_support/traits/querypreimage",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::QueryPreimage",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/fc_traits_payments/onpaymentstatuschanged::fc_traits_payments/onpaymentstatuschanged",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports fc_traits_payments::OnPaymentStatusChanged",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-test",
            "conf": 0.95,
            "crit": 3,
            "desc": "Rust test marker or harness",
            "from": [
              {
                "file": 6
              },
              {
                "file": 8
              }
            ],
            "uses": [
              9,
              32
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/percent::sp_runtime/percent",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::Percent",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_system/pallet_prelude::frame_system/pallet_prelude",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_system::pallet_prelude::*",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/super::super",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports super::*",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/scale_info/typeinfo::scale_info/typeinfo",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports scale_info::TypeInfo",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/tokens/fungibles/inspect::FunsInspect",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::tokens::fungibles::Inspect as FunsInspect",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/fungibles/balanced::FunBalanced",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::fungibles::Balanced as FunBalanced",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/codec/maxencodedlen::codec/maxencodedlen",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports codec::MaxEncodedLen",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-cfg-test",
            "conf": 0.9,
            "crit": 2,
            "desc": "#[cfg(test)] attribute",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/fungibles/inspect::FunInspect",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::fungibles::Inspect as FunInspect",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/derive_impl::frame_support/derive_impl",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::derive_impl",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/schedule/dispatchtime::frame_support/traits/schedule/dispatchtime",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports frame_support::traits::schedule::DispatchTime",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_system/raworigin::frame_system/raworigin",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_system::RawOrigin",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/traits/get::sp_runtime/traits/get",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::traits::Get",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/payment::PaymentStore",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Payment as PaymentStore",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/boundedvec::sp_runtime/boundedvec",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::BoundedVec",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/tokens/precision/exact::frame_support/traits/tokens/precision/exact",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::tokens::Precision::Exact",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/saturating::sp_runtime/saturating",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::Saturating",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/crate/weights/weightinfo::crate/weights/weightinfo",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports crate::weights::WeightInfo",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/parameter_types::frame_support/parameter_types",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::parameter_types",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/package/name/convention::cargo-meaningful-description",
            "conf": 0.78,
            "crit": 2,
            "desc": "Cargo package has meaningful description"
          },
          {
            "id": "metadata/package/name/convention::cargo-package-name",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package has name"
          },
          {
            "id": "metadata/import/rust/frame_benchmarking/v2::frame_benchmarking/v2",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_benchmarking::v2::*",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/traits/checkedsub::sp_runtime/traits/checkedsub",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::traits::CheckedSub",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/traits/zero::sp_runtime/traits/zero",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::traits::Zero",
            "from": [
              {
                "file": 9
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/pallet_prelude/get::frame_support/pallet_prelude/get",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::pallet_prelude::Get",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/buildstorage::sp_runtime/buildstorage",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::BuildStorage",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/sp_io/hashing/blake2_256::sp_io/hashing/blake2_256",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_io::hashing::blake2_256",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/arithmeticerror::sp_runtime/arithmeticerror",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::ArithmeticError",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/bounded::frame_support/traits/bounded",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::Bounded",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/crate/config::crate/config",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports crate::Config",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/weights/constants/weight_ref_time_per_second::frame_support/weights/constants/weight_ref_time_per_second",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::weights::constants::WEIGHT_REF_TIME_PER_SECOND",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/import/rust/alloc/collections/btree_map/btreemap::alloc/collections/btree_map/btreemap",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports alloc::collections::btree_map::BTreeMap",
            "from": [
              {
                "file": 9
              }
            ]
          },
          {
            "id": "metadata/package/version::cargo-package-version",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package has version"
          },
          {
            "id": "metadata/import/rust/pallet::pallet",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports pallet::*",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/pallet_prelude::frame_support/pallet_prelude",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::pallet_prelude::*",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_system/ensureroot::frame_system/ensureroot",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_system::EnsureRoot",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/assert_err::frame_support/assert_err",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::assert_err",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/import/rust/codec/decodewithmemtracking::codec/decodewithmemtracking",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports codec::DecodeWithMemTracking",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/fc_traits_payments/inspect::fc_traits_payments/inspect",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports fc_traits_payments::Inspect",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/traits/staticlookup::sp_runtime/traits/staticlookup",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::traits::StaticLookup",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/sp_keystore/keystoreext::sp_keystore/keystoreext",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_keystore::KeystoreExt",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_benchmarking/account::frame_benchmarking/account",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_benchmarking::account",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/ensure::frame_support/ensure",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::ensure",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/fungibles/hold/mutate::FunHoldMutate",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::fungibles::hold::Mutate as FunHoldMutate",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/constu64::frame_support/traits/constu64",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::ConstU64",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/types/paymentstate::types/paymentstate",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports types::PaymentState",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/weights/constants/weight_ref_time_per_nanos::frame_support/weights/constants/weight_ref_time_per_nanos",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::weights::constants::WEIGHT_REF_TIME_PER_NANOS",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/palletid::frame_support/palletid",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::PalletId",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/fc_traits_payments/payment::fc_traits_payments/payment",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports fc_traits_payments::Payment",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/storepreimage::frame_support/traits/storepreimage",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::StorePreimage",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/crate/pallet::Payments",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports crate::Pallet as Payments",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/fc_traits_payments/mutate::fc_traits_payments/mutate",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports fc_traits_payments::Mutate",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/traits/checkedadd::sp_runtime/traits/checkedadd",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::traits::CheckedAdd",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/fungibles::frame_support/traits/fungibles",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::fungibles",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/import/rust/weights::weights",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports weights::*",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/types/blocknumberfor::types/blocknumberfor",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports types::BlockNumberFor",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/fungibles/mutate::frame_support/traits/fungibles/mutate",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::fungibles::Mutate",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/types::types",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports types::*",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/alloc/vec::alloc/vec",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports alloc::vec",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/sp_keystore/testing/memorykeystore::sp_keystore/testing/memorykeystore",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_keystore::testing::MemoryKeystore",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/perbill::sp_runtime/perbill",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::Perbill",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/import/rust/core/marker/phantomdata::core/marker/phantomdata",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports core::marker::PhantomData",
            "from": [
              {
                "file": 10
              }
            ]
          },
          {
            "id": "metadata/import/rust/codec/encode::codec/encode",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports codec::Encode",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/core/cell/cell::core/cell/cell",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports core::cell::Cell",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/fungibles/create::frame_support/traits/fungibles/create",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::fungibles::Create",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/name/convention::cargo-readme-field",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package declares readme"
          },
          {
            "id": "metadata/import/rust/mock::mock",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports mock::*",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/weights/weight::frame_support/weights/weight",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::weights::Weight",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/constu32::frame_support/traits/constu32",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::ConstU32",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/schedule/v3/named::ScheduleNamed",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports frame_support::traits::schedule::v3::Named as ScheduleNamed",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/crate/types::crate/types",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports crate::types::*",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/fungibles/create::FunCreate",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::fungibles::Create as FunCreate",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-inline-tests-module-path",
            "conf": 0.95,
            "crit": 3,
            "desc": "Rust inline tests module path",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/import/rust/types/paymentdetail::types/paymentdetail",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports types::PaymentDetail",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/import/rust/super/payment::PaymentDetails",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports super::Payment as PaymentDetails",
            "from": [
              {
                "file": 5
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/tokens/preservation/expendable::frame_support/traits/tokens/preservation/expendable",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::tokens::Preservation::Expendable",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/get::frame_support/traits/get",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::Get",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/weights/substrateweight::weights/substrateweight",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports weights::SubstrateWeight",
            "from": [
              {
                "file": 8
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/asensureoriginwitharg::frame_support/traits/asensureoriginwitharg",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::AsEnsureOriginWithArg",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/assert_ok::frame_support/assert_ok",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::assert_ok",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/alloc/vec/vec::alloc/vec/vec",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports alloc::vec::Vec",
            "from": [
              {
                "file": 6
              }
            ]
          },
          {
            "id": "metadata/import/rust/crate::pallet_payments",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports crate as pallet_payments",
            "from": [
              {
                "file": 7
              }
            ]
          },
          {
            "id": "metadata/import/rust/fc_traits_payments/paymentmutate::fc_traits_payments/paymentmutate",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports fc_traits_payments::PaymentMutate",
            "from": [
              {
                "file": 6
              }
            ]
          }
        ]
      },
      {
        "ctx": [
          {
            "b": "ar\u003e(GwfJDNaz#a8B97}wt)Z{ICYWIqzxJCfvru66vqG:#v(\u003e28AckRjB-RapAa9N0wPP%]dMW$Abu[U\u0026xddw6vruTjwGTbUb64*zBzkP6eN\u0026pev}YZ/A+/.udp0o$z!6#1wO#0\u003ezddE2x(mMB3jn1Zv}Gv4By/Jndp0o$z!6#cz!0MA3jn1Zv}Gv4By/Jndp0o$z!6#jwPI%mi%(slBZ=FoB7DF7z!9A?iY.QQwN/T?wH[@)zEWP}wH[@#vr+jUv@C)?wk3MLEld^UB7DFnA9)r$iYZ}.B7/o9xf57.y*?9\u003cgg8^]hAIlMB-RapvqG:#v(=U]wN^+Zr+k=53uZA3azba\u003cBAg/7BAp/dvr(Z3zGG}Xi^TUup*[S^wO#P*ByxolB3\u003cRHzF9J\u003eefE+$D2mbgBwl[1vru7ei%{aKwGUP9vqPN.B9hCvz/P}Xi^RhRarR!rzGx@vwH[%ovqfKe3lQDlaAg+9y?mY}Ab]JaB.25AiW#V/arR^HBAg/7BAoG7DKp(rarR^HarUoszF9V)y?mVGi^RhRarR^HarR^HarR!uz!@@Bi.::svru66vriLXB-6-*y?cm.Byxo5efEn/y*?i\u003ewN(](B09}{zBd=FvqYN^wgO\u0026{zGx=dv@@\u00264B09}{zB[.!AaJK3ed9HxarR^HarR^HarTy3Byxo5ayPslmS\u0026PyB-.5lwH[fharR^HarR!Ped9HxarR^HarU-nxK$Z%y?kT*DV?hai.\u003ca2wN(](B0ay\u003exK$Z%y?lvIzdNleavG{+Aa9\u0026#xJeX.wQM9parR^HarR^HBz\u003e@azGv\u003c1DKp(rarR^HarR^HarUoszF9V)y?mVGi.sjgAaJK3ayPslmS\u0026P\u0026nP5P*wN/*k3lQDlarR^HarR^HavZo\u0026Bzk\u0026twmW!.p\u0026ye:By^0garR^HarR^HarR^Hp\u0026ZbSx(!0bzAo*ECWU97ed9HxarR^HarR^HarTH3wPIB6C42Gbz/dP%DQSf#wO#3!vR/Qbaw^8\u0026B7GxnwQM9parR^HarR^HEjLZFarR^HarR^[z/]@dwN)tmlT:!EwPy:\u003cvqf*maw)n)A^pG4wOD0\u0026xjSRpq/(}#wL^zUx(do\u003ewH[fharR!Ped9HxarTG?y\u00260W8nN%vVEld^UB7DFaA:-/@uVQHlBy/qIi=FIzy?mY}Ab]JaB.25AiX0h#B-RapB8UGbB-8qnzdL:?DKp(rarU=Dvqf?8iY.QOy\u0026r*0piyz.wPyQ/z*2\u00269wPxsAlUH4vyH}3xwmNkllUH4vyH}3PBZ=)Am}D=[ax9w\u003cBzkkUz/oAlAd6nAarR^Hl2{WYxL?s5x\u003e6OLA=k$HavG{+Aa9\u0026#xHM@Zz/NxKp?sVSwO#Pvax8Y\u003cB-H]jx(mMm3vK#yB-RapBA}?pB2(uGy\u0026r*0piyz.wPymUAYTQnAckRjzeS@cCv+G3xMOqS3ugb%aA.:paA}yhxj#ydiYX-L3jpS*wftP6AboOS3ugb%az(4caAR)FwPG{u3ugb%aA.:paAR)FwPG)[dMW$AAckRjBAg/7BrB7+zE)\u0026%By!oSD2mbgBv*19l1szyB-8p)wiIb.3lQDlaAR)FwGT/TD2mbgBv*183lQDlazbHlxjU%(A::63d05%qwmY^xasox:v@DHcBn",
            "ln": 25,
            "col": 26,
            "line": 1
          },
          {
            "b": "w].r%wNxI3AbY-oBuhE4vqG:\u003eBx]k)BZ=Fgz!6#fvqG:\u003eBrC]qarR^HB-RapB9hCkAYMlhi%(rqarR^KtvRnTc$W40BAIRnauZ?\u003eA=(nwx(dAkvR6B!xL?f#yJyWGt).X%arU/FwGUP9vqPN.B9hCvz/P}Xi=]yJx([zSi+AILxk7*\u003ewPG)[lVM:DBy=O6B09}{zBnCQvru6x3jm)#arR[kAa9N0wPP%]v@Dl%x\u003eHYUarR^HAckRjBAg/7BrA}?zF0P}iTM#LarR^HarUopvqPN.B9R?GwO\u003cE?lVl\u003cOx\u003eGKnarR^HarQ",
            "ln": 1384,
            "col": 3,
            "line": 60
          },
          {
            "b": "DKp(rarR^HarSr\u003caw^8)ze19aC4C.Qax9h}wGU]mwPzj1v}YN]xcqqwAaK8kBzb98ay/tbwGUP9z/3RsxK@rcD2[7sz6glBAV/EqwGV5tB97#gay]55wO#41aA8cDe^.}darR^HarR^Wfe1CExK@q@vqG:\u003eAV/pvx\u003eIc$efF\u003eOwPzj1v}YN]xcqqwAaHegw/$I#y-)X9y?%",
            "ln": 1737,
            "col": 5,
            "line": 73
          },
          {
            "b": "A=k!Snn\u0026rPqE%oTz/d:23lQDlarR^Hatkx3axJb*xj#xfx(mK3A=2lbx(v(iw]zYjwQ5rqx(n0av@\u0026=bzxK4mx(+zovqG:\u003eBs)[yarR^HarR!GD2Nsqs7M8UxMM*-w]xZMs7M8UxMM*-w]x:r3lQDlarR^Hatkw\u003cpJyeZx(m#MaxiS9wPF#oxKM09zddr\u003cxjSh]B-.qnA+P\u0026dBzg",
            "ln": 2133,
            "col": 34,
            "line": 81
          },
          {
            "b": "azC.nwPzv6Bs[XnxK@rcBz(hdxjSi5vq)u8wQettvrb{4Bzbkdv@=c?Bz(gxvqYP#BzbkdA+e-{Aa@)3BsXLRxLzI{arR^Hfe1$3vqH16az2CiB-I5maARp9BrCglAV!!dC{1IRwO#3\u0026AX8lxv}/)@wO#Psay/tbvS9!uz/fxpayMylx(mN1wEoK",
            "ln": 5368,
            "col": 8,
            "line": 156
          },
          {
            "b": "c[cOLarR^HarR^HEf{r7arR^HarR^WfcAS5wNPW(B0a)lzE[2mAaa3ewO#PjCwhejaARpdazkziwO@S3wPRu{y\u0026.iKra]#!ay!?$ayX[8v{%g\u0026wN(])C{4ixwEoL5arR^HarSr\u003caAz46x(E=$zGE1tw/#hewGU@2D2mbgBrCWzay/C6vru66vixI$",
            "ln": 20295,
            "col": 16,
            "line": 515
          },
          {
            "b": "i-6mgzdNQbnN%vVarR^HarR^HarR^Hwnca7B-.h4A+frmy\u0026?YXl${ZYB-.g)wPJ0gBsW+warR^HarR^Qat2=1l${ZYvru0)qE%](y\u0026*!D3lQDlarR^HarR^Haz+Rhay]f",
            "ln": 21631,
            "col": 27,
            "line": 551
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "T::SenderOrigin::ensure_origin"
            ],
            [
              "",
              "T::Lookup::lookup"
            ],
            [
              "",
              "Self::create"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "T::SenderOrigin::ensure_origin"
            ],
            [
              "",
              "Payment::\u003cT\u003e::get.map_err"
            ],
            [
              "",
              "Payment::\u003cT\u003e::get"
            ],
            [
              "",
              "Self::settle_payment"
            ],
            [
              "",
              "payment.fees.summary_for"
            ],
            [
              "",
              "total_beneficiary_fee_amount_mandatory.checked_add.ok_or"
            ],
            [
              "",
              "total_beneficiary_fee_amount_mandatory.checked_add"
            ],
            [
              "",
              "sp_runtime::DispatchError::Arithmetic"
            ],
            [
              "",
              "payment.amount.checked_sub.ok_or"
            ],
            [
              "",
              "payment.amount.checked_sub"
            ],
            [
              "",
              "sp_runtime::DispatchError::Arithmetic"
            ],
            [
              "",
              "T::OnPaymentStatusChanged::on_payment_released"
            ],
            [
              "",
              "Self::deposit_event"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "T::SenderOrigin::ensure_origin"
            ],
            [
              "",
              "Payment::\u003cT\u003e::try_mutate"
            ],
            [
              "",
              "maybe_payment.as_mut.map_err"
            ],
            [
              "",
              "maybe_payment.as_mut"
            ],
            [
              "",
              "T::BlockNumberProvider::current_block_number"
            ],
            [
              "",
              "current_block.checked_add.ok_or"
            ],
            [
              "",
              "current_block.checked_add"
            ],
            [
              "",
              "T::CancelBufferBlockLength::get"
            ],
            [
              "",
              "T::RuntimeCall::from"
            ],
            [
              "",
              "T::Scheduler::schedule_named"
            ],
            [
              "",
              "frame_support::traits::schedule::DispatchTime::At"
            ],
            [
              "",
              "frame_system::RawOrigin::Signed.into"
            ],
            [
              "",
              "frame_system::RawOrigin::Signed"
            ],
            [
              "",
              "payment.beneficiary.clone"
            ],
            [
              "",
              "T::Preimages::bound"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "Self::deposit_event"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "T::SenderOrigin::ensure_origin"
            ],
            [
              "",
              "PaymentParties::\u003cT\u003e::get"
            ],
            [
              "",
              "Payment::\u003cT\u003e::try_mutate"
            ],
            [
              "",
              "maybe_payment.as_mut.map_err"
            ],
            [
              "",
              "maybe_payment.as_mut"
            ],
            [
              "",
              "payment.fees.summary_for"
            ],
            [
              "",
              "payment.fees.summary_for"
            ],
            [
              "",
              "Self::try_transfer_fees"
            ],
            [
              "",
              "T::Assets::transfer.map_err"
            ],
            [
              "",
              "T::Assets::transfer"
            ],
            [
              "",
              "payment.asset.clone"
            ],
            [
              "",
              "Self::try_transfer_fees"
            ],
            [
              "",
              "total_beneficiary_fee_amount_mandatory.checked_add.ok_or"
            ],
            [
              "",
              "total_beneficiary_fee_amount_mandatory.checked_add"
            ],
            [
              "",
              "sp_runtime::DispatchError::Arithmetic"
            ],
            [
              "",
              "payment.amount.checked_sub.ok_or"
            ],
            [
              "",
              "payment.amount.checked_sub"
            ],
            [
              "",
              "sp_runtime::DispatchError::Arithmetic"
            ],
            [
              "",
              "T::OnPaymentStatusChanged::on_payment_charge_success"
            ],
            [
              "",
              "T::OnPaymentStatusChanged::on_payment_released"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "Self::deposit_event"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "T::BeneficiaryOrigin::ensure_origin"
            ],
            [
              "",
              "PaymentParties::\u003cT\u003e::get"
            ],
            [
              "",
              "Payment::\u003cT\u003e::get.map_err"
            ],
            [
              "",
              "Payment::\u003cT\u003e::get"
            ],
            [
              "",
              "Self::cancel_payment"
            ],
            [
              "",
              "Self::deposit_event"
            ],
            [
              "",
              "Self::cancel_payment"
            ],
            [
              "",
              "Self::deposit_event"
            ],
            [
              "",
              "T::OnPaymentStatusChanged::on_payment_cancelled"
            ],
            [
              "",
              "Payment::\u003cT\u003e::remove"
            ],
            [
              "",
              "PaymentParties::\u003cT\u003e::remove"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "T::BeneficiaryOrigin::ensure_origin"
            ],
            [
              "",
              "PaymentParties::\u003cT\u003e::get"
            ],
            [
              "",
              "Payment::\u003cT\u003e::try_mutate"
            ],
            [
              "",
              "maybe_payment.as_mut.map_err"
            ],
            [
              "",
              "maybe_payment.as_mut"
            ],
            [
              "",
              "HoldReason::TransferPayment.into"
            ],
            [
              "",
              "T::AssetsHold::hold"
            ],
            [
              "",
              "payment.asset.clone"
            ],
            [
              "",
              "T::Scheduler::cancel_named"
            ],
            [
              "",
              "Self::deposit_event"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "T::BeneficiaryOrigin::ensure_origin"
            ],
            [
              "",
              "T::Lookup::lookup"
            ],
            [
              "",
              "Self::do_create_payment"
            ],
            [
              "",
              "T::IncentivePercentage::get"
            ],
            [
              "",
              "Self::deposit_event"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "T::DisputeResolver::ensure_origin"
            ],
            [
              "",
              "PaymentParties::\u003cT\u003e::get"
            ],
            [
              "",
              "Payment::\u003cT\u003e::get.map_err"
            ],
            [
              "",
              "Payment::\u003cT\u003e::get"
            ],
            [
              "",
              "Some"
            ],
            [
              "",
              "Self::settle_payment"
            ],
            [
              "",
              "Self::deposit_event"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "T::GeneratePaymentId::generate.ok_or"
            ],
            [
              "",
              "T::GeneratePaymentId::generate"
            ],
            [
              "",
              "Payment::\u003cT\u003e::try_mutate.map"
            ],
            [
              "",
              "Payment::\u003cT\u003e::try_mutate"
            ],
            [
              "",
              "incentive_percentage.mul_floor"
            ],
            [
              "",
              "T::FeeHandler::apply_fees"
            ],
            [
              "",
              "beneficiary.clone"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "new_payment.clone"
            ],
            [
              "",
              "PaymentParties::\u003cT\u003e::insert"
            ],
            [
              "",
              "T::OnPaymentStatusChanged::on_payment_created"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "payment.fees.summary_for"
            ],
            [
              "",
              "total_fee_from_sender_mandatory.saturating_add.saturating_add"
            ],
            [
              "",
              "total_fee_from_sender_mandatory.saturating_add"
            ],
            [
              "",
              "HoldReason::TransferPayment.into"
            ],
            [
              "",
              "T::AssetsHold::hold"
            ],
            [
              "",
              "payment.asset.clone"
            ],
            [
              "",
              "T::AssetsHold::transfer_and_hold"
            ],
            [
              "",
              "payment.asset.clone"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "payment.fees.summary_for"
            ],
            [
              "",
              "total_fee_from_sender_mandatory.saturating_add.saturating_add"
            ],
            [
              "",
              "total_fee_from_sender_mandatory.saturating_add"
            ],
            [
              "",
              "HoldReason::TransferPayment.into"
            ],
            [
              "",
              "T::AssetsHold::release.map_err"
            ],
            [
              "",
              "T::AssetsHold::release"
            ],
            [
              "",
              "payment.asset.clone"
            ],
            [
              "",
              "T::AssetsHold::release.map_err"
            ],
            [
              "",
              "T::AssetsHold::release"
            ],
            [
              "",
              "payment.asset.clone"
            ],
            [
              "",
              "T::Assets::transfer.map_err"
            ],
            [
              "",
              "T::Assets::transfer"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "Payment::\u003cT\u003e::try_mutate"
            ],
            [
              "",
              "maybe_payment.as_mut.map_err"
            ],
            [
              "",
              "maybe_payment.as_mut"
            ],
            [
              "",
              "HoldReason::TransferPayment.into"
            ],
            [
              "",
              "maybe_dispute.is_some"
            ],
            [
              "",
              "payment.fees.summary_for"
            ],
            [
              "",
              "total_sender_fee_amount_mandatory.saturating_add.saturating_add"
            ],
            [
              "",
              "total_sender_fee_amount_mandatory.saturating_add"
            ],
            [
              "",
              "T::AssetsHold::release.map_err"
            ],
            [
              "",
              "T::AssetsHold::release"
            ],
            [
              "",
              "payment.asset.clone"
            ],
            [
              "",
              "payment.fees.summary_for"
            ],
            [
              "",
              "beneficiary_release_amount.saturating_add"
            ],
            [
              "",
              "T::AssetsHold::release.map_err"
            ],
            [
              "",
              "T::AssetsHold::release"
            ],
            [
              "",
              "payment.asset.clone"
            ],
            [
              "",
              "Self::try_transfer_fees"
            ],
            [
              "",
              "Self::try_transfer_fees"
            ],
            [
              "",
              "dispute_result.percent_beneficiary.mul_floor"
            ],
            [
              "",
              "T::Assets::transfer.map_err"
            ],
            [
              "",
              "T::Assets::transfer"
            ],
            [
              "",
              "payment.asset.clone"
            ],
            [
              "",
              "T::Assets::transfer.map_err"
            ],
            [
              "",
              "T::Assets::transfer"
            ],
            [
              "",
              "payment.asset.clone"
            ],
            [
              "",
              "dispute_result.percent_beneficiary.mul_floor"
            ],
            [
              "",
              "payment.amount.saturating_sub"
            ],
            [
              "",
              "T::Assets::transfer.map_err"
            ],
            [
              "",
              "T::Assets::transfer"
            ],
            [
              "",
              "payment.asset.clone"
            ],
            [
              "",
              "T::Assets::transfer.map_err"
            ],
            [
              "",
              "T::Assets::transfer"
            ],
            [
              "",
              "payment.asset.clone"
            ],
            [
              "",
              "total_beneficiary_fee_amount_mandatory.checked_add.ok_or"
            ],
            [
              "",
              "total_beneficiary_fee_amount_mandatory.checked_add"
            ],
            [
              "",
              "sp_runtime::DispatchError::Arithmetic"
            ],
            [
              "",
              "T::OnPaymentStatusChanged::on_payment_released"
            ],
            [
              "",
              "amount_to_beneficiary.checked_add.ok_or"
            ],
            [
              "",
              "amount_to_beneficiary.checked_add"
            ],
            [
              "",
              "sp_runtime::DispatchError::Arithmetic"
            ],
            [
              "",
              "sp_runtime::DispatchError::Arithmetic"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "fee_recipients.iter"
            ],
            [
              "",
              "T::Assets::transfer.map_err"
            ],
            [
              "",
              "T::Assets::transfer"
            ],
            [
              "",
              "payment.asset.clone"
            ],
            [
              "",
              "Ok"
            ],
            [
              "",
              "pallet::*"
            ],
            [
              "",
              "codec::Decode"
            ],
            [
              "",
              "codec::Encode"
            ],
            [
              "",
              "codec::MaxEncodedLen"
            ],
            [
              "",
              "sp_io::hashing::blake2_256"
            ],
            [
              "",
              "alloc::vec::Vec"
            ],
            [
              "",
              "fc_traits_payments::OnPaymentStatusChanged"
            ],
            [
              "",
              "fc_traits_payments::PaymentMutate"
            ],
            [
              "",
              "frame_support::ensure"
            ],
            [
              "",
              "frame_support::fail"
            ],
            [
              "",
              "frame_support::pallet_prelude::*"
            ],
            [
              "",
              "frame_support::traits::fungibles::hold::Mutate"
            ],
            [
              "",
              "frame_support::traits::fungibles::Balanced"
            ],
            [
              "",
              "frame_support::traits::fungibles::Inspect"
            ],
            [
              "",
              "frame_support::traits::fungibles::Mutate"
            ],
            [
              "",
              "frame_support::traits::schedule::v3::Named"
            ],
            [
              "",
              "frame_support::traits::schedule::DispatchTime"
            ],
            [
              "",
              "frame_support::traits::tokens::fungibles::Inspect"
            ],
            [
              "",
              "frame_support::traits::tokens::Fortitude::Polite"
            ],
            [
              "",
              "frame_support::traits::tokens::Precision::Exact"
            ],
            [
              "",
              "frame_support::traits::tokens::Preservation::Expendable"
            ],
            [
              "",
              "frame_support::traits::tokens::Preservation::Preserve"
            ],
            [
              "",
              "frame_support::traits::Bounded"
            ],
            [
              "",
              "frame_support::traits::CallerTrait"
            ],
            [
              "",
              "frame_support::traits::QueryPreimage"
            ],
            [
              "",
              "frame_support::traits::StorePreimage"
            ],
            [
              "",
              "frame_support::PalletId"
            ],
            [
              "",
              "frame_system::pallet_prelude::*"
            ],
            [
              "",
              "sp_runtime::traits::BlockNumberProvider"
            ],
            [
              "",
              "sp_runtime::traits::CheckedAdd"
            ],
            [
              "",
              "sp_runtime::traits::CheckedSub"
            ],
            [
              "",
              "sp_runtime::traits::Get"
            ],
            [
              "",
              "sp_runtime::traits::StaticLookup"
            ],
            [
              "",
              "sp_runtime::ArithmeticError"
            ],
            [
              "",
              "sp_runtime::DispatchError"
            ],
            [
              "",
              "sp_runtime::Percent"
            ],
            [
              "",
              "sp_runtime::Saturating"
            ],
            [
              "",
              "types::BlockNumberFor"
            ],
            [
              "",
              "weights::*"
            ],
            [
              "",
              "types::*"
            ],
            [
              "",
              "super::*"
            ],
            [
              "",
              "frame_support::traits::fungibles::Create"
            ]
          ],
          "mbr": [
            "HoldReason::TransferPayment.into",
            "Payment::\u003cT\u003e::get.map_err",
            "Payment::\u003cT\u003e::try_mutate.map",
            "T::Assets::transfer.map_err",
            "T::AssetsHold::release.map_err",
            "T::GeneratePaymentId::generate.ok_or",
            "amount_to_beneficiary.checked_add",
            "amount_to_beneficiary.checked_add.ok_or",
            "beneficiary.clone",
            "beneficiary_release_amount.saturating_add",
            "current_block.checked_add",
            "current_block.checked_add.ok_or",
            "dispute_result.in_favor_of",
            "dispute_result.percent_beneficiary",
            "dispute_result.percent_beneficiary.mul_floor",
            "fee_recipients.iter",
            "frame_system::RawOrigin::Signed.into",
            "incentive_percentage.mul_floor",
            "maybe_dispute.is_some",
            "maybe_payment.as_mut",
            "maybe_payment.as_mut.map_err",
            "new_payment.clone",
            "payment.amount",
            "payment.amount.checked_sub",
            "payment.amount.checked_sub.ok_or",
            "payment.amount.saturating_sub",
            "payment.asset",
            "payment.asset.clone",
            "payment.beneficiary",
            "payment.beneficiary.clone",
            "payment.fees",
            "payment.fees.summary_for",
            "payment.incentive_amount",
            "payment.state",
            "total_beneficiary_fee_amount_mandatory.checked_add",
            "total_beneficiary_fee_amount_mandatory.checked_add.ok_or",
            "total_fee_from_sender_mandatory.saturating_add",
            "total_fee_from_sender_mandatory.saturating_add.saturating_add",
            "total_sender_fee_amount_mandatory.saturating_add",
            "total_sender_fee_amount_mandatory.saturating_add.saturating_add"
          ],
          "tgt": [
            "HoldReason::TransferPayment.into",
            "Ok",
            "Payment::\u003cT\u003e::get",
            "Payment::\u003cT\u003e::get.map_err",
            "Payment::\u003cT\u003e::remove",
            "Payment::\u003cT\u003e::try_mutate",
            "Payment::\u003cT\u003e::try_mutate.map",
            "PaymentParties::\u003cT\u003e::get",
            "PaymentParties::\u003cT\u003e::insert",
            "PaymentParties::\u003cT\u003e::remove",
            "Self::cancel_payment",
            "Self::create",
            "Self::deposit_event",
            "Self::do_create_payment",
            "Self::settle_payment",
            "Self::try_transfer_fees",
            "Some",
            "T::Assets::transfer",
            "T::Assets::transfer.map_err",
            "T::AssetsHold::hold",
            "T::AssetsHold::release",
            "T::AssetsHold::release.map_err",
            "T::AssetsHold::transfer_and_hold",
            "T::BeneficiaryOrigin::ensure_origin",
            "T::BlockNumberProvider::current_block_number",
            "T::CancelBufferBlockLength::get",
            "T::DisputeResolver::ensure_origin",
            "T::FeeHandler::apply_fees",
            "T::GeneratePaymentId::generate",
            "T::GeneratePaymentId::generate.ok_or",
            "T::IncentivePercentage::get",
            "T::Lookup::lookup",
            "T::OnPaymentStatusChanged::on_payment_cancelled",
            "T::OnPaymentStatusChanged::on_payment_charge_success",
            "T::OnPaymentStatusChanged::on_payment_created",
            "T::OnPaymentStatusChanged::on_payment_released",
            "T::Preimages::bound",
            "T::RuntimeCall::from",
            "T::Scheduler::cancel_named",
            "T::Scheduler::schedule_named",
            "T::SenderOrigin::ensure_origin",
            "amount_to_beneficiary.checked_add",
            "amount_to_beneficiary.checked_add.ok_or",
            "beneficiary.clone",
            "beneficiary_release_amount.saturating_add",
            "current_block.checked_add",
            "current_block.checked_add.ok_or",
            "dispute_result.percent_beneficiary.mul_floor",
            "fee_recipients.iter",
            "frame_support::traits::schedule::DispatchTime::At",
            "frame_system::RawOrigin::Signed",
            "frame_system::RawOrigin::Signed.into",
            "incentive_percentage.mul_floor",
            "maybe_dispute.is_some",
            "maybe_payment.as_mut",
            "maybe_payment.as_mut.map_err",
            "new_payment.clone",
            "payment.amount.checked_sub",
            "payment.amount.checked_sub.ok_or",
            "payment.amount.saturating_sub",
            "payment.asset.clone",
            "payment.beneficiary.clone",
            "payment.fees.summary_for",
            "sp_runtime::DispatchError::Arithmetic",
            "total_beneficiary_fee_amount_mandatory.checked_add",
            "total_beneficiary_fee_amount_mandatory.checked_add.ok_or",
            "total_fee_from_sender_mandatory.saturating_add",
            "total_fee_from_sender_mandatory.saturating_add.saturating_add",
            "total_sender_fee_amount_mandatory.saturating_add",
            "total_sender_fee_amount_mandatory.saturating_add.saturating_add"
          ],
          "funcs": [
            [
              "pay",
              9417
            ],
            [
              "release",
              10097
            ],
            [
              "request_refund",
              11658
            ],
            [
              "accept_and_pay",
              13618
            ],
            [
              "cancel",
              16876
            ],
            [
              "dispute_refund",
              18463
            ],
            [
              "request_payment",
              20702
            ],
            [
              "resolve_dispute",
              21547
            ],
            [
              "do_create_payment",
              22641
            ],
            [
              "reserve_payment_amount",
              24359
            ],
            [
              "cancel_payment",
              25219
            ],
            [
              "settle_payment",
              26430
            ],
            [
              "try_transfer_fees",
              31796
            ]
          ],
          "metrics": {
            "ast": {
              "op.lor": 1,
              "max_depth": 32,
              "call_count": 181,
              "node_count": 6584,
              "member_count": 40,
              "op_density.lor": 0,
              "member_depth_max": 4
            },
            "file": {
              "size": 32435,
              "entropy": 4.32
            },
            "text": {
              "lines": 839,
              "top_char": 101,
              "tab_count": 2,
              "max_ws_run": 2,
              "digit_ratio": 0,
              "space_count": 10605,
              "char_entropy": 4.32,
              "mixed_indent": 1,
              "unique_chars": 83,
              "top_char_null": 0,
              "string_density": 0.01,
              "top_char_ratio": 0.08,
              "avg_line_length": 37.66,
              "max_line_length": 109,
              "empty_line_ratio": 0.14,
              "last_line_length": 1,
              "whitespace_ratio": 0.35,
              "identifier_density": 1.84,
              "line_length_stddev": 26.83,
              "normalized_string_count": 0.24,
              "repeated_char_sequences": 411,
              "suspicious_identifier_ratio": 0.02,
              "normalized_unique_identifiers": 31.09
            },
            "binds": {
              "count": 49
            },
            "binary": {
              "peak_region_bytes": 9216,
              "peak_region_entropy": 4.88
            },
            "source": {
              "class_count": 6,
              "function_count": 13
            },
            "imports": {
              "count": 42,
              "aliased": 7,
              "wildcard": 6,
              "third_party_count": 42,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 89,
              "count": 7,
              "avg_length": 12.71,
              "max_length": 18,
              "avg_entropy": 3.16,
              "entropy_stddev": 0.76
            },
            "comments": {
              "chars": 4288,
              "count": 87,
              "lines": 87,
              "to_code_ratio": 0.12
            },
            "functions": {
              "count": 19,
              "density": 1.55,
              "avg_params": 3.31,
              "code_ratio": 0.63,
              "max_params": 7,
              "length_stddev": 29.87,
              "over_100_lines": 1,
              "avg_name_length": 13.23,
              "avg_length_lines": 40.85,
              "max_length_lines": 130,
              "min_length_lines": 14,
              "high_entropy_names": 1,
              "avg_param_name_length": 8.7
            },
            "identifiers": {
              "count": 1546,
              "unique": 302,
              "avg_length": 11.05,
              "max_length": 38,
              "min_length": 1,
              "avg_entropy": 2.79,
              "reuse_ratio": 0.2,
              "length_stddev": 6.57,
              "has_digit_ratio": 0.01,
              "sequential_names": 5,
              "base64_like_names": 1,
              "single_char_count": 5,
              "single_char_ratio": 0.02,
              "high_entropy_count": 40,
              "high_entropy_ratio": 0.13,
              "all_lowercase_ratio": 0.5,
              "all_uppercase_ratio": 0.01,
              "numeric_suffix_count": 2,
              "underscore_prefix_count": 4
            }
          }
        },
        "id": 6,
        "mol": "Md₂(In₂Pa)",
        "path": "/data/samples/incoming/forager/rust/crates.io/_/fc-pallet-payments/fc-pallet-payments-2.3.1.crate!!fc-pallet-payments-2.3.1/src/lib.rs",
        "pid": 0,
        "risk": 2,
        "sha": "82afa777fa867eab8a08d77a5033cceb7b2edb41ff04a563e049cf246b08e0ff",
        "size": 32435,
        "traits": [
          {
            "id": "metadata/import/rust/pallet::pallet",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports pallet::*",
            "spans": [
              [
                73,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/codec/decode::codec/decode",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports codec::Decode",
            "spans": [
              [
                208,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/codec/encode::codec/encode",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports codec::Encode",
            "spans": [
              [
                216,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/codec/maxencodedlen::codec/maxencodedlen",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports codec::MaxEncodedLen",
            "spans": [
              [
                224,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/sp_io/hashing/blake2_256::sp_io/hashing/blake2_256",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_io::hashing::blake2_256",
            "spans": [
              [
                244,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/alloc/vec/vec::alloc/vec/vec",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports alloc::vec::Vec",
            "spans": [
              [
                277,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/fc_traits_payments/onpaymentstatuschanged::fc_traits_payments/onpaymentstatuschanged",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports fc_traits_payments::OnPaymentStatusChanged",
            "spans": [
              [
                319,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/fc_traits_payments/paymentmutate::fc_traits_payments/paymentmutate",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports fc_traits_payments::PaymentMutate",
            "spans": [
              [
                343,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/ensure::frame_support/ensure",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::ensure",
            "spans": [
              [
                384,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/fail::frame_support/fail",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::fail",
            "spans": [
              [
                392,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/pallet_prelude::frame_support/pallet_prelude",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::pallet_prelude::*",
            "spans": [
              [
                402,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/fungibles/hold/mutate::FunHoldMutate",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::fungibles::hold::Mutate as FunHoldMutate",
            "spans": [
              [
                468,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/fungibles/balanced::FunBalanced",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::fungibles::Balanced as FunBalanced",
            "spans": [
              [
                499,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/fungibles/inspect::FunInspect",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::fungibles::Inspect as FunInspect",
            "spans": [
              [
                524,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/fungibles/mutate::FunMutate",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::fungibles::Mutate as FunMutate",
            "spans": [
              [
                559,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/schedule/v3/named::ScheduleNamed",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports frame_support::traits::schedule::v3::Named as ScheduleNamed",
            "spans": [
              [
                610,
                42
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/schedule/dispatchtime::frame_support/traits/schedule/dispatchtime",
            "conf": 0.95,
            "crit": 3,
            "desc": "imports frame_support::traits::schedule::DispatchTime",
            "spans": [
              [
                638,
                45
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/tokens/fungibles/inspect::FunsInspect",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::tokens::fungibles::Inspect as FunsInspect",
            "spans": [
              [
                683,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/tokens/fortitude/polite::frame_support/traits/tokens/fortitude/polite",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::tokens::Fortitude::Polite",
            "spans": [
              [
                730,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/tokens/precision/exact::frame_support/traits/tokens/precision/exact",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::tokens::Precision::Exact",
            "spans": [
              [
                761,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/tokens/preservation/expendable::frame_support/traits/tokens/preservation/expendable",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::tokens::Preservation::Expendable",
            "spans": [
              [
                806,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/tokens/preservation/preserve::frame_support/traits/tokens/preservation/preserve",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::tokens::Preservation::Preserve",
            "spans": [
              [
                818,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/bounded::frame_support/traits/bounded",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::Bounded",
            "spans": [
              [
                848,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/callertrait::frame_support/traits/callertrait",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::CallerTrait",
            "spans": [
              [
                857,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/querypreimage::frame_support/traits/querypreimage",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::QueryPreimage",
            "spans": [
              [
                870,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/storepreimage::frame_support/traits/storepreimage",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::StorePreimage",
            "spans": [
              [
                885,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/palletid::frame_support/palletid",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::PalletId",
            "spans": [
              [
                911,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_system/pallet_prelude::frame_system/pallet_prelude",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_system::pallet_prelude::*",
            "spans": [
              [
                928,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/traits/blocknumberprovider::sp_runtime/traits/blocknumberprovider",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::traits::BlockNumberProvider",
            "spans": [
              [
                992,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/traits/checkedadd::sp_runtime/traits/checkedadd",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::traits::CheckedAdd",
            "spans": [
              [
                1013,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/traits/checkedsub::sp_runtime/traits/checkedsub",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::traits::CheckedSub",
            "spans": [
              [
                1025,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/traits/get::sp_runtime/traits/get",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::traits::Get",
            "spans": [
              [
                1037,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/traits/staticlookup::sp_runtime/traits/staticlookup",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::traits::StaticLookup",
            "spans": [
              [
                1042,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/arithmeticerror::sp_runtime/arithmeticerror",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::ArithmeticError",
            "spans": [
              [
                1061,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/dispatcherror::sp_runtime/dispatcherror",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::DispatchError",
            "spans": [
              [
                1078,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/percent::sp_runtime/percent",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::Percent",
            "spans": [
              [
                1093,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/saturating::sp_runtime/saturating",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::Saturating",
            "spans": [
              [
                1102,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/types/blocknumberfor::types/blocknumberfor",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports types::BlockNumberFor",
            "spans": [
              [
                1121,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/weights::weights",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports weights::*",
            "spans": [
              [
                1170,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/types::types",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports types::*",
            "spans": [
              [
                1218,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/super::super",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports super::*",
            "spans": [
              [
                1432,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/fungibles/create::FunCreate",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::fungibles::Create as FunCreate",
            "spans": [
              [
                1494,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                1800,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                5416,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-3",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"that\"",
            "spans": [
              [
                1785,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                2181,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                20343,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "spans": [
              [
                2199,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-cfg-test",
            "conf": 0.9,
            "crit": 2,
            "desc": "#[cfg(test)] attribute",
            "spans": [
              [
                143,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-test",
            "conf": 0.95,
            "crit": 3,
            "desc": "Rust test marker or harness",
            "uses": [
              48
            ],
            "spans": [
              [
                143,
                12
              ]
            ]
          }
        ],
        "type": "rust"
      },
      {
        "ctx": [
          {
            "b": "B-RapB9hCkAYMlhi%{aKwGUP9vqPN.B9hCvz/P}Xi^RhRarR!nB8$]kByeQ1AX5twB8$]kBye%4efG4Pvqf?8iYZ\u003e}zF9V)y?mVsaA}yhxj#ydiYZ+?zGx]dzGG}Xi-!:wm[uP^qBK5Zr7P!MuR\u003cf?uRS)ZpG5!KEld^UB7DFhz!0Mzi^Tzoz!\u003czBas.!33uZA3aAIHeA=(nwx(dAxi-6ydvRGT{i%{aKwGV8uAaK8Ki^TXiD2mbgBvoXZvqfKeaw=G(zdNQbq/(C\u0026wQMSEB-RapCv+G3xMOqRi-yfgB98ChBy!J+x\u003eIa3i%{aKwGT/TD2mbgBrC1kaw=G(zdNQbq/(}#wJHkav@DmaBrA\u003eFq:\u003cO-uR\u003c3\u003eo*}/RuQEZWk#ZAKpc6Ibz/oCmjS[\u0026!B.9Sw3tae#vS=y3wm6p:D2mbgBspNsB7GxluVoC0zdNQbuJ",
            "ln": 0,
            "col": 1,
            "line": 1
          },
          {
            "b": "A+f8@A+^pqy\u0026si5c[c=WzEWP}wHF#Rdj+/GarR^HarR!PdjEs=3lQDlarR^HayPtjwPz)1wPn\u003ew3lQDlarR^HarR^Haw=G(zdNQbq/(}#wJz\u003emraQb)j#$-qwPPt0mnultqEqZSlR*YSr4Gd*l0l]Jpe\u003eN(l[6:hzG*bfA40d^3lQDlarR^HarR^Haw=G(zdNO",
            "ln": 1250,
            "col": 52,
            "line": 38
          },
          {
            "b": "xKM09Cv.[vx(4Pdwn:Hofe1$3q!o\u0026SwPxgOdiJOrD2\u003e8-fD+EQyH}y8aARJABzbkdp^FkUmnu/?lpBTrmOb%sk#H\u0026lf!\u003e9:fe1$3q!o\u0026SwPw]jvr(]pBzbkdw]zH4z*b]kxcp!$wPG)tfe1$3arSlUg9yWSyH}y8aARJABzbkdmNY:Mq:\u003cCHmn^E",
            "ln": 3211,
            "col": 6,
            "line": 111
          },
          {
            "b": "aARKqwO#Miw].D]aA7\u003cmv}Yp\u003exjRA6fe1CExK@rcwO#3\u0026AV/Nuy?$kiwO2x{xKM6}ayMy4vqGv\u0026v}u=\u003eBrCyhvrlJkz!paEhZ0iXyH}y8aARJAzddi\u003eaARpd3nj4=aAhEzv}Yp(wJyeKfe1B\u003ceG=/5aARKqwO#Miw]zYjBzbkdAaa3ewO#Pjd\u003ccX(Bz\u003e@azGu}jz/M$xxK@q#wN##matL6Yz!\u0026{4B0b7kAV/EqwEp7zfczwWazC.6wO#Q7C4z19txBB$Bx]k=zxK4jB97=dvr(i*zE^9{wO+{^B7FZ5z/PSmc[co=3lQDlaz$+muVY\u003e2ByeQ7BsnN\u003cwQ4=@B-.h4Cwhejd13y+DKp(rarR^HarUGiBrCgbwPG)PmRcdLjxb)kBuQ*gayYFcy?c)(vr(Z3zGEo)q=ua.r9@D/sXO",
            "ln": 3736,
            "col": 44,
            "line": 123
          },
          {
            "b": "vr(Z3zGGl1wi7\u0026fl0l]Jpe\u003eN(l[wV/arR^HarR!PdjEs=3lQDlarR^Hatkw\u003cra]#!aA?gfx\u003egT]wPF#oxKM09BzbkdAaa3ewO#PjCvtLnA+f9aC4Chbw].*baARpdaAITyA:-P(e^-ZzarR^HarU9lB7GxlaT*e}D2mbgBw)p1A+do)jxb)kBuR-DxjVfkq:\u003cCHmn^FUlQKTHpe\u0026+!p^FkUmnu/?nKL0Wx(^S)A=JMSdlv\u003ezarR^HarR^HvrlH3A=+V1AuM.qarR^HarR^Hao",
            "ln": 6499,
            "col": 14,
            "line": 207
          },
          {
            "b": "k#H\u0026dB7/Gmy?aVewN/p=C4AYwfe1$3arR^SatC?#Bz\u003e@azxHt/fEm\u0026JwN/d\u003eB7DFjw/$R#B8VnzwGV2oy?W^1dgdZYfczwWas!M\u0026aARKqwO@Rsx(mA(zGGPowGUz#zV",
            "ln": 9296,
            "col": 26,
            "line": 294
          },
          {
            "b": "arR^Qi%)8MarV7Yi%{xy3l@+%wPI%03tae#Cv+G3xMOqzdiJ%AarR^HB-Rapv@=11wJz\u003e@wOC^\u003cBAoG7s7M8UxMM*-w]x:rarR^HB-Rapw].r%wNxI3AbY-oBuhEbwOC^\u003cBAoG7DT*#iB97\u0026dBAoG7s4bXJnk@}]mmHS-nLISXp^[n?q:\u003c5HpdcSQs7M8UxMOU:3lQDlatkw\u003czddVivR/%)yDrN(e\u0026vX)v@Dj6B-.gqCwhejatCS)ayPC8A:-P(ayYe9v@0iex(dz*arR^Hv@DmaBrBpzsyjx*pEv=ZqBK5Zr7P!MiV@M6g:1}7s4bXJnk@}]mmHS-nLISXp^[n?q:\u003c5HpdcZQvruTjvruj3",
            "ln": 19164,
            "col": 6,
            "line": 596
          },
          {
            "b": "Byw#dwQ5rqx(n0av@\u0026=ewPI]nvrMj5vp%c]z/e]@zFsibvqGU7wGV24BzkUovqYP#y?mWe3lQDlatkw\u003cvQTs?az2!tA+PAjx\u003e5ofwOC^\u003cBp6ckarUfjzGx[xk#{ALk$svJpFLm*pdXzRk$\u003c\u003cNmpe}Ur7P\u003eDaw=S\u0026vRGT{auZ\u0026zwPzl]y?#c[w].!",
            "ln": 20197,
            "col": 29,
            "line": 611
          }
        ],
        "depth": 1,
        "facts": {
          "imp": [
            [
              "",
              "BoundedVec::truncate_from"
            ],
            [
              "",
              "HoldReason::TransferPayment.into"
            ],
            [
              "",
              "\u003cTest as Config\u003e::FeeHandler::apply_fees"
            ],
            [
              "",
              "Some"
            ],
            [
              "",
              "remark.as_slice"
            ],
            [
              "",
              "System::assert_has_event"
            ],
            [
              "",
              "RuntimeEvent::Payments"
            ],
            [
              "",
              "PaymentId"
            ],
            [
              "",
              "Some"
            ],
            [
              "",
              "BoundedVec::truncate_from"
            ],
            [
              "",
              "remark.clone.encode"
            ],
            [
              "",
              "remark.clone"
            ],
            [
              "",
              "new_test_ext.execute_with"
            ],
            [
              "",
              "new_test_ext"
            ],
            [
              "",
              "build_payment"
            ],
            [
              "",
              "System::assert_has_event"
            ],
            [
              "",
              "RuntimeEvent::Payments"
            ],
            [
              "",
              "new_test_ext.execute_with"
            ],
            [
              "",
              "new_test_ext"
            ],
            [
              "",
              "build_payment"
            ],
            [
              "",
              "System::assert_has_event"
            ],
            [
              "",
              "RuntimeEvent::Payments"
            ],
            [
              "",
              "new_test_ext.execute_with"
            ],
            [
              "",
              "new_test_ext"
            ],
            [
              "",
              "build_payment"
            ],
            [
              "",
              "run_to_block"
            ],
            [
              "",
              "System::assert_has_event"
            ],
            [
              "",
              "RuntimeEvent::Payments"
            ],
            [
              "",
              "check_balance_cancellation"
            ],
            [
              "",
              "new_test_ext.execute_with"
            ],
            [
              "",
              "new_test_ext"
            ],
            [
              "",
              "Assets::mint"
            ],
            [
              "",
              "RuntimeOrigin::signed"
            ],
            [
              "",
              "build_payment"
            ],
            [
              "",
              "new_test_ext.execute_with"
            ],
            [
              "",
              "new_test_ext"
            ],
            [
              "",
              "Assets::mint"
            ],
            [
              "",
              "RuntimeOrigin::signed"
            ],
            [
              "",
              "build_payment"
            ],
            [
              "",
              "new_test_ext.execute_with"
            ],
            [
              "",
              "new_test_ext"
            ],
            [
              "",
              "System::assert_has_event"
            ],
            [
              "",
              "RuntimeEvent::Payments"
            ],
            [
              "",
              "mock::PaymentId"
            ],
            [
              "",
              "\u003cTest as Config\u003e::FeeHandler::apply_fees"
            ],
            [
              "",
              "new_test_ext.execute_with"
            ],
            [
              "",
              "new_test_ext"
            ],
            [
              "",
              "frame_support::weights::constants::WEIGHT_REF_TIME_PER_SECOND.saturating_div"
            ],
            [
              "",
              "frame_support::weights::Weight::from_parts"
            ],
            [
              "",
              "sp_runtime::Perbill::from_percent"
            ],
            [
              "",
              "sp_runtime::Perbill::from_percent"
            ],
            [
              "",
              "frame_support::weights::Weight::from_parts"
            ],
            [
              "",
              "frame_support::weights::constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul"
            ],
            [
              "",
              "max_total_extrinsics.saturating_sub.saturating_sub"
            ],
            [
              "",
              "max_total_extrinsics.saturating_sub"
            ],
            [
              "",
              "frame_support::weights::Weight::zero"
            ],
            [
              "",
              "super::*"
            ],
            [
              "",
              "frame_support::assert_err"
            ],
            [
              "",
              "frame_support::assert_ok"
            ],
            [
              "",
              "frame_support::traits::fungibles"
            ],
            [
              "",
              "frame_support::weights::constants::WEIGHT_REF_TIME_PER_NANOS"
            ],
            [
              "",
              "mock::Hooks"
            ],
            [
              "",
              "mock::*"
            ],
            [
              "",
              "sp_runtime::Perbill"
            ],
            [
              "",
              "types::PaymentDetail"
            ],
            [
              "",
              "types::PaymentState"
            ],
            [
              "",
              "weights::SubstrateWeight"
            ],
            [
              "",
              "Payment"
            ],
            [
              "",
              "crate::weights::WeightInfo"
            ],
            [
              "",
              "frame_support::weights::constants::WEIGHT_REF_TIME_PER_SECOND"
            ],
            [
              "",
              "frame_support::weights::Weight"
            ]
          ],
          "mbr": [
            "HoldReason::TransferPayment.into",
            "WEIGHT_REF_TIME_PER_NANOS.saturating_mul",
            "WEIGHT_REF_TIME_PER_SECOND.saturating_div",
            "max_total_extrinsics.saturating_sub",
            "max_total_extrinsics.saturating_sub.saturating_sub",
            "new_test_ext.execute_with",
            "remark.as_slice",
            "remark.clone",
            "remark.clone.encode"
          ],
          "tgt": [
            "\u003cTest as Config\u003e::FeeHandler::apply_fees",
            "Assets::mint",
            "BoundedVec::truncate_from",
            "HoldReason::TransferPayment.into",
            "PaymentId",
            "RuntimeEvent::Payments",
            "RuntimeOrigin::signed",
            "Some",
            "System::assert_has_event",
            "build_payment",
            "check_balance_cancellation",
            "frame_support::weights::Weight::from_parts",
            "frame_support::weights::Weight::zero",
            "frame_support::weights::constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul",
            "frame_support::weights::constants::WEIGHT_REF_TIME_PER_SECOND.saturating_div",
            "max_total_extrinsics.saturating_sub",
            "max_total_extrinsics.saturating_sub.saturating_sub",
            "mock::PaymentId",
            "new_test_ext",
            "new_test_ext.execute_with",
            "remark.as_slice",
            "remark.clone",
            "remark.clone.encode",
            "run_to_block",
            "sp_runtime::Perbill::from_percent"
          ],
          "funcs": [
            [
              "build_payment",
              325
            ],
            [
              "check_balance_cancellation",
              2583
            ],
            [
              "test_pay_and_release_works",
              3947
            ],
            [
              "test_pay_and_cancel_works",
              5881
            ],
            [
              "payment_refunded_request",
              7376
            ],
            [
              "payment_disputed_beneficiary_wins",
              10100
            ],
            [
              "payment_disputed_sender_wins",
              14508
            ],
            [
              "request_payment",
              16814
            ],
            [
              "next_id_works",
              18820
            ],
            [
              "weights",
              19189
            ]
          ],
          "metrics": {
            "ast": {
              "op.add": 1,
              "op.mul": 4,
              "max_depth": 22,
              "call_count": 57,
              "node_count": 4027,
              "member_count": 9,
              "op_density.add": 0,
              "op_density.mul": 0,
              "member_depth_max": 3
            },
            "file": {
              "size": 22842,
              "entropy": 4.97
            },
            "text": {
              "lines": 665,
              "top_char": 101,
              "max_ws_run": 13,
              "digit_ratio": 0.03,
              "space_count": 5826,
              "char_entropy": 4.97,
              "unique_chars": 88,
              "top_char_null": 0,
              "lines_over_200": 3,
              "string_density": 0.02,
              "top_char_ratio": 0.06,
              "avg_line_length": 33.35,
              "max_line_length": 232,
              "empty_line_ratio": 0.11,
              "last_line_length": 1,
              "long_token_count": 5,
              "whitespace_ratio": 0.28,
              "identifier_density": 1.32,
              "line_length_stddev": 30.21,
              "normalized_string_count": 0.62,
              "repeated_char_sequences": 221,
              "suspicious_comment_ratio": 0.21,
              "trailing_whitespace_lines": 1,
              "normalized_unique_identifiers": 17.17
            },
            "binds": {
              "count": 11
            },
            "binary": {
              "peak_region_bytes": 5120,
              "peak_region_entropy": 5.5
            },
            "source": {
              "function_count": 10
            },
            "imports": {
              "count": 15,
              "aliased": 1,
              "wildcard": 2,
              "third_party_count": 15,
              "third_party_ratio": 1
            },
            "strings": {
              "bytes": 401,
              "count": 16,
              "avg_length": 25.06,
              "max_length": 75,
              "avg_entropy": 3.49,
              "entropy_stddev": 0.82
            },
            "comments": {
              "chars": 5144,
              "count": 115,
              "lines": 115,
              "base64": 7,
              "high_entropy": 17,
              "to_code_ratio": 0.21,
              "url_in_comments": 5
            },
            "functions": {
              "count": 10,
              "density": 1.5,
              "avg_params": 0.1,
              "code_ratio": 0.8,
              "max_params": 1,
              "length_stddev": 22.99,
              "avg_name_length": 21,
              "no_params_count": 9,
              "avg_length_lines": 53.3,
              "max_length_lines": 85,
              "min_length_lines": 12,
              "high_entropy_names": 7,
              "avg_param_name_length": 23
            },
            "identifiers": {
              "count": 876,
              "unique": 161,
              "avg_length": 12.15,
              "max_length": 36,
              "min_length": 3,
              "avg_entropy": 2.91,
              "reuse_ratio": 0.18,
              "length_stddev": 6.81,
              "high_entropy_count": 28,
              "high_entropy_ratio": 0.17,
              "all_lowercase_ratio": 0.5,
              "all_uppercase_ratio": 0.19
            }
          }
        },
        "id": 8,
        "mol": "Md(Pa)",
        "path": "/data/samples/incoming/forager/rust/crates.io/_/fc-pallet-payments/fc-pallet-payments-2.3.1.crate!!fc-pallet-payments-2.3.1/src/tests.rs",
        "pid": 0,
        "risk": 2,
        "sha": "f1314ac3ba063ea3aa30fef3d80e1d285774a4d3f60bd8663253cea3da4669b2",
        "size": 22842,
        "traits": [
          {
            "id": "metadata/import/rust/super::super",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports super::*",
            "spans": [
              [
                4,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/assert_err::frame_support/assert_err",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::assert_err",
            "spans": [
              [
                39,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/assert_ok::frame_support/assert_ok",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::assert_ok",
            "spans": [
              [
                51,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/traits/fungibles::frame_support/traits/fungibles",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::fungibles",
            "spans": [
              [
                62,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/weights/constants/weight_ref_time_per_nanos::frame_support/weights/constants/weight_ref_time_per_nanos",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::weights::constants::WEIGHT_REF_TIME_PER_NANOS",
            "spans": [
              [
                81,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/mock/hooks::mock/hooks",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports mock::Hooks",
            "spans": [
              [
                142,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/mock::mock",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports mock::*",
            "spans": [
              [
                149,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/sp_runtime/perbill::sp_runtime/perbill",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports sp_runtime::Perbill",
            "spans": [
              [
                157,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/types/paymentdetail::types/paymentdetail",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports types::PaymentDetail",
            "spans": [
              [
                190,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/types/paymentstate::types/paymentstate",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports types::PaymentState",
            "spans": [
              [
                205,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/weights/substrateweight::weights/substrateweight",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports weights::SubstrateWeight",
            "spans": [
              [
                224,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/payment::PaymentStore",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Payment as PaymentStore",
            "spans": [
              [
                254,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/crate/weights/weightinfo::crate/weights/weightinfo",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports crate::weights::WeightInfo",
            "spans": [
              [
                19212,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/weights/constants/weight_ref_time_per_second::frame_support/weights/constants/weight_ref_time_per_second",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::weights::constants::WEIGHT_REF_TIME_PER_SECOND",
            "spans": [
              [
                19273,
                0
              ]
            ]
          },
          {
            "id": "metadata/import/rust/frame_support/weights/weight::frame_support/weights/weight",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::weights::Weight",
            "spans": [
              [
                19312,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "spans": [
              [
                3259,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-2",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"and\"",
            "spans": [
              [
                20245,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-3",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"that\"",
            "spans": [
              [
                6562,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-4",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"have\"",
            "spans": [
              [
                3784,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "spans": [
              [
                3864,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-6",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"with\"",
            "spans": [
              [
                19352,
                0
              ]
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-7",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"this\"",
            "spans": [
              [
                6547,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-inline-tests-module-path",
            "conf": 0.95,
            "crit": 3,
            "desc": "Rust inline tests module path"
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-test-attr",
            "conf": 0.9,
            "crit": 2,
            "desc": "#[test] attribute",
            "spans": [
              [
                3939,
                0
              ]
            ]
          },
          {
            "id": "metadata/package/testing/presence/harness::rust-tests-path-filename",
            "conf": 0.85,
            "crit": 2,
            "desc": "Path or filename indicates Rust tests"
          },
          {
            "id": "metadata/package/testing/harness/unit::rust-test",
            "conf": 0.95,
            "crit": 3,
            "desc": "Rust test marker or harness",
            "uses": [
              23
            ],
            "spans": [
              [
                3939,
                7
              ]
            ]
          }
        ],
        "type": "rust"
      },
      {
        "depth": 2,
        "facts": {
          "metrics": {
            "file": {
              "size": 1107,
              "entropy": 4.77
            },
            "binary": {
              "peak_region_bytes": 1024,
              "peak_region_entropy": 4.79
            },
            "registry": {
              "age_days": 2805,
              "published_at": 1548017729,
              "is_deprecated": 0,
              "downloads_total": 115475261,
              "downloads_recent": 16529914
            }
          }
        },
        "id": 11,
        "mol": "Md(Re)",
        "path": "Inflector@0.11.4.registry.json",
        "pid": 20,
        "rel": "registry",
        "risk": 1,
        "role": "sidecar",
        "sha": "db9aa21f5a6e47da855ce6f6012b808c63fd39e89f5a4857088748e439760f51",
        "size": 1107,
        "traits": [
          {
            "id": "metadata/registry::widely-installed",
            "conf": 1.0,
            "crit": 3,
            "desc": "Large registry install base (10k+ downloads)"
          }
        ],
        "type": "registry"
      },
      {
        "depth": 2,
        "facts": {
          "metrics": {
            "file": {
              "size": 872,
              "entropy": 4.76
            },
            "binary": {
              "peak_region_bytes": 872,
              "peak_region_entropy": 4.76
            },
            "registry": {
              "age_days": 377,
              "published_at": 1757732498,
              "is_deprecated": 0,
              "downloads_total": 524476299,
              "downloads_recent": 82320443
            }
          }
        },
        "id": 12,
        "mol": "Md(Re)",
        "path": "addr2line@0.25.1.registry.json",
        "pid": 3,
        "rel": "registry",
        "risk": 1,
        "role": "sidecar",
        "sha": "e9b76d933067b068e89dcfc9290c5191169b6edc9f2962ec6cdd97b4bb858888",
        "size": 872,
        "traits": [
          {
            "id": "metadata/registry::widely-installed",
            "conf": 1.0,
            "crit": 3,
            "desc": "Large registry install base (10k+ downloads)"
          }
        ],
        "type": "registry"
      },
      {
        "id": 13,
        "mol": "Md(Re)",
        "sha": "44a8ce8f23db97e5335280f99cb15e19d50d93e76a88061a10a8696d132a8acf",
        "path": "adler2@2.0.1.registry.json",
        "risk": 1,
        "size": 863,
        "type": "registry",
        "depth": 2
      },
      {
        "id": 14,
        "mol": "Md(Re)",
        "sha": "d2e8deb7bde6203ee7c5242d60323831804d90fb86fb2b375e4157b7559c261d",
        "path": "aead@0.5.2.registry.json",
        "risk": 1,
        "size": 942,
        "type": "registry",
        "depth": 2
      },
      {
        "id": 15,
        "mol": "Md(Re)",
        "sha": "54fd22f447f1652b75876201f40471566f320e9c5500b1ce3ca8ea87c40fdca3",
        "path": "ahash@0.8.12.registry.json",
        "risk": 1,
        "size": 865,
        "type": "registry",
        "depth": 2
      },
      {
        "id": 16,
        "mol": "Md(Re)",
        "sha": "12629e3337192fe9ca47b426b94ef4adeb7e18386d83c7961c27262abf841872",
        "path": "aho-corasick@1.1.4.registry.json",
        "risk": 1,
        "size": 884,
        "type": "registry",
        "depth": 2
      },
      {
        "id": 17,
        "mol": "Md(Re)",
        "sha": "7dfd04f6fafa9ebfe8beca5f4872d21dfb4da77f41052000eb01c3234b93e3c8",
        "path": "allocator-api2@0.2.21.registry.json",
        "risk": 1,
        "size": 887,
        "type": "registry",
        "depth": 2
      },
      {
        "id": 18,
        "mol": "Md(Re)",
        "sha": "20dd228f7a896037f4f2c11c33e6ae7a0ad043a4febcfc623464a7b39a4f601c",
        "path": "autocfg@1.5.0.registry.json",
        "risk": 1,
        "size": 838,
        "type": "registry",
        "depth": 2
      },
      {
        "id": 19,
        "mol": "Md(Re)",
        "sha": "4f7901d315f4630bdd9b2da23261491c8aec748e3d26aeed2f47597be3edd3a0",
        "path": "fc-traits-payments@2.3.1.registry.json",
        "risk": 1,
        "size": 869,
        "type": "registry",
        "depth": 2
      },
      {
        "id": 20,
        "sha": "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3",
        "path": "pkg:cargo/Inflector@0.11.4",
        "size": 17438,
        "type": "",
        "depth": 2
      },
      {
        "id": 21,
        "sha": "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b",
        "path": "pkg:cargo/addr2line@0.25.1",
        "size": 43134,
        "type": "",
        "depth": 2
      },
      {
        "id": 22,
        "sha": "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa",
        "path": "pkg:cargo/adler2@2.0.1",
        "size": 13366,
        "type": "",
        "depth": 2
      },
      {
        "id": 23,
        "sha": "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0",
        "path": "pkg:cargo/aead@0.5.2",
        "size": 15509,
        "type": "",
        "depth": 2
      },
      {
        "id": 24,
        "sha": "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75",
        "path": "pkg:cargo/ahash@0.8.12",
        "size": 43413,
        "type": "",
        "depth": 2
      },
      {
        "id": 25,
        "sha": "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301",
        "path": "pkg:cargo/aho-corasick@1.1.4",
        "size": 184015,
        "type": "",
        "depth": 2
      },
      {
        "id": 26,
        "sha": "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923",
        "path": "pkg:cargo/allocator-api2@0.2.21",
        "size": 63622,
        "type": "",
        "depth": 2
      },
      {
        "id": 27,
        "sha": "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8",
        "path": "pkg:cargo/autocfg@1.5.0",
        "size": 18729,
        "type": "",
        "depth": 2
      },
      {
        "depth": 2,
        "facts": {
          "metrics": {
            "file": {
              "size": 28133,
              "entropy": 7.99
            },
            "parse": {
              "error_count": 1
            },
            "binary": {
              "peak_region_bytes": 28133,
              "peak_region_entropy": 7.82
            }
          }
        },
        "id": 28,
        "ident": {
          "name": {
            "value": "fc-traits-payments",
            "source": "crate.name",
            "verified": false
          },
          "urls": [
            {
              "url": "https://github.com/virto-network/frame-contrib.git",
              "kind": "repository",
              "source": "crate.repository"
            }
          ],
          "trust": "unsigned",
          "emails": [
            "contact@virto.team"
          ],
          "authors": [
            {
              "name": "Virto team",
              "role": "author",
              "email": "contact@virto.team",
              "source": "crate.authors"
            }
          ],
          "version": {
            "value": "2.3.1",
            "source": "crate.version",
            "verified": false
          },
          "identifier": {
            "value": "fc-traits-payments",
            "source": "crate.name",
            "verified": false
          }
        },
        "mol": "Md",
        "path": "pkg:cargo/fc-traits-payments@2.3.1",
        "pid": 2,
        "rel": "fetched",
        "risk": 2,
        "sha": "864982c971e9d0b29e62d75d8c56f395e8edbeeaca7f77cd70a6617457cd3f74",
        "size": 28133,
        "traits": [
          {
            "id": "metadata/package/name/convention::cargo-package-name",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package has name"
          },
          {
            "id": "metadata/import/rust/mutate::PaymentMutate",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Mutate as PaymentMutate",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/version::cargo-package-version",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package has version"
          },
          {
            "id": "metadata/import/rust/frame_support/parameter::frame_support/parameter",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::Parameter",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/inspect::PaymentInspect",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports Inspect as PaymentInspect",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/name/convention::cargo-meaningful-description",
            "conf": 0.78,
            "crit": 2,
            "desc": "Cargo package has meaningful description"
          },
          {
            "id": "metadata/import/rust/frame_support/traits/tokens/balance::frame_support/traits/tokens/balance",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::traits::tokens::Balance",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/file/comment::source-comment-bytes-over-300",
            "conf": 0.92,
            "crit": 2,
            "desc": "Source has over 300 comment bytes",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-1",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"the\"",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/codec/maxencodedlen::codec/maxencodedlen",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports codec::MaxEncodedLen",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/name/convention::cargo-repository-field",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package declares repository"
          },
          {
            "id": "metadata/import/rust/frame_support/sp_runtime/dispatcherror::frame_support/sp_runtime/dispatcherror",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports frame_support::sp_runtime::DispatchError",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/lang/natural::lang-english--atom-5",
            "conf": 0.8,
            "crit": 1,
            "desc": "English function-word token \"for\"",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/codec/encode::codec/encode",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports codec::Encode",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/import/rust/impl_trait_for_tuples/impl_for_tuples::impl_trait_for_tuples/impl_for_tuples",
            "conf": 0.95,
            "crit": 2,
            "desc": "imports impl_trait_for_tuples::impl_for_tuples",
            "from": [
              {
                "file": 4
              }
            ]
          },
          {
            "id": "metadata/package/name/convention::cargo-license-field",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package declares license"
          },
          {
            "id": "metadata/package/name/convention::cargo-readme-field",
            "conf": 0.85,
            "crit": 2,
            "desc": "Cargo package declares readme"
          },
          {
            "id": "metadata/build/archive::archive-cargo-toml-entry",
            "conf": 0.9,
            "crit": 2,
            "desc": "Archive contains Cargo.toml"
          },
          {
            "id": "metadata/file/naming::archive-member-under-10kb",
            "conf": 0.9,
            "crit": 3,
            "desc": "Archive has a sub-10KB member"
          }
        ],
        "type": "crate",
        "via": "https://static.crates.io/crates/fc-traits-payments/fc-traits-payments-2.3.1.crate"
      },
      {
        "id": 33,
        "mol": "Md(Re)",
        "sha": "f045ddb01b230377dcc4dc5f4710b441b0e556a8313ec09ef586b512eed4c86b",
        "path": "fc-pallet-payments@2.3.1.registry.json",
        "risk": 1,
        "size": 891,
        "type": "registry",
        "depth": 1
      }
    ],
    "omitted_files": 16,
    "rev": "c1ea9",
    "v": "8"
  }
}