<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Ramkumar SG</title>
    <description>The latest articles on Forem by Ramkumar SG (@sgramkumar).</description>
    <link>https://forem.com/sgramkumar</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3159438%2F3a552d2b-6cc9-4b8b-b62a-589cdb9dedf5.jpg</url>
      <title>Forem: Ramkumar SG</title>
      <link>https://forem.com/sgramkumar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sgramkumar"/>
    <language>en</language>
    <item>
      <title>Batch Transaction - QA Test Report</title>
      <dc:creator>Ramkumar SG</dc:creator>
      <pubDate>Mon, 09 Feb 2026 20:09:39 +0000</pubDate>
      <link>https://forem.com/ripplexdev/batch-transaction-qa-test-report-17em</link>
      <guid>https://forem.com/ripplexdev/batch-transaction-qa-test-report-17em</guid>
      <description>&lt;p&gt;&lt;strong&gt;Test Report Date&lt;/strong&gt;: 2/6/2026&lt;br&gt;
&lt;strong&gt;Prepared By&lt;/strong&gt;: QA Team [&lt;a href="https://github.com/sgramkumar" rel="noopener noreferrer"&gt;sgramkumar&lt;/a&gt;]&lt;br&gt;
&lt;strong&gt;Environment&lt;/strong&gt;: GitLab CI Runner (Ubuntu 22.04)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;br&gt;
This report presents the results of QA testing performed on &lt;code&gt;Batch&lt;/code&gt; transaction on xrpld network.&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Feature
&lt;/h3&gt;

&lt;p&gt;This section provides a brief summary of the feature being tested. The feature under test is designed to deliver specific functionality as defined in the project specifications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feature Name&lt;/strong&gt;: Batch Transaction&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;: The proposed Batch amendment to the XRP Ledger (XRPL) protocol allows multiple transactions to be packaged together and executed as a single unit. It's like laying the foundation, building the walls, and raising the roof all in one single secure step, leveraging the existing strengths of the XRP Ledger. If you're unable to afford the roof, you won't even bother laying the foundation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Specification Reference&lt;/strong&gt;: &lt;a href="https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0056-batch" rel="noopener noreferrer"&gt;https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0056-batch&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Test Scope
&lt;/h3&gt;

