@@ -17,6 +17,7 @@ import { MirrorNodeClientError } from '../errors/MirrorNodeClientError';
1717import { SDKClientError } from '../errors/SDKClientError' ;
1818import { CacheService } from '../services/cacheService/cacheService' ;
1919import {
20+ IAccountRequestParams ,
2021 IContractCallRequest ,
2122 IContractCallResponse ,
2223 IContractLogsResultsParams ,
@@ -43,15 +44,14 @@ export class MirrorNodeClient {
4344 private static readonly GET_CONTRACT_ENDPOINT = 'contracts/' ;
4445 private static readonly CONTRACT_RESULT_LOGS_PROPERTY = 'logs' ;
4546 private static readonly CONTRACT_ID_PLACEHOLDER = '{contractId}' ;
46- private static readonly ACCOUNT_TIMESTAMP_PROPERTY = 'timestamp ' ;
47+ private static readonly ACCOUNT_TRANSACTIONS_PROPERTY = 'transactions ' ;
4748 private static readonly CONTRACT_CALL_ENDPOINT = 'contracts/call' ;
4849 private static readonly GET_ACCOUNTS_BY_ID_ENDPOINT = 'accounts/' ;
4950 private static readonly GET_NETWORK_FEES_ENDPOINT = 'network/fees' ;
5051 private static readonly GET_TRANSACTIONS_ENDPOINT = 'transactions' ;
5152 private static readonly TRANSACTION_ID_PLACEHOLDER = '{transactionId}' ;
5253 private static readonly GET_CONTRACT_RESULT_ENDPOINT = 'contracts/results/' ;
5354 private static readonly GET_CONTRACT_RESULTS_ENDPOINT = 'contracts/results' ;
54- private static readonly ACCOUNT_TRANSACTION_TYPE_PROPERTY = 'transactiontype' ;
5555 private static readonly GET_NETWORK_EXCHANGERATE_ENDPOINT = 'network/exchangerate' ;
5656 private static readonly GET_CONTRACT_RESULT_LOGS_ENDPOINT = 'contracts/results/logs' ;
5757 private static readonly CONTRACT_ADDRESS_STATE_ENDPOINT = `contracts/${ MirrorNodeClient . ADDRESS_PLACEHOLDER } /state` ;
@@ -514,13 +514,16 @@ export class MirrorNodeClient {
514514 public async getAccount (
515515 idOrAliasOrEvmAddress : string ,
516516 requestDetails : RequestDetails ,
517+ queryParamObject : IAccountRequestParams & ILimitOrderParams = { transactions : false } ,
517518 retries ?: number ,
518- timestamp ?: string ,
519519 ) {
520- const queryParamObject = { } ;
521- this . setQueryParam ( queryParamObject , 'timestamp' , timestamp ) ;
522- this . setQueryParam ( queryParamObject , 'transactions' , 'false' ) ;
523- const queryParams = this . getQueryParams ( queryParamObject ) ;
520+ const queryParamsFiltered = Object . fromEntries (
521+ Object . entries ( queryParamObject ) . filter ( ( [ key , value ] ) => {
522+ if ( key === MirrorNodeClient . ACCOUNT_TRANSACTIONS_PROPERTY && value ) return false ;
523+ return value !== undefined && value !== '' ;
524+ } ) ,
525+ ) ;
526+ const queryParams = this . getQueryParams ( queryParamsFiltered ) ;
524527 return this . get (
525528 `${ MirrorNodeClient . GET_ACCOUNTS_BY_ID_ENDPOINT } ${ idOrAliasOrEvmAddress } ${ queryParams } ` ,
526529 MirrorNodeClient . GET_ACCOUNTS_BY_ID_ENDPOINT ,
@@ -535,32 +538,12 @@ export class MirrorNodeClient {
535538 requestDetails : RequestDetails ,
536539 numberOfTransactions : number = 1 ,
537540 ) {
538- const queryParamObject = { } ;
539- this . setQueryParam (
540- queryParamObject ,
541- MirrorNodeClient . ACCOUNT_TRANSACTION_TYPE_PROPERTY ,
542- MirrorNodeClient . ETHEREUM_TRANSACTION_TYPE ,
543- ) ;
544- this . setQueryParam ( queryParamObject , MirrorNodeClient . ACCOUNT_TIMESTAMP_PROPERTY , `lte:${ timestampTo } ` ) ;
545- this . setLimitOrderParams (
546- queryParamObject ,
547- this . getLimitOrderQueryParam ( numberOfTransactions , constants . ORDER . DESC ) ,
548- ) ; // get latest 2 transactions to infer for single case
549- const queryParams = this . getQueryParams ( queryParamObject ) ;
550-
551- return this . get (
552- `${ MirrorNodeClient . GET_ACCOUNTS_BY_ID_ENDPOINT } ${ idOrAliasOrEvmAddress } ${ queryParams } ` ,
553- MirrorNodeClient . GET_ACCOUNTS_BY_ID_ENDPOINT ,
554- requestDetails ,
555- ) ;
556- }
557-
558- public async getAccountPageLimit ( idOrAliasOrEvmAddress : string , requestDetails : RequestDetails ) {
559- return this . get (
560- `${ MirrorNodeClient . GET_ACCOUNTS_BY_ID_ENDPOINT } ${ idOrAliasOrEvmAddress } ?limit=${ constants . MIRROR_NODE_QUERY_LIMIT } ` ,
561- MirrorNodeClient . GET_ACCOUNTS_BY_ID_ENDPOINT ,
562- requestDetails ,
563- ) ;
541+ return this . getAccount ( idOrAliasOrEvmAddress , requestDetails , {
542+ transactiontype : MirrorNodeClient . ETHEREUM_TRANSACTION_TYPE ,
543+ timestamp : `lte:${ timestampTo } ` ,
544+ transactions : true ,
545+ ...this . getLimitOrderQueryParam ( numberOfTransactions , constants . ORDER . DESC ) ,
546+ } ) ;
564547 }
565548
566549 /**
@@ -1409,10 +1392,11 @@ export class MirrorNodeClient {
14091392
14101393 let data ;
14111394 try {
1395+ const params = { timestamp, transactions : false } ;
14121396 const promises = [
14131397 searchableTypes . includes ( constants . TYPE_ACCOUNT )
14141398 ? buildPromise (
1415- this . getAccount ( entityIdentifier , requestDetails , retries , timestamp ) . catch ( ( ) => {
1399+ this . getAccount ( entityIdentifier , requestDetails , params , retries ) . catch ( ( ) => {
14161400 return null ;
14171401 } ) ,
14181402 )
0 commit comments