From ce9193c434b85025ede03f14cd7b8d940b5c4501 Mon Sep 17 00:00:00 2001 From: Chenna Keshava B S Date: Tue, 14 Jan 2025 14:50:58 -0800 Subject: [PATCH] fix linter errors. Use AuthorizeCreds nested object format --- .../src/models/ledger/PermissionedDomain.ts | 11 ++----- .../xrpl/src/models/transactions/common.ts | 6 ++++ .../transactions/permissionedDomainDelete.ts | 12 +++++-- .../transactions/permissionedDomainSet.ts | 4 +-- .../src/models/transactions/transaction.ts | 10 ++++-- .../transactions/permissionedDomain.test.ts | 31 +++++++++++++------ .../models/permissionedDomainDelete.test.ts | 15 +++++++-- .../test/models/permissionedDomainSet.test.ts | 8 ++--- 8 files changed, 66 insertions(+), 31 deletions(-) diff --git a/packages/xrpl/src/models/ledger/PermissionedDomain.ts b/packages/xrpl/src/models/ledger/PermissionedDomain.ts index bdf9a244d5..36caefea76 100644 --- a/packages/xrpl/src/models/ledger/PermissionedDomain.ts +++ b/packages/xrpl/src/models/ledger/PermissionedDomain.ts @@ -1,11 +1,6 @@ -import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' +import { AuthorizeCredential } from '../common' -export interface Credential { - Credential: { - Issuer: string - CredentialType: string - } -} +import { BaseLedgerEntry, HasPreviousTxnID } from './BaseLedgerEntry' export default interface PermissionedDomain extends BaseLedgerEntry, @@ -20,5 +15,5 @@ export default interface PermissionedDomain Sequence: number - AcceptedCredentials: Credential[] + AcceptedCredentials: AuthorizeCredential[] } diff --git a/packages/xrpl/src/models/transactions/common.ts b/packages/xrpl/src/models/transactions/common.ts index 4a7abf9882..beb5664c5c 100644 --- a/packages/xrpl/src/models/transactions/common.ts +++ b/packages/xrpl/src/models/transactions/common.ts @@ -502,6 +502,12 @@ export function validateCredentialsList( } } +/** + * Check if an array of objects contains any duplicates. + * + * @param objectList - Array of objects to check for duplicates + * @returns True if duplicates exist, false otherwise + */ export function containsDuplicates(objectList: object[]): boolean { const objSet = new Set(objectList.map((obj) => JSON.stringify(obj))) return objSet.size !== objectList.length diff --git a/packages/xrpl/src/models/transactions/permissionedDomainDelete.ts b/packages/xrpl/src/models/transactions/permissionedDomainDelete.ts index 4391aaaf1b..17067b8352 100644 --- a/packages/xrpl/src/models/transactions/permissionedDomainDelete.ts +++ b/packages/xrpl/src/models/transactions/permissionedDomainDelete.ts @@ -2,7 +2,7 @@ import { BaseTransaction, isString, validateBaseTransaction, - validateRequiredField + validateRequiredField, } from './common' export interface PermissionedDomainDelete extends BaseTransaction { @@ -11,7 +11,15 @@ export interface PermissionedDomainDelete extends BaseTransaction { DomainID: string } -export function validatePermissionedDomainDelete(tx: Record): void { +/** + * Verify the form and type of a PermissionedDomainDelete transaction. + * + * @param tx - The transaction to verify. + * @throws When the transaction is malformed. + */ +export function validatePermissionedDomainDelete( + tx: Record, +): void { validateBaseTransaction(tx) validateRequiredField(tx, 'DomainID', isString) diff --git a/packages/xrpl/src/models/transactions/permissionedDomainSet.ts b/packages/xrpl/src/models/transactions/permissionedDomainSet.ts index 2f43d97579..d0ee36acfd 100644 --- a/packages/xrpl/src/models/transactions/permissionedDomainSet.ts +++ b/packages/xrpl/src/models/transactions/permissionedDomainSet.ts @@ -1,5 +1,5 @@ import { ValidationError } from '../../errors' -import { Credential } from '../ledger/PermissionedDomain' +import { AuthorizeCredential } from '../common' import { BaseTransaction, @@ -17,7 +17,7 @@ export interface PermissionedDomainSet extends BaseTransaction { TransactionType: 'PermissionedDomainSet' DomainID?: string - AcceptedCredentials: Credential[] + AcceptedCredentials: AuthorizeCredential[] } /** diff --git a/packages/xrpl/src/models/transactions/transaction.ts b/packages/xrpl/src/models/transactions/transaction.ts index d480ea63b7..43b4b3135a 100644 --- a/packages/xrpl/src/models/transactions/transaction.ts +++ b/packages/xrpl/src/models/transactions/transaction.ts @@ -74,8 +74,14 @@ import { PaymentChannelFund, validatePaymentChannelFund, } from './paymentChannelFund' -import { PermissionedDomainDelete, validatePermissionedDomainDelete } from './permissionedDomainDelete' -import { PermissionedDomainSet, validatePermissionedDomainSet } from './permissionedDomainSet' +import { + PermissionedDomainDelete, + validatePermissionedDomainDelete, +} from './permissionedDomainDelete' +import { + PermissionedDomainSet, + validatePermissionedDomainSet, +} from './permissionedDomainSet' import { SetFee } from './setFee' import { SetRegularKey, validateSetRegularKey } from './setRegularKey' import { SignerListSet, validateSignerListSet } from './signerListSet' diff --git a/packages/xrpl/test/integration/transactions/permissionedDomain.test.ts b/packages/xrpl/test/integration/transactions/permissionedDomain.test.ts index 5f9bb8af57..3e4013bc6d 100644 --- a/packages/xrpl/test/integration/transactions/permissionedDomain.test.ts +++ b/packages/xrpl/test/integration/transactions/permissionedDomain.test.ts @@ -1,8 +1,13 @@ import { stringToHex } from '@xrplf/isomorphic/utils' import { assert } from 'chai' -import { LedgerEntryRequest, PermissionedDomainDelete, PermissionedDomainSet } from '../../../src' -import PermissionedDomain, { Credential } from '../../../src/models/ledger/PermissionedDomain' +import { + LedgerEntryRequest, + PermissionedDomainDelete, + PermissionedDomainSet, + AuthorizeCredential, +} from '../../../src' +import PermissionedDomain from '../../../src/models/ledger/PermissionedDomain' import serverUrl from '../serverUrl' import { setupClient, @@ -25,18 +30,18 @@ describe('PermissionedDomainSet', function () { it( 'Lifecycle of PermissionedDomain ledger object', async () => { - const sampleCredential: Credential = { + const sampleCredential: AuthorizeCredential = { Credential: { CredentialType: stringToHex('Passport'), - Issuer: testContext.wallet.classicAddress - } + Issuer: testContext.wallet.classicAddress, + }, } // Step-1: Test the PermissionedDomainSet transaction const tx_pd_set: PermissionedDomainSet = { TransactionType: 'PermissionedDomainSet', Account: testContext.wallet.classicAddress, - AcceptedCredentials: [sampleCredential] + AcceptedCredentials: [sampleCredential], } await testTransaction(testContext.client, tx_pd_set, testContext.wallet) @@ -59,9 +64,11 @@ describe('PermissionedDomainSet', function () { const ledger_entry_request: LedgerEntryRequest = { command: 'ledger_entry', // fetch the PD `index` from the previous account_objects RPC response - index: pd.index + index: pd.index, } - const ledger_entry_result = await testContext.client.request(ledger_entry_request) + const ledger_entry_result = await testContext.client.request( + ledger_entry_request, + ) assert.deepEqual(pd, ledger_entry_result.result.node) // Step-3: Test the PDDelete transaction @@ -69,10 +76,14 @@ describe('PermissionedDomainSet', function () { TransactionType: 'PermissionedDomainDelete', Account: testContext.wallet.classicAddress, // fetch the PD `index` from the previous account_objects RPC response - DomainID: pd.index + DomainID: pd.index, } - await testTransaction(testContext.client, tx_pd_delete, testContext.wallet) + await testTransaction( + testContext.client, + tx_pd_delete, + testContext.wallet, + ) }, TIMEOUT, ) diff --git a/packages/xrpl/test/models/permissionedDomainDelete.test.ts b/packages/xrpl/test/models/permissionedDomainDelete.test.ts index dd651dc6ca..801a8817bb 100644 --- a/packages/xrpl/test/models/permissionedDomainDelete.test.ts +++ b/packages/xrpl/test/models/permissionedDomainDelete.test.ts @@ -15,7 +15,8 @@ describe('PermissionedDomainDelete', function () { tx = { TransactionType: 'PermissionedDomainDelete', Account: 'rfmDuhDyLGgx94qiwf3YF8BUV5j6KSvE8', - DomainID: 'D88930B33C2B6831660BFD006D91FF100011AD4E67CBB78B460AF0A215103737', + DomainID: + 'D88930B33C2B6831660BFD006D91FF100011AD4E67CBB78B460AF0A215103737', } as any }) @@ -27,14 +28,22 @@ describe('PermissionedDomainDelete', function () { it(`throws w/ missing field DomainID`, function () { delete tx.DomainID const errorMessage = 'PermissionedDomainDelete: missing field DomainID' - assert.throws(() => validatePermissionedDomainDelete(tx), ValidationError, errorMessage) + assert.throws( + () => validatePermissionedDomainDelete(tx), + ValidationError, + errorMessage, + ) assert.throws(() => validate(tx), ValidationError, errorMessage) }) it(`throws w/ invalid DomainID`, function () { tx.DomainID = 1234 const errorMessage = 'PermissionedDomainDelete: invalid field DomainID' - assert.throws(() => validatePermissionedDomainDelete(tx), ValidationError, errorMessage) + assert.throws( + () => validatePermissionedDomainDelete(tx), + ValidationError, + errorMessage, + ) assert.throws(() => validate(tx), ValidationError, errorMessage) }) }) diff --git a/packages/xrpl/test/models/permissionedDomainSet.test.ts b/packages/xrpl/test/models/permissionedDomainSet.test.ts index 1658276f97..34482b22bd 100644 --- a/packages/xrpl/test/models/permissionedDomainSet.test.ts +++ b/packages/xrpl/test/models/permissionedDomainSet.test.ts @@ -1,8 +1,7 @@ import { stringToHex } from '@xrplf/isomorphic/dist/utils' import { assert } from 'chai' -import { validate, ValidationError } from '../../src' -import { Credential } from '../../src/models/ledger/PermissionedDomain' +import { AuthorizeCredential, validate, ValidationError } from '../../src' import { validatePermissionedDomainSet } from '../../src/models/transactions/permissionedDomainSet' /** @@ -12,7 +11,7 @@ import { validatePermissionedDomainSet } from '../../src/models/transactions/per */ describe('PermissionedDomainSet', function () { let tx - const sampleCredential: Credential = { + const sampleCredential: AuthorizeCredential = { Credential: { CredentialType: stringToHex('Passport'), Issuer: 'rfmDuhDyLGgx94qiwf3YF8BUV5j6KSvE8', @@ -35,7 +34,8 @@ describe('PermissionedDomainSet', function () { }) it(`throws with invalid field DomainID`, function () { - tx.DomainID = 1234 // DomainID is expected to be a string + // DomainID is expected to be a string + tx.DomainID = 1234 const errorMessage = 'PermissionedDomainSet: invalid field DomainID' assert.throws( () => validatePermissionedDomainSet(tx),