&lt;p&gt;This round of testing focuses solely on ensuring that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All specified functionalities are working as expected.&lt;/li&gt;
&lt;li&gt;The API handles valid and invalid input gracefully.&lt;/li&gt;
&lt;li&gt;Integration with other features is functioning correctly.&lt;/li&gt;
&lt;li&gt;Feature validation includes both RPC and WebSockets to ensure consistent behavior across different interfaces.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  3. Types of Testing Conducted
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Testing Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Functional Testing&lt;/td&gt;
&lt;td&gt;Verifying each endpoint against defined specifications to ensure it behaves as expected.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regression Testing&lt;/td&gt;
&lt;td&gt;Running relevant test cases to confirm that recent changes did not break existing functionalities.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;End to end Testing&lt;/td&gt;
&lt;td&gt;Involves testing the complete flow of a feature confirming that different components of the application, potentially developed by different teams work together as expected.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  4. Test Environment
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OS&lt;/td&gt;
&lt;td&gt;Ubuntu 22.04 (LTS)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CPU Cores&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory&lt;/td&gt;
&lt;td&gt;128 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test Framework&lt;/td&gt;
&lt;td&gt;Pytest/Shell script&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  5. Test Results Summary
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Testing Type&lt;/th&gt;
&lt;th&gt;Total Tests&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Feature Testing&lt;/td&gt;
&lt;td&gt;232&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regression Testing&lt;/td&gt;
&lt;td&gt;3356&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Feature commit:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;commit 2a61aee5620725f8249e3066616ef6e20c99c857
Author: Denis Angell &amp;lt;dangell@transia.co&amp;gt;
Date:   Fri May 23 21:53:53 2025 +0200

    Add Batch feature (XLS-56) (#5060)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Testcases&lt;/strong&gt;: &lt;a href="https://dev.to/ripplexdev/batch-transaction-testcases-273j"&gt;https://dev.to/ripplexdev/batch-transaction-testcases-273j&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Bugs Reported
&lt;/h3&gt;

&lt;p&gt;No new bugs have been reported post-feature commit.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Conclusion
&lt;/h3&gt;

&lt;p&gt;This feature has undergone comprehensive functional, regression, and end to end testing. The majority of the test cases have been executed successfully, with positive outcomes confirming that the core functionalities are working as expected.&lt;/p&gt;

</description>
      <category>blockchain</category>
      <category>cicd</category>
      <category>testing</category>
      <category>web3</category>
    </item>
    <item>
      <title>Batch Transaction - Testcases</title>
      <dc:creator>Ramkumar SG</dc:creator>
      <pubDate>Mon, 09 Feb 2026 20:09:17 +0000</pubDate>
      <link>https://forem.com/ripplexdev/batch-transaction-testcases-273j</link>
      <guid>https://forem.com/ripplexdev/batch-transaction-testcases-273j</guid>
      <description>&lt;p&gt;&lt;strong&gt;Mode: allornothing&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Test Batch allornothing all payments succeed&lt;/li&gt;
&lt;li&gt;Test Batch allornothing submit batch multiple times&lt;/li&gt;
&lt;li&gt;Test Batch allornothing one payment fails&lt;/li&gt;
&lt;li&gt;Test Batch allornothing all payments fail&lt;/li&gt;
&lt;li&gt;Test Batch allornothing mixed transaction types&lt;/li&gt;
&lt;li&gt;Test Batch allornothing fee calculation&lt;/li&gt;
&lt;li&gt;Test Batch allornothing max inner transactions&lt;/li&gt;
&lt;li&gt;Test Batch allornothing more than max inner transactions&lt;/li&gt;
&lt;li&gt;Test Batch allornothing cash same check multiple times&lt;/li&gt;
&lt;li&gt;Test Batch allornothing fail and then succeed&lt;/li&gt;
&lt;li&gt;Test Batch allornothing with tickets&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Mode: onlyone&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Test Batch onlyone first succeeds&lt;/li&gt;
&lt;li&gt;Test Batch onlyone first fails second succeeds&lt;/li&gt;
&lt;li&gt;Test Batch onlyone all fail&lt;/li&gt;
&lt;li&gt;Test Batch onlyone offer priority&lt;/li&gt;
&lt;li&gt;Test Batch onlyone max inner transactions&lt;/li&gt;
&lt;li&gt;Test Batch onlyone more than max inner transactions&lt;/li&gt;
&lt;li&gt;Test Batch onlyone cash same check multiple times&lt;/li&gt;
&lt;li&gt;Test Batch onlyone fail and then succeed&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Mode: untilfailure&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Test Batch untilfailure all succeed&lt;/li&gt;
&lt;li&gt;Test Batch untilfailure stops at first&lt;/li&gt;
&lt;li&gt;Test Batch untilfailure stops at second&lt;/li&gt;
&lt;li&gt;Test Batch untilfailure stops at third&lt;/li&gt;
&lt;li&gt;Test Batch untilfailure sequential setup&lt;/li&gt;
&lt;li&gt;Test Batch untilfailure progressive payments&lt;/li&gt;
&lt;li&gt;Test Batch untilfailure mixed success failure pattern&lt;/li&gt;
&lt;li&gt;Test Batch untilfailure max inner transactions&lt;/li&gt;
&lt;li&gt;Test Batch untilfailure more than max inner transactions&lt;/li&gt;
&lt;li&gt;Test Batch untilfailure cash same check multiple times&lt;/li&gt;
&lt;li&gt;Test Batch untilfailure fail and then succeed&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Mode: independent&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Test Batch independent all succeed&lt;/li&gt;
&lt;li&gt;Test Batch independent some fail&lt;/li&gt;
&lt;li&gt;Test Batch independent all fail&lt;/li&gt;
&lt;li&gt;Test Batch independent parallel operations&lt;/li&gt;
&lt;li&gt;Test Batch independent mixed transaction types&lt;/li&gt;
&lt;li&gt;Test Batch independent account setup operations&lt;/li&gt;
&lt;li&gt;Test Batch independent max transactions&lt;/li&gt;
&lt;li&gt;Test Batch independent more than max transactions&lt;/li&gt;
&lt;li&gt;Test Batch independent cash same check multiple times&lt;/li&gt;
&lt;li&gt;Test Batch independent fail and then succeed&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Multi account tests (with signers)&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Test Batch multiaccount workflow all payments succeed&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount atomic swap xrp for xrp&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount atomic swap xrp for token&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount circular three way swap&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount with submitter not in inner txns&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount without signers&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount with max signers&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount with more than max signers&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount txn1 fails txn2 succeeds&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount create check succeeds cash check fails&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount delete accounts too soon with other account as signer[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount delete accounts too soon with other account as signer[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount delete accounts too soon with other account as signer[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount delete accounts too soon with other account as signer[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount delete accounts after flag ledger with other account as signer&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount delete submitting account after flag ledger with no signer&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount delete submitting account after flag ledger with signer&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount alice creates offer bob creates offer[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount alice creates offer bob creates offer[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount alice creates offer bob creates offer[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount alice creates offer bob creates offer[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount create nftokenmint nftokenoffercreate fails reverts nftokenmint[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount create nftokenmint nftokenoffercreate fails reverts nftokenmint[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount create nftokenmint nftokenoffercreate fails reverts nftokenmint[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch multiaccount create nftokenmint nftokenoffercreate fails reverts nftokenmint[Batch.tfIndependent]&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Batch with Vault transactions&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Test Batch with vault create[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with vault create[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with vault create[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with vault create[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with vault set[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with vault set[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with vault set[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with vault set[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with vault deposit[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with vault deposit[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with vault deposit[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with vault deposit[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with vault withdraw[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with vault withdraw[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with vault withdraw[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with vault withdraw[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with vault delete[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with vault delete[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with vault delete[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with vault delete[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with vault clawback[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with vault clawback[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with vault clawback[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with vault clawback[Batch
.tfIndependent]&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Batch with LoanBroker/Loan transactions&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Test Batch with loan broker set[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker set[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker set[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker set[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker delete[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker delete[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker delete[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker delete[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker cover deposit[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker cover deposit[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker cover deposit[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker cover deposit[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker cover withdraw[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker cover withdraw[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker cover withdraw[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker cover withdraw[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker cover clawback[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker cover clawback[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker cover clawback[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with loan broker cover clawback[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with loan set[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with loan set[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with loan set[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with loan set[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with loan pay[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with loan pay[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with loan pay[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with loan pay[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with loan delete[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with loan delete[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with loan delete[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with loan delete[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with loan manage[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with loan manage[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with loan manage[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with loan manage[Batch
.tfIndependent]&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Batch with various transaction types&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Test Batch transaction type trustset[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type trustset[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type trustset[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type trustset[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type offercreate[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type offercreate[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type offercreate[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type offercreate[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type account set[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type account set[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type account set[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type account set[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type escrow create[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type escrow create[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type escrow create[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type escrow create[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type check create[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type check create[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type check create[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type check create[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type nftokenmint[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type nftokenmint[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type nftokenmint[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type nftokenmint[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with ticket create transaction&lt;/li&gt;
&lt;li&gt;Test Batch transaction type signerlistset[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type signerlistset[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type signerlistset[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type signerlistset[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type depositpreauth[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type depositpreauth[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type depositpreauth[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch transaction type depositpreauth[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;TODO: Batch transaction with MPT as inner transactions&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Miscellaneous tests&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Test Batch empty raw transactions[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch empty raw transactions[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch empty raw transactions[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch empty raw transactions[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with one raw transaction[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with one raw transaction[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with one raw transaction[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with one raw transaction[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with all inner transactions having no tfInnerBatchTxn flag[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with all inner transactions having no tfInnerBatchTxn flag[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with all inner transactions having no tfInnerBatchTxn flag[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with all inner transactions having no tfInnerBatchTxn flag[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with some inner transactions having no tfInnerBatchTxn flag[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with some inner transactions having no tfInnerBatchTxn flag[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with some inner transactions having no tfInnerBatchTxn flag[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with some inner transactions having no tfInnerBatchTxn flag[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with all inner transactions having incorrect tfInnerBatchTxn flag&lt;/li&gt;
&lt;li&gt;Test Batch with tfInnerBatchTxn flag set for outer transaction&lt;/li&gt;
&lt;li&gt;Test Batch with no mode set for outer transaction&lt;/li&gt;
&lt;li&gt;Test Batch with invalid mode set for outer transaction&lt;/li&gt;
&lt;li&gt;Test Batch with inner transactions having no fee field[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with inner transactions having no fee field[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with inner transactions having no fee field[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with inner transactions having no fee field[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with inner transactions having invalid fee values[-1.5]&lt;/li&gt;
&lt;li&gt;Test Batch with inner transactions having invalid fee values[1.5]&lt;/li&gt;
&lt;li&gt;Test Batch with inner transactions having invalid fee values[58E4CD288]&lt;/li&gt;
&lt;li&gt;Test Batch with inner transactions having invalid fee values[fee value3]&lt;/li&gt;
&lt;li&gt;Test Batch with inner transactions having invalid fee values[~!@#$%^&amp;amp;*() -=+[{&amp;lt;&amp;gt;]};&lt;/li&gt;
&lt;li&gt;Test Batch with inner transactions having bad fee values[-1]&lt;/li&gt;
&lt;li&gt;Test Batch with inner transactions having bad fee values[1]&lt;/li&gt;
&lt;li&gt;Test Batch with inner transactions with SigningPubKey&lt;/li&gt;
&lt;li&gt;Test Batch with inner transactions with fee and SigningPubKey&lt;/li&gt;
&lt;li&gt;Test Batch with inner transactions with TxnSignature&lt;/li&gt;
&lt;li&gt;Test Batch with invalid inner transactions[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with invalid inner transactions[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with invalid inner transactions[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with invalid inner transactions[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch inside non empty batch[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch inside non empty batch[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch inside non empty batch[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch inside non empty batch[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch inside empty batch[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch inside empty batch[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch inside empty batch[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch inside empty batch[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch inner txns with same sequence[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch inner txns with same sequence[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch inner txns with same sequence[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch inner txns with same sequence[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch inner txns with past sequence[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch inner txns with past sequence[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch inner txns with past sequence[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch inner txns with past sequence[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch inner txns with future not incremental sequences[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch inner txns with future not incremental sequences[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch inner txns with future not incremental sequences[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch inner txns with future not incremental sequences[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with account does not exist[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with account does not exist[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with account does not exist[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with account does not exist[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with deposit auth on account[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with deposit auth on account[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with deposit auth on account[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with deposit auth on account[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch with master key disabled on account[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch with master key disabled on account[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch with master key disabled on account[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch with master key disabled on account[Batch.tfIndependent]&lt;/li&gt;
&lt;li&gt;Test Batch all payments with destination account not funded[Batch.tfAllOrNothing]&lt;/li&gt;
&lt;li&gt;Test Batch all payments with destination account not funded[Batch.tfOnlyOne]&lt;/li&gt;
&lt;li&gt;Test Batch all payments with destination account not funded[Batch.tfUntilFailure]&lt;/li&gt;
&lt;li&gt;Test Batch all payments with destination account not funded[Batch.tfIndependent]&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Pending Tests&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;TODO: Batch transaction with MPT as inner transactions&lt;/p&gt;

</description>
      <category>backend</category>
      <category>blockchain</category>
      <category>softwaredevelopment</category>
      <category>testing</category>
    </item>
    <item>
      <title>Permissioned DEX - QA Test Report</title>
      <dc:creator>Ramkumar SG</dc:creator>
      <pubDate>Wed, 16 Jul 2025 17:43:47 +0000</pubDate>
      <link>https://forem.com/ripplexdev/permissioned-dex-qa-test-report-ajp</link>
      <guid>https://forem.com/ripplexdev/permissioned-dex-qa-test-report-ajp</guid>
      <description>&lt;p&gt;&lt;strong&gt;Test Report Date&lt;/strong&gt;: 7/7/2025&lt;br&gt;
&lt;strong&gt;Prepared By&lt;/strong&gt;: QA Team [&lt;a href="https://github.com/sgramkumar" rel="noopener noreferrer"&gt;sgramkumar&lt;/a&gt;, &lt;a href="https://github.com/mkunasani" rel="noopener noreferrer"&gt;mkunasani&lt;/a&gt;]&lt;br&gt;
&lt;strong&gt;Environment&lt;/strong&gt;: GitLab CI Runner (Ubuntu 22.04)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;br&gt;
This report presents the results of QA testing performed on &lt;code&gt;Permissioned DEX&lt;/code&gt; across rippled and Clio servers.&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Feature
&lt;/h3&gt;

&lt;p&gt;This section provides a brief summary of the feature being tested. The feature under test is designed to deliver specific functionality as defined in the project specifications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feature Name&lt;/strong&gt;: Permissioned DEX&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;: This proposal introduces a permissioned DEX system for the XRPL. By integrating permissioning features directly within the DEX protocol, regulated financial institutions gain the ability to participate in the XRPL's DEX while still adhering to their compliance requirements. This approach avoids the drawbacks of isolated, permissioned tokens or private blockchains, ensuring a vibrant and liquid marketplace that facilitates seamless arbitrage opportunities. Ultimately, this permissioned DEX system paves the way for wider institutional adoption of XRPL, fostering a more inclusive and efficient financial landscape.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Specification Reference&lt;/strong&gt;: &lt;a href="https://github.com/XRPLF/XRPL-Standards/tree/5709728274e5a32cd6d4e06d508aeac63d18154f/XLS-0081d-permissioned-dex" rel="noopener noreferrer"&gt;https://github.com/XRPLF/XRPL-Standards/tree/5709728274e5a32cd6d4e06d508aeac63d18154f/XLS-0081d-permissioned-dex&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Test Scope
&lt;/h3&gt;

&lt;p&gt;This round of testing focuses solely on ensuring that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All specified functionalities are working as expected.&lt;/li&gt;
&lt;li&gt;The API handles valid and invalid input gracefully.&lt;/li&gt;
&lt;li&gt;Integration with other features is functioning correctly.&lt;/li&gt;
&lt;li&gt;Feature validation includes both RPC and WebSockets to ensure consistent behavior across different interfaces.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  3. Types of Testing Conducted
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Testing Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Functional Testing&lt;/td&gt;
&lt;td&gt;Verifying each endpoint against defined specifications to ensure it behaves as expected.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regression Testing&lt;/td&gt;
&lt;td&gt;Running relevant test cases to confirm that recent changes did not break existing functionalities.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;End to end Testing&lt;/td&gt;
&lt;td&gt;Involves testing the complete flow of a feature confirming that different components of the application, potentially developed by different teams work together as expected.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  4. Test Environment
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OS&lt;/td&gt;
&lt;td&gt;Ubuntu 22.04 (LTS)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CPU Cores&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory&lt;/td&gt;
&lt;td&gt;128 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test Framework&lt;/td&gt;
&lt;td&gt;Pytest/Shell script&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  5. Test Results Summary
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Testing Type&lt;/th&gt;
&lt;th&gt;Total Tests&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Feature Testing&lt;/td&gt;
&lt;td&gt;71&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regression Testing (rippled &amp;amp; Clio)&lt;/td&gt;
&lt;td&gt;3978&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Feature commit:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;commit 0a34b5c691d3a205146a706b460473b3bfb84205
Author: Shawn Xie &amp;lt;35279399+shawnxie999@users.noreply.github.com&amp;gt;
Date:   Fri May 30 13:24:48 2025 -0400

    Add support for XLS-81 Permissioned DEX (#5404)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Testcases&lt;/strong&gt;: &lt;a href="https://dev.to/ripplexdev/permissioned-dex-testcases-4oj1"&gt;https://dev.to/ripplexdev/permissioned-dex-testcases-4oj1&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Bugs Reported
&lt;/h3&gt;

&lt;p&gt;No new bugs have been reported post-feature commit.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Conclusion
&lt;/h3&gt;

&lt;p&gt;This feature has undergone comprehensive functional, regression, and end to end testing. The majority of the test cases have been executed successfully, with positive outcomes confirming that the core functionalities are working as expected.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Token Escrow - QA Test Report</title>
      <dc:creator>Ramkumar SG</dc:creator>
      <pubDate>Wed, 16 Jul 2025 17:43:18 +0000</pubDate>
      <link>https://forem.com/ripplexdev/token-escrow-qa-test-report-306i</link>
      <guid>https://forem.com/ripplexdev/token-escrow-qa-test-report-306i</guid>
      <description>&lt;p&gt;&lt;strong&gt;Test Report Date&lt;/strong&gt;: 7/7/2025&lt;br&gt;
&lt;strong&gt;Prepared By&lt;/strong&gt;: QA Team [&lt;a href="https://github.com/sgramkumar" rel="noopener noreferrer"&gt;sgramkumar&lt;/a&gt;, &lt;a href="https://github.com/mkunasani" rel="noopener noreferrer"&gt;mkunasani&lt;/a&gt;]&lt;br&gt;
&lt;strong&gt;Environment&lt;/strong&gt;: GitLab CI Runner (Ubuntu 22.04)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;br&gt;
This report presents the results of QA testing performed on &lt;code&gt;Token Escrow&lt;/code&gt; across rippled and Clio servers.&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Feature
&lt;/h3&gt;

&lt;p&gt;This section provides a brief summary of the feature being tested. The feature under test is designed to deliver specific functionality as defined in the project specifications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feature Name&lt;/strong&gt;: Token Escrow&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;: The proposed TokenEscrow amendment to the XRP Ledger (XRPL) protocol enhances the existing Escrow functionality by enabling support for both Trustline-based tokens (IOUs) and Multi-Purpose Tokens (MPTs). This amendment introduces changes to ledger objects, transactions, and transaction processing logic to allow escrows to use IOU tokens and MPTs, while respecting issuer controls and maintaining ledger integrity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Specification Reference&lt;/strong&gt;: &lt;a href="https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0085-token-escrow" rel="noopener noreferrer"&gt;https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0085-token-escrow&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Test Scope
&lt;/h3&gt;

&lt;p&gt;This round of testing focuses solely on ensuring that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All specified functionalities are working as expected.&lt;/li&gt;
&lt;li&gt;The API handles valid and invalid input gracefully.&lt;/li&gt;
&lt;li&gt;Integration with other features is functioning correctly.&lt;/li&gt;
&lt;li&gt;Feature validation includes both RPC and WebSockets to ensure consistent behavior across different interfaces.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  3. Types of Testing Conducted
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Testing Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Functional Testing&lt;/td&gt;
&lt;td&gt;Verifying each endpoint against defined specifications to ensure it behaves as expected.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regression Testing&lt;/td&gt;
&lt;td&gt;Running relevant test cases to confirm that recent changes did not break existing functionalities.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;End to end Testing&lt;/td&gt;
&lt;td&gt;Involves testing the complete flow of a feature confirming that different components of the application, potentially developed by different teams work together as expected.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  4. Test Environment
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OS&lt;/td&gt;
&lt;td&gt;Ubuntu 22.04 (LTS)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CPU Cores&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory&lt;/td&gt;
&lt;td&gt;128 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test Framework&lt;/td&gt;
&lt;td&gt;Pytest/Shell script&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  5. Test Results Summary
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Testing Type&lt;/th&gt;
&lt;th&gt;Total Tests&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Feature Testing&lt;/td&gt;
&lt;td&gt;73&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regression Testing (rippled &amp;amp; Clio)&lt;/td&gt;
&lt;td&gt;3976&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Feature commit:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;commit 053e1af7ff4886d84a278317cbdfcdab1ecd557f
Author: Denis Angell &amp;lt;dangell@transia.co&amp;gt;
Date:   Tue Jun 3 18:51:55 2025 +0200

    Add support for XLS-85 Token Escrow (#5185)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Testcases&lt;/strong&gt;: &lt;a href="https://dev.to/ripplexdev/token-escrow-testcases-2e1e"&gt;https://dev.to/ripplexdev/token-escrow-testcases-2e1e&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Bugs Reported
&lt;/h3&gt;

&lt;p&gt;No new bugs have been reported post-feature commit.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Conclusion
&lt;/h3&gt;

&lt;p&gt;This feature has undergone comprehensive functional, regression, and end to end testing. The majority of the test cases have been executed successfully, with positive outcomes confirming that the core functionalities are working as expected.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Permissioned DEX - Testcases</title>
      <dc:creator>Ramkumar SG</dc:creator>
      <pubDate>Mon, 14 Jul 2025 22:27:48 +0000</pubDate>
      <link>https://forem.com/ripplexdev/permissioned-dex-testcases-4oj1</link>
      <guid>https://forem.com/ripplexdev/permissioned-dex-testcases-4oj1</guid>
      <description>&lt;ol&gt;
&lt;li&gt;Test Permissioned Dex offer create both parties in same domain&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create parties from different domains&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create both parties in 2 different domains&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create parties in domain and non domain with no hybrid flag set&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create parties in domain and non domain with hybrid flag set&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create parties in different domains with hybrid flag set&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create parties in same domain with hybrid flag set&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create hybrid flag set and no domain&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create with domain and offer cancel&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer cancel with domain&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create with invalid domain[-1]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create with invalid domain[37FB1D6396D6FA]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create with invalid domain[invalid domain id2]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create with invalid domain[~!@#$%^&amp;amp;*() -=+[{&amp;lt;&amp;gt;]};&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create with different domain&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create not using domain&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create after credential expiration&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create before credential expiration&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer create with empty domain id field&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex multiple offer create with domain&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex offer claim after expiration&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex xrp payment with both parties on domain&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex xrp payment with source not on domain&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex xrp payment with destination not on domain&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex xrp payment with no domain but both parties on pd&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex xrp payment with parties in domain and non domain with hybrid flag set&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex xrp payment with deposit auth set&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex xrp payment with preauth set&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex xrp payment with one party on domain and preauth set&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex xrp payment after credential expiration&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex xrp payment before credential expiration&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex payment with invalid domain[-1]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex payment with invalid domain[37FB1D6396D6FA]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex payment with invalid domain[invalid domain id2]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex payment with invalid domain[~!@#$%^&amp;amp;*() -=+[{&amp;lt;&amp;gt;]};&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex xrp payment with empty domain id field&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex xrp payment not using domain&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex make payment on offer&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex deep freeze make payment on offer&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex book offers with domain&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex book offers with invalid domain[-1]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex book offers with invalid domain[]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex book offers with invalid domain[37FB1D6396D6FA]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex book offers with invalid domain[invalid domain id3]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex book offers with invalid domain[~!@#$%^&amp;amp;*() -=+[{&amp;lt;&amp;gt;]};&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex ripple path find with domain&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex ripple path find with invalid domain[-1]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex ripple path find with invalid domain[]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex ripple path find with invalid domain[37FB1D6396D6FA]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex ripple path find with invalid domain[invalid domain id3]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex ripple path find with invalid domain[~!@#$%^&amp;amp;*() -=+[{&amp;lt;&amp;gt;]};&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex path find with domain&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex path find with invalid domain[-1]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex path find with invalid domain[]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex path find with invalid domain[37FB1D6396D6FA]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex path find with invalid domain[invalid domain id3]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex path find with invalid domain[~!@#$%^&amp;amp;*() -=+[{&amp;lt;&amp;gt;]};&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex book offers with domain&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex book offers with invalid domain[-1]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex book offers with invalid domain[]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex book offers with invalid domain[37FB1D6396D6FA]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex book offers with invalid domain[invalid domain id3]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex book offers with invalid domain[~!@#$%^&amp;amp;*() -=+[{&amp;lt;&amp;gt;]};&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex ripple path find with domain&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex ripple path find with invalid domain[-1]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex ripple path find with invalid domain[]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex ripple path find with invalid domain[37FB1D6396D6FA]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex ripple path find with invalid domain[invalid domain id3]&lt;/li&gt;
&lt;li&gt;Test Permissioned Dex ripple path find with invalid domain[~!@#$%^&amp;amp;*() -=+[{&amp;lt;&amp;gt;]};&lt;/li&gt;
&lt;li&gt;Test subscribe to order books with domain and create offer&lt;/li&gt;
&lt;li&gt;Test subscribe to book changes with domain and trigger book change&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Token Escrow - Testcases</title>
      <dc:creator>Ramkumar SG</dc:creator>
      <pubDate>Mon, 14 Jul 2025 22:27:42 +0000</pubDate>
      <link>https://forem.com/ripplexdev/token-escrow-testcases-2e1e</link>
      <guid>https://forem.com/ripplexdev/token-escrow-testcases-2e1e</guid>
      <description>&lt;ol&gt;
&lt;li&gt;Test Token Escrow create and finish iou with lsfAllowTokenEscrow flag&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with requires authorization and both parties authorized&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with requires authorization and destination unauthorized&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou after global freeze&lt;/li&gt;
&lt;li&gt;Test Token Escrow finish iou after global freeze&lt;/li&gt;
&lt;li&gt;Test Token Escrow cancel iou after global freeze&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou after individual freeze source&lt;/li&gt;
&lt;li&gt;Test Token Escrow finish iou after individual freeze source&lt;/li&gt;
&lt;li&gt;Test Token Escrow cancel iou after individual freeze source&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou after individual freeze destination&lt;/li&gt;
&lt;li&gt;Test Token Escrow finish iou after individual freeze destination&lt;/li&gt;
&lt;li&gt;Test Token Escrow cancel iou after individual freeze destination&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou after deep freeze source&lt;/li&gt;
&lt;li&gt;Test Token Escrow finish iou after deep freeze source&lt;/li&gt;
&lt;li&gt;Test Token Escrow cancel iou after deep freeze source&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou after deep freeze destination&lt;/li&gt;
&lt;li&gt;Test Token Escrow finish iou after deep freeze destination&lt;/li&gt;
&lt;li&gt;Test Token Escrow cancel iou after deep freeze destination&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou without lsfAllowTokenEscrow flag&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou and cancel&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou finishafter in past&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou cancelafter in past&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with non existent destination account&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with invalid funds[None]&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with invalid funds[]&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with bad funds[0]&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with bad funds[-1]&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with more than available&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with both finishafter and cancelafter missing&lt;/li&gt;
&lt;li&gt;Test Token Escrow finish iou by third party&lt;/li&gt;
&lt;li&gt;Test Token Escrow cancel iou by third party&lt;/li&gt;
&lt;li&gt;Test Token Escrow finish iou with incorrect owner&lt;/li&gt;
&lt;li&gt;Test Token Escrow finish iou with self as owner&lt;/li&gt;
&lt;li&gt;Test Token Escrow iou with regular key to create and finish&lt;/li&gt;
&lt;li&gt;Test Token Escrow iou with regular key to create and cancel&lt;/li&gt;
&lt;li&gt;Test Token Escrow create and finish iou with destination same as source&lt;/li&gt;
&lt;li&gt;Test Token Escrow finish iou with destination same as source after global freeze&lt;/li&gt;
&lt;li&gt;Test Token Escrow finish iou with destination same as source after deep freeze&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with same finish after and cancel after&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with no source address&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with no destination address&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with non existent source&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou cancel after before finish after&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with only cancel after&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with no trustline on source&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with no trustline on destination&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou with just base reserve&lt;/li&gt;
&lt;li&gt;Test Token Escrow create finish iou multiple escrows&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou and delete source&lt;/li&gt;
&lt;li&gt;Test Token Escrow create iou and delete destination&lt;/li&gt;
&lt;li&gt;Test Token Escrow cancel iou and delete source&lt;/li&gt;
&lt;li&gt;Test Token Escrow finish iou with destination having preauth enabled&lt;/li&gt;
&lt;li&gt;Test Token Escrow finish with different iou than in escrow create&lt;/li&gt;
&lt;li&gt;Test Token Escrow iou with offer create&lt;/li&gt;
&lt;li&gt;Test Token Escrow iou with multi sign key escrow finish cash using regular key&lt;/li&gt;
&lt;li&gt;Test Token Escrow iou with regular key escrow finish cash using multi sign key&lt;/li&gt;
&lt;li&gt;Test Token Escrow create and finish iou on tickets&lt;/li&gt;
&lt;li&gt;Test Token Escrow delegate create and finish escrow iou&lt;/li&gt;
&lt;li&gt;Test Token Escrow clawback iou after escrow finish&lt;/li&gt;
&lt;li&gt;Test account objects of Token Escrow iou create and finish&lt;/li&gt;
&lt;li&gt;Test account objects of Token Escrow iou create and cancel&lt;/li&gt;
&lt;li&gt;Test account objects of Token Escrow mpt create and finish&lt;/li&gt;
&lt;li&gt;Test account objects of Token Escrow create mpt and cancel&lt;/li&gt;
&lt;li&gt;Test tx of Token Escrow iou create and finish&lt;/li&gt;
&lt;li&gt;Test tx of Token Escrow iou create and cancel&lt;/li&gt;
&lt;li&gt;Test tx of Token Escrow mpt create and finish&lt;/li&gt;
&lt;li&gt;Test tx of Token Escrow create mpt and cancel&lt;/li&gt;
&lt;li&gt;Test ledger entry of Token Escrow iou create and finish&lt;/li&gt;
&lt;li&gt;Test ledger entry of Token Escrow iou create and cancel&lt;/li&gt;
&lt;li&gt;Test ledger entry of Token Escrow mpt create and finish&lt;/li&gt;
&lt;li&gt;Test ledger entry of Token Escrow create mpt and cancel&lt;/li&gt;
&lt;li&gt;Test mpt holders of Token Escrow mpt create and finish&lt;/li&gt;
&lt;li&gt;Test mpt holders of Token Escrow mpt create and cancel&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Account Permission Delegation - QA Test Report</title>
      <dc:creator>Ramkumar SG</dc:creator>
      <pubDate>Fri, 16 May 2025 02:18:56 +0000</pubDate>
      <link>https://forem.com/ripplexdev/account-permission-delegation-qa-test-report-3j69</link>
      <guid>https://forem.com/ripplexdev/account-permission-delegation-qa-test-report-3j69</guid>
      <description>&lt;p&gt;&lt;strong&gt;Test Report Date&lt;/strong&gt;: 5/15/2025&lt;br&gt;
&lt;strong&gt;Prepared By&lt;/strong&gt;: QA Team [&lt;a href="https://github.com/sgramkumar" rel="noopener noreferrer"&gt;sgramkumar&lt;/a&gt;, &lt;a href="https://github.com/mkunasani" rel="noopener noreferrer"&gt;mkunasani&lt;/a&gt;]&lt;br&gt;
&lt;strong&gt;Environment&lt;/strong&gt;: GitLab CI Runner (Ubuntu 22.04)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overview&lt;/strong&gt;&lt;br&gt;
This report presents the results of QA testing performed on &lt;code&gt;Account Permission Delegation&lt;/code&gt; across rippled and Clio servers.&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Feature
&lt;/h3&gt;

&lt;p&gt;This section provides a brief summary of the feature being tested. The feature under test is designed to deliver specific functionality as defined in the project specifications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Feature Name&lt;/strong&gt;: Account Permission Delegation&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;: Currently, critical issuer actions, such as authorizing trustlines, require direct control by the account's keys, hindering operational efficiency and complex use cases. By empowering account holders to selectively delegate specific permissions to other accounts, this proposal aims to enhance account usability without compromising security. This mechanism will unlock new possibilities for XRPL applications, such as multi-party workflows and advanced account management strategies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Specification Reference&lt;/strong&gt;: &lt;a href="https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0075d-permission-delegation" rel="noopener noreferrer"&gt;https://github.com/XRPLF/XRPL-Standards/tree/master/XLS-0075d-permission-delegation&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Test Scope
&lt;/h3&gt;

&lt;p&gt;This round of testing focuses solely on ensuring that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All specified functionalities are working as expected.&lt;/li&gt;
&lt;li&gt;The API handles valid and invalid input gracefully.&lt;/li&gt;
&lt;li&gt;Integration with other features is functioning correctly.&lt;/li&gt;
&lt;li&gt;Feature validation includes both RPC and WebSockets to ensure consistent behavior across different interfaces.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  3. Types of Testing Conducted
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Testing Type&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Functional Testing&lt;/td&gt;
&lt;td&gt;Verifying each endpoint against defined specifications to ensure it behaves as expected.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regression Testing&lt;/td&gt;
&lt;td&gt;Running relevant test cases to confirm that recent changes did not break existing functionalities.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;End to end Testing&lt;/td&gt;
&lt;td&gt;Involves testing the complete flow of a feature confirming that different components of the application, potentially developed by different teams work together as expected.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  4. Test Environment
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OS&lt;/td&gt;
&lt;td&gt;Ubuntu 22.04 (LTS)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CPU Cores&lt;/td&gt;
&lt;td&gt;16&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory&lt;/td&gt;
&lt;td&gt;128 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test Framework&lt;/td&gt;
&lt;td&gt;Pytest/Shell script&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h3&gt;
  
  
  5. Test Results Summary
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Testing Type&lt;/th&gt;
&lt;th&gt;Total Tests&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Feature Testing&lt;/td&gt;
&lt;td&gt;66&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regression - rippled&lt;/td&gt;
&lt;td&gt;2059&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regression - clio&lt;/td&gt;
&lt;td&gt;1227&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Feature commit:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;commit 2db279180571e4cb90ace09605df7ed2f19a1bb8
Author: yinyiqian1 &amp;lt;yqian@ripple.com&amp;gt;
Date:   Thu May 8 06:14:02 2025 -0400

    Add PermissionDelegation feature (#5354)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Testcases&lt;/strong&gt;: &lt;a href="https://dev.to/sgramkumar/account-permission-delegation-testcases-3i2c"&gt;https://dev.to/sgramkumar/account-permission-delegation-testcases-3i2c&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Bugs Reported
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Bug ID&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;th&gt;Severity&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Internal&lt;/td&gt;
&lt;td&gt;Delegating granular permission (TrustlineAuthorize) throws "tecNO_PERMISSION"&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/yinyiqian1/rippled/commit/6110424fed485ac2d4ae6ae94436a20f21275b46" rel="noopener noreferrer"&gt;Fixed&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Internal&lt;/td&gt;
&lt;td&gt;Deleting a delegated account and making a Payment results in "srcActNotFound"&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;&lt;a href="https://github.com/yinyiqian1/rippled/commit/0d80686499e1ed02b9baa86e2db5e78c88fd35b7" rel="noopener noreferrer"&gt;Fixed&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  7. Conclusion
&lt;/h3&gt;

&lt;p&gt;This feature has undergone comprehensive functional, regression, and end to end testing. The majority of the test cases have been executed successfully, with positive outcomes confirming that the core functionalities are working as expected.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Account Permission Delegation - Testcases</title>
      <dc:creator>Ramkumar SG</dc:creator>
      <pubDate>Thu, 15 May 2025 22:15:21 +0000</pubDate>
      <link>https://forem.com/ripplexdev/account-permission-delegation-testcases-3i2c</link>
      <guid>https://forem.com/ripplexdev/account-permission-delegation-testcases-3i2c</guid>
      <description>&lt;ol&gt;
&lt;li&gt;Test DelegateSet with permissions field&lt;/li&gt;
&lt;li&gt;Test DelegateSet skipped before payment&lt;/li&gt;
&lt;li&gt;Test DelegateSet without permissions field&lt;/li&gt;
&lt;li&gt;Test DelegateSet with empty list&lt;/li&gt;
&lt;li&gt;Test DelegateSet with permissions as non json&lt;/li&gt;
&lt;li&gt;Test DelegateSet by non existing account&lt;/li&gt;
&lt;li&gt;Test DelegateSet by non existing authorize account&lt;/li&gt;
&lt;li&gt;Test DelegateSet by account with deposit auth enabled&lt;/li&gt;
&lt;li&gt;Test DelegateSet and submit different transaction&lt;/li&gt;
&lt;li&gt;Test DelegateSet and submit transaction as original account&lt;/li&gt;
&lt;li&gt;Test DelegateSet with same permission&lt;/li&gt;
&lt;li&gt;Test DelegateSet to self&lt;/li&gt;
&lt;li&gt;Test DelegateSet with invalid permission[-23131]&lt;/li&gt;
&lt;li&gt;Test DelegateSet with invalid permission[58E4CD288]&lt;/li&gt;
&lt;li&gt;Test DelegateSet with invalid permission[]&lt;/li&gt;
&lt;li&gt;Test DelegateSet with invalid permission[invalid permission3]&lt;/li&gt;
&lt;li&gt;Test DelegateSet with invalid permission[~!@#$%^&amp;amp;*() -=+[{&amp;lt;&amp;gt;]};&lt;/li&gt;
&lt;li&gt;Test DelegateSet with restricted permission[DelegateSet]&lt;/li&gt;
&lt;li&gt;Test DelegateSet with restricted permission[AccountSet]&lt;/li&gt;
&lt;li&gt;Test DelegateSet with restricted permission[SignerListSet]&lt;/li&gt;
&lt;li&gt;Test DelegateSet with restricted permission[SetRegularKey]&lt;/li&gt;
&lt;li&gt;Test DelegateSet with restricted permission[AccountDelete]&lt;/li&gt;
&lt;li&gt;Test DelegateSet with 10 permissions&lt;/li&gt;
&lt;li&gt;Test DelegateSet with more than 10 permissions&lt;/li&gt;
&lt;li&gt;Test DelegateSet with multiple permissions&lt;/li&gt;
&lt;li&gt;Test DelegateSet and delete delegated account&lt;/li&gt;
&lt;li&gt;Test DelegateSet and delete delegating account&lt;/li&gt;
&lt;li&gt;Test DelegateSet and make pay self&lt;/li&gt;
&lt;li&gt;Test DelegateSet and make pay delegated account without deposit auth&lt;/li&gt;
&lt;li&gt;Test DelegateSet and make pay delegated account with deposit auth&lt;/li&gt;
&lt;li&gt;Test DelegateSet authorize multiple users&lt;/li&gt;
&lt;li&gt;Test DelegateSet and submit account set as original account&lt;/li&gt;
&lt;li&gt;Test DelegateSet and make payment&lt;/li&gt;
&lt;li&gt;Test DelegateSet and offer create&lt;/li&gt;
&lt;li&gt;Test DelegateSet and create and cash check&lt;/li&gt;
&lt;li&gt;Test DelegateSet and create and cancel check&lt;/li&gt;
&lt;li&gt;Test DelegateSet and create and finish escrow&lt;/li&gt;
&lt;li&gt;Test DelegateSet and create and cancel escrow&lt;/li&gt;
&lt;li&gt;Test DelegateSet and create and claim paychan&lt;/li&gt;
&lt;li&gt;Test DelegateSet and create and fund paychan&lt;/li&gt;
&lt;li&gt;Test DelegateSet and payment on ticket&lt;/li&gt;
&lt;li&gt;Test DelegateSet and create trustline&lt;/li&gt;
&lt;li&gt;Test DelegateSet and clawback&lt;/li&gt;
&lt;li&gt;Test DelegateSet and amm create&lt;/li&gt;
&lt;li&gt;Test DelegateSet and amm deposit&lt;/li&gt;
&lt;li&gt;Test DelegateSet multiple times with same permission&lt;/li&gt;
&lt;li&gt;Test DelegateSet remove permission add same permission&lt;/li&gt;
&lt;li&gt;Test DelegateSet change in permission&lt;/li&gt;
&lt;li&gt;Test DelegateSet and update with invalid permission[-23131]&lt;/li&gt;
&lt;li&gt;Test DelegateSet and update with invalid permission[58E4CD288]&lt;/li&gt;
&lt;li&gt;Test DelegateSet and update with invalid permission[]&lt;/li&gt;
&lt;li&gt;Test DelegateSet and update with invalid permission[invalid permission3]&lt;/li&gt;
&lt;li&gt;Test DelegateSet and update with invalid permission[~!@#$%^&amp;amp;*() -=+[{&amp;lt;&amp;gt;]};&lt;/li&gt;
&lt;li&gt;Test DelegateSet granular permission TrustlineAuthorize&lt;/li&gt;
&lt;li&gt;Test DelegateSet granular permission TrustlineFreeze and TrustlineUnfreeze individual freeze&lt;/li&gt;
&lt;li&gt;Test DelegateSet granular permission TrustlineFreeze global freeze&lt;/li&gt;
&lt;li&gt;Test DelegateSet and payment with deep freeze&lt;/li&gt;
&lt;li&gt;Test DelegateSet granular permission AccountDomainSet&lt;/li&gt;
&lt;li&gt;Test DelegateSet granular permission AccountEmailHashSet&lt;/li&gt;
&lt;li&gt;Test DelegateSet granular permission AccountMessageKeySet&lt;/li&gt;
&lt;li&gt;Test DelegateSet granular permission AccountTransferRateSet&lt;/li&gt;
&lt;li&gt;Test DelegateSet granular permission AccountTickSizeSet&lt;/li&gt;
&lt;li&gt;Test DelegateSet granular permission PaymentMint&lt;/li&gt;
&lt;li&gt;Test DelegateSet granular permission PaymentBurn&lt;/li&gt;
&lt;li&gt;Test DelegateSet granular permission MPTokenIssuanceLock and MPTokenIssuanceUnlock&lt;/li&gt;
&lt;li&gt;Test DelegateSet on account with master key disabled&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
  </channel>
</rss>
