| Category | Test Count |
|---|---|
| Core Functional | 112 |
| Adversarial / Security | 48 |
| Cross-Feature Interactions | 19 |
| Total | 179 |
Core Functional
- Test DelegateSet with permissions field
- Test DelegateSet skipped before payment
- Test DelegateSet without permissions field
- Test DelegateSet with empty list
- Test DelegateSet with permissions as non-JSON
- Test DelegateSet by non-existing account
- Test DelegateSet by non-existing authorize account
- Test DelegateSet by account with deposit auth enabled
- Test DelegateSet and submit different transaction
- Test DelegateSet and submit transaction as original account
- Test DelegateSet with same permission
- Test DelegateSet to self
- Test DelegateSet with invalid permission
- Test DelegateSet with restricted permission
- Test DelegateSet with 10 permissions
- Test DelegateSet with more than 10 permissions
- Test DelegateSet with multiple permissions
- Test DelegateSet and delete delegated account
- Test DelegateSet and delete delegating account
- Test DelegateSet and make pay self
- Test DelegateSet and make pay delegated account without deposit auth
- Test DelegateSet and make pay delegated account with deposit auth
- Test DelegateSet authorize multiple users
- Test DelegateSet and submit AccountSet as original account
- Test DelegateSet and make payment
- Test DelegateSet and offer create
- Test DelegateSet and create and cash check
- Test DelegateSet and create and cancel check
- Test DelegateSet and create and finish escrow
- Test DelegateSet and create and cancel escrow
- Test DelegateSet and create and claim paychan
- Test DelegateSet and create and fund paychan
- Test DelegateSet and payment on ticket
- Test DelegateSet and create trustline
- Test DelegateSet and clawback
- Test DelegateSet and AMM create
- Test DelegateSet and AMM deposit
- Test DelegateSet multiple times with same permission
- Test DelegateSet remove permission add same permission
- Test DelegateSet change in permission
- Test DelegateSet and update with invalid permission
- Test DelegateSet granular permission TrustlineAuthorize
- Test DelegateSet granular permission TrustlineFreeze and TrustlineUnfreeze individual freeze
- Test DelegateSet granular permission TrustlineFreeze global freeze
- Test DelegateSet and payment with deep freeze
- Test DelegateSet granular permission AccountDomainSet
- Test DelegateSet granular permission AccountEmailHashSet
- Test DelegateSet granular permission AccountMessageKeySet
- Test DelegateSet granular permission AccountTransferRateSet
- Test DelegateSet granular permission AccountTickSizeSet
- Test DelegateSet granular permission PaymentMint
- Test DelegateSet granular permission PaymentBurn
- Test DelegateSet granular permission MPTokenIssuanceLock and MPTokenIssuanceUnlock
- Test DelegateSet on account with master key disabled
- Test DelegateSet with empty Permissions revokes delegate authority
- Test DelegateSet with NotDelegable permission rejected
- Test DelegateSet with empty Permissions when no existing Delegate object is rejected
- Test Delegate object appears in authorized account's account_objects
- Test Delegated payment with basic permission succeeds
- Test Delegated unauthorized tx type returns terNO_DELEGATE_PERMISSION
- Test Delegated payment consumes delegate fee, not source fee
- Test AccountDelete on authorized account removes Delegate from both directories
- Test Token escrow — delegate create and finish escrow (IOU)
- Test Token escrow — delegate create and finish escrow (MPT)
- Test Circular delegation — positive scenario
- Test Circular delegation — negative scenario
- Test Chain delegation — positive scenario
- Test Chain delegation — negative scenario
- Test Delegated account with multiple signers and master key disabled
- Test Delegated account with multiple signers and master key not disabled
- Test Authorized account with multiple signers and master key disabled
- Test Authorized account with multiple signers and master key not disabled
- Test DelegateSet with base reserve on delegating account
- Test DelegateSet with base reserve on delegated account
- Test DelegateSet with no funds for fee on delegated account
- Test Delegation to Batch tfAllOrNothing — all payments (outer transaction)
- Test Delegation to Batch tfAllOrNothing — all payments (inner transaction)
- Test Delegate AccountSet WalletLocator granular permission
- Test Delegate AccountSet NFTokenMinter granular permission
- Test Delegate AccountSet combined field and flag
- Test Delegate AccountSet ClearFlag granular permission
- Test Delegate AccountSet SetFlag with granular permission
- Test Delegate granular permission exceeds scope
- Test Delegate multiple granular permissions with no full AccountSet
- Test Delegate AccountSet restricted field returns correct error code
- Test Delegate transaction with fee greater than account balance
- Test Delegate payment amount exceeds balance
- Test Delegate reserve manipulation via trustline creation
- Test Delegate using regular key instead of master
- Test Delegator regular key change during active delegation
- Test Batch tfAllOrNothing with payment and DelegateSet
- Test DelegateSet with Delegate field set
- Test Delegate trustline freeze without permission
- Test Delegate bypass RequireAuth flag
- Test Delegate permission change removes old permission
- Test Delegate payment with deposit auth bypass attempt
- Test Delegate offer crossing with unauthorized account
- Test Delegate conflicting granular permissions
- Test Delegate all granular AccountSet permissions — no flag access
- Test Delegate with zero-amount payment
- Test Delegate multi-signed transaction
- Test Delegate with multi-signers on delegated and authorized account
- Test Payment offline signing
- Test Delegate payment with offline signing
- Test Delegate payment by third party with offline signing
- Test account_tx delegate_filter=actor returns delegated txns
- Test account_tx delegate_filter=authorizer returns delegated txns
- Test account_tx counter_party narrows results
- Test account_tx delegate_filter=actor returns empty for authorizer
- Test account_tx counter_party no-match returns empty
- Test account_tx with malformed delegate returns invalidParams
- Test account_tx with malformed counter_party returns actMalformed
Adversarial / Security
- Test DelegateSet replaces existing permissions (silently revoking dropped)
- Test DelegateSet to self rejected with temMALFORMED
- Test DelegateSet with duplicate PermissionValues rejected
- Test DelegateSet with eleven permissions rejected
- Test 3.2.0 Vault and Batch tx types are not delegable
- Test 3.2.0 Loan tx types are not delegable
- Test Delegated Batch outer returns terNO_DELEGATE_PERMISSION
- Test Account SignerList cannot authorize delegated tx (returns tefNOT_MULTI_SIGNING)
- Test Delegate SignerList can authorize delegated tx
- Test Delegated tx signed by delegate's master key succeeds
- Test PR #7064 — delegate sign_for on own delegated tx returns invalidParams
- Test PR #7064 — delegator can be signer when in delegate's SignerList
- Test Delegate to self rejected with temMALFORMED
- Test DelegateSet with duplicate permission rejected
- Test DelegateSet with unknown PermissionValue rejected
- Test DelegateSet to non-existent account returns tecNO_TARGET
- Test Batch transaction type is not delegable
- Test Delegated tx after revocation returns terNO_DELEGATE_PERMISSION
- Test Delegated payment works after master key disabled
- Test Delegate field set to own account rejected with temBAD_SIGNER
- Test Delegated no-op AccountSet rejected
- Test Delegated no-op TrustSet rejected
- Test Delegated SignerListSet rejected at preflight
- Test Delegated SetRegularKey rejected at preflight
- Test AccountSet WalletSize field rejected under granular AccountDomainSet delegate
- Test TrustlineFreeze rejects disallowed flag tfSetNoRipple
- Test TrustlineFreeze rejects disallowed field QualityIn
- Test PaymentBurn rejects disallowed flag tfPartialPayment
- Test PaymentBurn rejects disallowed field Paths
- Test Union of two granular permissions still forbids fields ungranted by either
- Test Union of Freeze and Unfreeze widens allowed flags but not fields
- Test AccountDomainSet delegate cannot smuggle SetFlag asfRequireAuth
- Test AccountDomainSet delegate cannot smuggle SetFlag asfDisableMaster
- Test AccountDomainSet delegate cannot smuggle NFTokenMinter via WalletSize
- Test MPTokenIssuanceLock rejects disallowed field DomainID
- Test MPTokenIssuanceLock rejects unlock flag
- Test PaymentBurn delegate cannot flip issuer to mint
- Test PaymentMint delegate cannot flip issuer to burn
- Test PaymentBurn delegate rejected when holder balance is zero
- Test PaymentMint delegate rejected when destination lacks trustline
- Test Granular Mint/Burn do not authorize XRP payment
- Test DelegateSet rejects truncating PermissionValue
- Test PR #6126 — actor filter ignores regular-key-signed payment
- Test PR #6126 — actor filter ignores multi-sig-signed non-delegated payment
- Test PR #6126 — delegate marker without delegate param rejected
- Test PR #6126 — non-delegate marker with delegate param rejected
- Test PR #6126 — delegated tx with multi-signed delegatee matches both filters
- Test PR #6126 — delegate actor filter paginates all delegated txns
Cross-Feature Interactions
- Test Delegate as outer account executes delegated inner (succeeds)
- Test Delegate as BatchSigner authorizes delegated inner (succeeds)
- Test Delegated inner without BatchSigner rejected with temBAD_SIGNER
- Test Delegated inner signed by account holder rejected with temBAD_SIGNER
- Test Delegate without permission — inner fails and Batch rolls back
- Test Delegate ConfidentialMPTSend — basic
- Test Delegate ConfidentialMPTSend — missing permission
- Test Delegate ConfidentialMPTConvert
- Test Delegate ConfidentialMPTMergeInbox
- Test Delegate ConfidentialMPTConvertBack
- Test Delegate ConfidentialMPTClawback by issuer
- Test Delegate — send permission only cannot ConvertBack
- Test Delegate — ConvertBack permission only cannot send
- Test Delegate ConfidentialMPTClawback with non-issuer account rejected at preflight
- Test Delegate — revoked permission blocks subsequent use
- Test Delegate — self-delegation rejected
- Test Delegate — ConfidentialMPTSend with proof over delegate keys rejected
- Test PR #7640 — delegated payment rejected with telCAN_NOT_QUEUE when ledger full
- Test PR #7640 — delegated payment succeeds when paying open ledger fee
Top comments (0)