{
  "source": "local XRPLF/rippled git ancestry after fetch --all --tags --prune",
  "checked_utc": "2026-05-27T18:41:13Z",
  "refs": {
    "3.1.3": "tag 3.1.3\nTagger: Ed Hennis <ed@ripple.com>\n\n3.1.3\n-----BEGIN PGP SIGNATURE-----\n\niQJPBAABCAA5FiEEUpSWUHRltZGpgoMc2DUIwPIZjjoFAmn81B4bFIAAAAAABAAO\nbWFudTIsMi41KzEuMTIsMCwzAAoJENg1CMDyGY46p64P/2og+te1weSdDV95MpQc\nTF/y1eWKKm1jrW0cw/J/xFBf14+QV41G4y3LBQP7nQNzjADLbiwZSyPC8QfFE59H\ngEDxpV5kAvMXEIrGunzYv4UpgpjgQc9eD/PHJAMuJU+EZ9x8Z4jzHz4YhsHZGz5c\nrw2c1F1M1fVOKVvaNmzpAhRzcTIwH2eXGqLE+VGZE5Uoob+PcCcpeEv6Uj9pLVu1\nZIX9iC4JSR5d/YhJVeCNUihoF/RmOqbwUKvsXeWWYvhEunnJ611Er3cIWgH5qHAm\nw5i7Lc1khAsXij7Rby6XtLj+qcXFRvSJVQbPojYXoaTIPAvY6G74ljnt0wWIBBEM\nb9XXoQeZ3fdYxNS4a7DaPBpTekKDQNBgwMN2mNqYY2vpVRiUEqdTPqyMN0uDnJuE\nSSSVlPXnsJ/QZ5qXKr+fLIOdb6uAFJIGaSNDggKPBbw8Kl8lt3eP5gchjayRE5eE\n1pUy26RHah02NLm7br7ncpsH+7683ywTCN06qSX1Uy9y+2b+SSiXIXsMCg8PBbSk\nRdjGVJXBtUE/oyN1n6ERZ8j1cbD7WuktwK54qprU1FlxhuCZF1HCTG4IBno1gSjc\ncvmBO/kuz1KS3dh74P/9n7Zltmw7AOHiW7ARq399yt4EcC6LfNZQ1BPiOPbuGjQ1\npCNbz8ezaqmbidZp9ZYbNz9k\n=1C90\n-----END PGP SIGNATURE-----\n46b241ace8b30d9c9775d60ffba7d24b21903896 2026-05-07 13:31:08 -0400 Set version to 3.1.3",
    "3.2.0-b7": "tag 3.2.0-b7\nTagger: Michael Legleux <mlegleux@ripple.com>\n\n3.2.0-b7\n-----BEGIN PGP SIGNATURE-----\n\niHUEABYKAB0WIQR1yQG/EAAxPJkub2nE0BgdPc5dvgUCahC7IgAKCRDE0BgdPc5d\nviDRAP4vB/ELn0n61db2WZNBKfqHKM2FIxbnUiVkJruBd/DXPQD8CMAVDtl5U8+o\n9cNjY8Bw55LPMIQWw1LfvgTMQVkWmwI=\n=FTIE\n-----END PGP SIGNATURE-----\ndfb9b8ed9a0ad04c1da00c9957fe3c7454930835 2026-05-22 19:32:12 +0000 release: Bump version to 3.2.0-b7 (#7316)",
    "origin/develop": "1162371def825beed3888f79b9f253dea165c13d 2026-05-26 20:03:04 +0000 ci: Only push docker images in XRPLF/rippled (#7330)"
  },
  "summary": {
    "patched_in_3_2_0_b7_or_develop": [
      "ESCROW-CANCEL-IOU-001",
      "AMM-STALE-AUTH-001",
      "MPT-NONCANONICAL-AMOUNT-001",
      "PDEX-HYBRID-QUALITY-001",
      "PDEX-CANCEL-INVARIANT-001"
    ],
    "not_confirmed_fixed_in_3_2_0_b7_or_develop": [
      "MPT-TRANSFER-RATE-OVERFLOW-001",
      "MPT-LOCK-UNAUTH-001",
      "TRUSTLINE-POSITIVE-BALANCE-RESERVE-001",
      "TRUSTLINE-DISALLOW-INCOMING-OFFER-001",
      "NFTOKEN-DISALLOW-INCOMING-ACCEPT-001",
      "NFTOKEN-BROKER-FEE-DISALLOW-INCOMING-TRUSTLINE-001",
      "CHECKCASH-DISALLOW-INCOMING-TRUSTLINE-001",
      "TOKENESCROW-DISALLOW-INCOMING-FINISH-001",
      "AMMWITHDRAW-DISALLOW-INCOMING-TRUSTLINE-001",
      "AMMCREATE-DISALLOW-INCOMING-TRUSTLINE-001",
      "AMMDEPOSIT-EMPTY-DISALLOW-INCOMING-TRUSTLINE-001",
      "AMMCLAWBACK-DISALLOW-INCOMING-PAIRED-ASSET-001",
      "AMMCLAWBACK-DEPOSITAUTH-PAIRED-ASSET-001",
      "AMMBID-DEPOSITAUTH-REFUND-001"
    ],
    "excluded_by_live_dependency": [
      {
        "id": "MPT-DOMAIN-AUTH-001",
        "reason": "Excluded from live packet because MPT sfDomainID issuance/set paths require SingleAssetVault, and direct XRPL mainnet status shows SingleAssetVault disabled."
      }
    ]
  },
  "records": {
    "MPT-DOMAIN-AUTH-001": {
      "note": "patched in 3.2.0 beta line and develop",
      "fix_commits": [
        {
          "commit": "4b198cd5b",
          "subject": "4b198cd5bbd457747075fcf4b0abe7035d70e317 2026-04-20 21:25:52 +0000\nfix: Disallow MPTClearRequireAuth if is set (#6712)",
          "tags_containing_commit": [
            "3.2.0-b6",
            "3.2.0-b7"
          ],
          "in_3_1_3": false,
          "in_3_2_0_b7": true,
          "in_origin_develop": true
        }
      ]
    },
    "ESCROW-CANCEL-IOU-001": {
      "note": "patched in 3.2.0 beta line and develop",
      "fix_commits": [
        {
          "commit": "ad3d172a1",
          "subject": "ad3d172a1f0a6bcac7a3d18c2cb15366ee5b1e47 2026-05-18 20:08:48 +0000\nfix: Use account ledger entry when canceling token escrows (#6171)",
          "tags_containing_commit": [
            "3.2.0-b6",
            "3.2.0-b7"
          ],
          "in_3_1_3": false,
          "in_3_2_0_b7": true,
          "in_origin_develop": true
        }
      ]
    },
    "AMM-STALE-AUTH-001": {
      "note": "patched in 3.2.0 beta line and develop",
      "fix_commits": [
        {
          "commit": "779b49cd9",
          "subject": "779b49cd9311f6d5d530815e24d2d52d50302c26 2026-05-09 14:43:56 +0000\nfix: Prevent stale AuthAccounts from persisting after `tfTwoAssetIfEmpty` re-initialization (#6996)",
          "tags_containing_commit": [
            "3.2.0-b6",
            "3.2.0-b7"
          ],
          "in_3_1_3": false,
          "in_3_2_0_b7": true,
          "in_origin_develop": true
        }
      ]
    },
    "MPT-NONCANONICAL-AMOUNT-001": {
      "note": "patched in develop, not in 3.2.0-b7",
      "fix_commits": [
        {
          "commit": "dcd2ff0b5",
          "subject": "dcd2ff0b5f2019c40c3f38640e751426df97d3c8 2026-05-23 06:40:26 +0000\nfix: Fix non-canonical MPT amount (#7117)",
          "tags_containing_commit": [],
          "in_3_1_3": false,
          "in_3_2_0_b7": false,
          "in_origin_develop": true
        }
      ]
    },
    "PDEX-HYBRID-QUALITY-001": {
      "note": "patched in 3.2.0 beta line and develop",
      "fix_commits": [
        {
          "commit": "28cc20c81",
          "subject": "28cc20c81679fd8bb9aa3ac85e450d1daf387816 2026-05-21 06:19:04 +0000\nfix: Fix wrong hybrid offer orderbook placement and update `LedgerStateFix` to amend `ExchangeRate` meta (#7087)",
          "tags_containing_commit": [
            "3.2.0-b6",
            "3.2.0-b7"
          ],
          "in_3_1_3": false,
          "in_3_2_0_b7": true,
          "in_origin_develop": true
        }
      ]
    },
    "PDEX-CANCEL-INVARIANT-001": {
      "note": "patched in 3.2.0 beta line and develop",
      "fix_commits": [
        {
          "commit": "8c0080020",
          "subject": "8c0080020f2a9c2d4b4dc7f6e059bf49b82ee867 2026-05-20 21:10:04 +0000\nfix: Update pDEX invariant firing under a valid offer deletion (#7118)",
          "tags_containing_commit": [
            "3.2.0-b6",
            "3.2.0-b7"
          ],
          "in_3_1_3": false,
          "in_3_2_0_b7": true,
          "in_origin_develop": true
        }
      ]
    },
    "MPT-TRANSFER-RATE-OVERFLOW-001": {
      "note": "fix-looking commit exists but is not in 3.2.0-b7 or origin/develop",
      "fix_commits": [
        {
          "commit": "22fbf4d06",
          "subject": "22fbf4d0608b2750249bc94b957a733a4d481787 2026-05-18 14:19:11 -0400\nFix MPT transfer-rate rounding overflow in STAmount",
          "tags_containing_commit": [],
          "in_3_1_3": false,
          "in_3_2_0_b7": false,
          "in_origin_develop": false
        }
      ]
    },
    "MPT-LOCK-UNAUTH-001": {
      "note": "fix-looking commits exist, but current 3.2.0-b7/develop source still gates locked-token deletion on SingleAssetVault",
      "fix_commits": [
        {
          "commit": "9c967f83b",
          "subject": "9c967f83be2f8dba9e3c69323f6679c8b8a7e743 2025-04-07 13:01:02 +0100\nDisallow deleting locked MPToken",
          "tags_containing_commit": [],
          "in_3_1_3": false,
          "in_3_2_0_b7": false,
          "in_origin_develop": false
        },
        {
          "commit": "12eb050bf",
          "subject": "12eb050bf8e5c69f08c97bf5fa41754cafacb4d1 2026-04-09 11:54:15 -0400\nChange tecFROZEN to tecLOCKED for locked MPT. Replace checkMPTTxAllowed() with canMPTTradeAndTransfer().",
          "tags_containing_commit": [],
          "in_3_1_3": false,
          "in_3_2_0_b7": false,
          "in_origin_develop": false
        }
      ]
    },
    "TRUSTLINE-POSITIVE-BALANCE-RESERVE-001": {
      "note": "fix-looking branch exists, but no confirmed fix is present in 3.2.0-b7 or origin/develop",
      "fix_commits": [
        {
          "commit": "b4a45f1f0",
          "subject": "b4a45f1f0f49d3caf56d2c790960380b5e648a60 2025-10-08 16:36:33 +0100\nfixed positive balance trustline not incrementing owners count in some cases",
          "tags_containing_commit": [],
          "in_3_1_3": false,
          "in_3_2_0_b7": false,
          "in_origin_develop": false
        },
        {
          "commit": "1bb39b9b4",
          "subject": "1bb39b9b4f075da1f7cb12b516516d5591652b85 2026-01-20 15:47:34 +0000\n[wip] added test for edge case balance",
          "tags_containing_commit": [],
          "in_3_1_3": false,
          "in_3_2_0_b7": false,
          "in_origin_develop": false
        }
      ]
    },
    "TRUSTLINE-DISALLOW-INCOMING-OFFER-001": {
      "note": "fix-looking branch exists, but no confirmed fix is present in 3.2.0-b7 or origin/develop",
      "fix_commits": [
        {
          "commit": "fa0cc0abc",
          "subject": "fa0cc0abcd718bfc59ab1c691d71b495ba92997d 2026-02-03 16:45:30 -0500\nAdd asfDisallowIncomingTrustline check to OfferCreate and comprehensive tests",
          "tags_containing_commit": [],
          "in_3_1_3": false,
          "in_3_2_0_b7": false,
          "in_origin_develop": false
        },
        {
          "commit": "ad840518f",
          "subject": "ad840518f45e8b146766bf1b8220932aecbf8d93 2026-02-03 16:46:03 -0500\nRename amendment from fixDisallowIncomingV2 to fixDisallowIncomingV1_1",
          "tags_containing_commit": [],
          "in_3_1_3": false,
          "in_3_2_0_b7": false,
          "in_origin_develop": false
        }
      ]
    },
    "NFTOKEN-DISALLOW-INCOMING-ACCEPT-001": {
      "note": "no confirmed fix is present in 3.2.0-b7 or origin/develop; branch origin/copilot/apply-asfdisallowincomingtrustline fixes OfferCreate only and leaves the NFTokenAcceptOffer path without an lsfDisallowIncomingTrustline check",
      "fix_commits": [],
      "checked_refs": [
        "3.2.0-b7",
        "origin/develop",
        "origin/copilot/apply-asfdisallowincomingtrustline"
      ],
      "source_grep": "No DisallowIncomingTrustline / lsfDisallowIncomingTrustline check was found in NFTokenAcceptOffer.cpp or NFTokenUtils.cpp in the checked refs."
    },
    "NFTOKEN-BROKER-FEE-DISALLOW-INCOMING-TRUSTLINE-001": {
      "note": "no confirmed fix is present in 3.2.0-b7 or origin/develop; branch origin/copilot/apply-asfdisallowincomingtrustline fixes OfferCreate only and leaves the NFTokenAcceptOffer broker-fee path without an lsfDisallowIncomingTrustline check",
      "fix_commits": [],
      "checked_refs": [
        "3.2.0-b7",
        "origin/develop",
        "origin/copilot/apply-asfdisallowincomingtrustline"
      ],
      "source_grep": "No DisallowIncomingTrustline / lsfDisallowIncomingTrustline check was found in NFTokenAcceptOffer.cpp, NFTokenUtils.cpp, or the generic accountSend/issueIOU path in the checked refs; origin/copilot/apply-asfdisallowincomingtrustline adds the proposed check only to OfferCreate.cpp."
    },
    "CHECKCASH-DISALLOW-INCOMING-TRUSTLINE-001": {
      "note": "no confirmed fix is present in 3.2.0-b7 or origin/develop; branch origin/copilot/apply-asfdisallowincomingtrustline fixes OfferCreate only and leaves CheckCash without an lsfDisallowIncomingTrustline check",
      "fix_commits": [],
      "checked_refs": [
        "3.2.0-b7",
        "origin/develop",
        "origin/copilot/apply-asfdisallowincomingtrustline"
      ],
      "source_grep": "No DisallowIncomingTrustline / lsfDisallowIncomingTrustline check was found in CheckCash.cpp in the checked refs; origin/copilot/apply-asfdisallowincomingtrustline adds the proposed check only to OfferCreate.cpp."
    },
    "TOKENESCROW-DISALLOW-INCOMING-FINISH-001": {
      "note": "no confirmed fix is present in 3.2.0-b7 or origin/develop; branch origin/copilot/apply-asfdisallowincomingtrustline fixes OfferCreate only and leaves EscrowFinish without an lsfDisallowIncomingTrustline check",
      "fix_commits": [],
      "checked_refs": [
        "3.2.0-b7",
        "origin/develop",
        "origin/copilot/apply-asfdisallowincomingtrustline"
      ],
      "source_grep": "No DisallowIncomingTrustline / lsfDisallowIncomingTrustline check was found in Escrow.cpp in the checked refs; origin/copilot/apply-asfdisallowincomingtrustline adds the proposed check only to OfferCreate.cpp."
    },
    "AMMWITHDRAW-DISALLOW-INCOMING-TRUSTLINE-001": {
      "note": "no confirmed fix is present in 3.2.0-b7 or origin/develop; branch origin/copilot/apply-asfdisallowincomingtrustline fixes OfferCreate only and leaves AMMWithdraw/accountSend without an lsfDisallowIncomingTrustline check",
      "fix_commits": [],
      "checked_refs": [
        "3.2.0-b7",
        "origin/develop",
        "origin/copilot/apply-asfdisallowincomingtrustline"
      ],
      "source_grep": "No DisallowIncomingTrustline / lsfDisallowIncomingTrustline check was found in AMMWithdraw.cpp or the generic accountSend/issueIOU path in the checked refs; origin/copilot/apply-asfdisallowincomingtrustline adds the proposed check only to OfferCreate.cpp."
    },
    "AMMCREATE-DISALLOW-INCOMING-TRUSTLINE-001": {
      "note": "no confirmed fix is present in 3.2.0-b7 or origin/develop; branch origin/copilot/apply-asfdisallowincomingtrustline fixes OfferCreate only and leaves AMMCreate/accountSend without an lsfDisallowIncomingTrustline check",
      "fix_commits": [],
      "checked_refs": [
        "3.2.0-b7",
        "origin/develop",
        "origin/copilot/apply-asfdisallowincomingtrustline"
      ],
      "source_grep": "No DisallowIncomingTrustline / lsfDisallowIncomingTrustline check was found in AMMCreate.cpp or the generic accountSend/issueIOU path in the checked refs; origin/copilot/apply-asfdisallowincomingtrustline adds the proposed check only to OfferCreate.cpp."
    },
    "AMMDEPOSIT-EMPTY-DISALLOW-INCOMING-TRUSTLINE-001": {
      "note": "no confirmed fix is present in 3.2.0-b7 or origin/develop; branch origin/copilot/apply-asfdisallowincomingtrustline fixes OfferCreate only and leaves AMMDeposit/accountSend without an lsfDisallowIncomingTrustline check",
      "fix_commits": [],
      "checked_refs": [
        "3.2.0-b7",
        "origin/develop",
        "origin/copilot/apply-asfdisallowincomingtrustline"
      ],
      "source_grep": "No DisallowIncomingTrustline / lsfDisallowIncomingTrustline check was found in AMMDeposit.cpp or the generic accountSend/issueIOU path in the checked refs; origin/copilot/apply-asfdisallowincomingtrustline adds the proposed check only to OfferCreate.cpp."
    },
    "AMMCLAWBACK-DISALLOW-INCOMING-PAIRED-ASSET-001": {
      "note": "no confirmed fix is present in 3.2.0-b7 or origin/develop; branch origin/copilot/apply-asfdisallowincomingtrustline fixes OfferCreate only and leaves AMMClawback/AMMWithdraw/accountSend without an lsfDisallowIncomingTrustline check",
      "fix_commits": [],
      "checked_refs": [
        "3.2.0-b7",
        "origin/develop",
        "origin/copilot/apply-asfdisallowincomingtrustline"
      ],
      "source_grep": "No DisallowIncomingTrustline / lsfDisallowIncomingTrustline check was found in AMMClawback.cpp, AMMWithdraw.cpp, or the generic accountSend/issueIOU path in the checked refs; origin/copilot/apply-asfdisallowincomingtrustline adds the proposed check only to OfferCreate.cpp."
    },
    "AMMCLAWBACK-DEPOSITAUTH-PAIRED-ASSET-001": {
      "note": "no confirmed fix is present in 3.2.0-b7 or origin/develop; AMMClawback paired-asset return still routes through AMMWithdraw/accountSend without a DepositAuth authorization check",
      "fix_commits": [],
      "checked_refs": [
        "3.2.0-b7",
        "origin/develop"
      ],
      "source_grep": "No DepositAuth / verifyDepositPreauth check was found in AMMClawback.cpp, AMMWithdraw.cpp, or the AMMClawback paired-asset return path in the checked refs."
    },
    "AMMBID-DEPOSITAUTH-REFUND-001": {
      "note": "no confirmed fix is present in 3.2.0-b7 or origin/develop; AMMBid previous-owner refund still routes through accountSend without a DepositAuth authorization check",
      "fix_commits": [],
      "checked_refs": [
        "3.2.0-b7",
        "origin/develop"
      ],
      "source_grep": "No DepositAuth / verifyDepositPreauth check was found in AMMBid.cpp or the AMMBid auction refund path in the checked refs."
    }
  },
  "source_equivalence_checks": {
    "MPT-TRANSFER-RATE-OVERFLOW-001": "The roundNumberResult / MPT-specific Number arithmetic branch from 22fbf4d06 was not present in 3.2.0-b7 or origin/develop during this check.",
    "MPT-LOCK-UNAUTH-001": "3.2.0-b7 and origin/develop still contain a locked-token deletion guard conditioned on featureSingleAssetVault in MPTokenAuthorize.cpp.",
    "TRUSTLINE-POSITIVE-BALANCE-RESERVE-001": "3.2.0-b7 and origin/develop do not contain fixTrustLineOwnerCount or the receiver-reserve increment in rippleCreditIOU; the only observed fix branch is origin/vvysokikh1/fix-positive-balance-trustline-pay-no-reserve.",
    "TRUSTLINE-DISALLOW-INCOMING-OFFER-001": "3.2.0-b7 and origin/develop do not contain fixDisallowIncomingV1_1 or the OfferCreate check that rejects receiving issuer IOUs without an existing trustline when lsfDisallowIncomingTrustline is set; the only observed fix branch is origin/copilot/apply-asfdisallowincomingtrustline.",
    "NFTOKEN-DISALLOW-INCOMING-ACCEPT-001": "3.2.0-b7, origin/develop, and origin/copilot/apply-asfdisallowincomingtrustline contain NFT RequireAuth/deep-freeze checks but no DisallowIncomingTrustline check in NFTokenAcceptOffer/NFTokenUtils; the reproduced 3.1.3 behavior remains unfixed in the checked refs.",
    "NFTOKEN-BROKER-FEE-DISALLOW-INCOMING-TRUSTLINE-001": "3.2.0-b7, origin/develop, and origin/copilot/apply-asfdisallowincomingtrustline contain NFT broker-fee RequireAuth/deep-freeze checks but no DisallowIncomingTrustline check in NFTokenAcceptOffer::pay/accountSend; the proposed fixDisallowIncomingV1_1 branch only covers OfferCreate.",
    "CHECKCASH-DISALLOW-INCOMING-TRUSTLINE-001": "3.2.0-b7, origin/develop, and origin/copilot/apply-asfdisallowincomingtrustline retain CheckCash automatic trustline creation without an issuer lsfDisallowIncomingTrustline check; the proposed fixDisallowIncomingV1_1 branch only covers OfferCreate.",
    "TOKENESCROW-DISALLOW-INCOMING-FINISH-001": "3.2.0-b7, origin/develop, and origin/copilot/apply-asfdisallowincomingtrustline retain EscrowFinish IOU trustline creation without an issuer lsfDisallowIncomingTrustline check; the proposed fixDisallowIncomingV1_1 branch only covers OfferCreate.",
    "AMMCLAWBACK-DISALLOW-INCOMING-PAIRED-ASSET-001": "3.2.0-b7, origin/develop, and origin/copilot/apply-asfdisallowincomingtrustline retain AMMClawback paired-asset return through AMMWithdraw/accountSend without an issuer lsfDisallowIncomingTrustline check; the proposed fixDisallowIncomingV1_1 branch only covers OfferCreate.",
    "AMMCLAWBACK-DEPOSITAUTH-PAIRED-ASSET-001": "3.2.0-b7 and origin/develop retain AMMClawback paired-asset return through AMMWithdraw/accountSend without a holder DepositAuth authorization check.",
    "AMMBID-DEPOSITAUTH-REFUND-001": "3.2.0-b7 and origin/develop retain AMMBid previous-owner auction refund through accountSend without a holder DepositAuth authorization check."
  }
}
