evernode-js-client 0.6.35 → 0.6.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +188 -107
 - package/package.json +1 -1
 
    
        package/index.js
    CHANGED
    
    | 
         @@ -52488,7 +52488,7 @@ class BaseEvernodeClient { 
     | 
|
| 
       52488 
52488 
     | 
    
         
             
                 * Get the hosts registered in Evernode.
         
     | 
| 
       52489 
52489 
     | 
    
         
             
                 * @returns The list of hosts. 
         
     | 
| 
       52490 
52490 
     | 
    
         
             
                 */
         
     | 
| 
       52491 
     | 
    
         
            -
                async getAllHostsFromLedger() {
         
     | 
| 
      
 52491 
     | 
    
         
            +
                async getAllHostsFromLedger(skipGetDomain = false) {
         
     | 
| 
       52492 
52492 
     | 
    
         
             
                    const states = await this.getHookStates();
         
     | 
| 
       52493 
52493 
     | 
    
         
             
                    let hosts = {};
         
     | 
| 
       52494 
52494 
     | 
    
         | 
| 
         @@ -52508,7 +52508,9 @@ class BaseEvernodeClient { 
     | 
|
| 
       52508 
52508 
     | 
    
         
             
                    const curMomentStartIdx = await this.getMomentStartIndex();
         
     | 
| 
       52509 
52509 
     | 
    
         
             
                    await Promise.all((hostList).map(async host => {
         
     | 
| 
       52510 
52510 
     | 
    
         
             
                        const hostAcc = new XrplAccount(host.address, null, { xrplApi: this.xrplApi });
         
     | 
| 
       52511 
     | 
    
         
            -
                         
     | 
| 
      
 52511 
     | 
    
         
            +
                        if (!skipGetDomain) {
         
     | 
| 
      
 52512 
     | 
    
         
            +
                            host.domain = await hostAcc.getDomain();
         
     | 
| 
      
 52513 
     | 
    
         
            +
                        }
         
     | 
| 
       52512 
52514 
     | 
    
         
             
                        host.active = (host.lastHeartbeatIndex > (this.config.hostHeartbeatFreq * this.config.momentSize) ?
         
     | 
| 
       52513 
52515 
     | 
    
         
             
                            (host.lastHeartbeatIndex >= (curMomentStartIdx - (this.config.hostHeartbeatFreq * this.config.momentSize))) :
         
     | 
| 
       52514 
52516 
     | 
    
         
             
                            (host.lastHeartbeatIndex > 0));
         
     | 
| 
         @@ -53315,10 +53317,11 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53315 
53317 
     | 
    
         
             
                    let attempt = 0;
         
     | 
| 
       53316 
53318 
     | 
    
         
             
                    let feeUplift = 0;
         
     | 
| 
       53317 
53319 
     | 
    
         
             
                    const maxAttempts = (options?.maxRetryAttempts || 1);
         
     | 
| 
      
 53320 
     | 
    
         
            +
                    let submissionRef = options.submissionRef || {};
         
     | 
| 
       53318 
53321 
     | 
    
         
             
                    while (attempt <= maxAttempts) {
         
     | 
| 
       53319 
53322 
     | 
    
         
             
                        attempt++;
         
     | 
| 
       53320 
53323 
     | 
    
         
             
                        try {
         
     | 
| 
       53321 
     | 
    
         
            -
                            return await callback(feeUplift);
         
     | 
| 
      
 53324 
     | 
    
         
            +
                            return await callback(feeUplift, submissionRef);
         
     | 
| 
       53322 
53325 
     | 
    
         
             
                        }
         
     | 
| 
       53323 
53326 
     | 
    
         
             
                        catch (e) {
         
     | 
| 
       53324 
53327 
     | 
    
         
             
                            if (attempt == maxAttempts || e.code === "tecDUPLICATE" || e.code === "tefPAST_SEQ" || e.code === "tefALREADY")
         
     | 
| 
         @@ -53329,6 +53332,16 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53329 
53332 
     | 
    
         
             
                            console.error(e);
         
     | 
| 
       53330 
53333 
     | 
    
         
             
                            console.error(`Submission attempt ${attempt} failed. Retrying...`);
         
     | 
| 
       53331 
53334 
     | 
    
         
             
                            await new Promise(resolve => setTimeout(resolve, TX_RETRY_INTERVAL));
         
     | 
| 
      
 53335 
     | 
    
         
            +
             
     | 
| 
      
 53336 
     | 
    
         
            +
                            // Check again wether the transaction is validated before retry.
         
     | 
| 
      
 53337 
     | 
    
         
            +
                            const txHash = submissionRef?.submissionResult?.result?.tx_json?.hash;
         
     | 
| 
      
 53338 
     | 
    
         
            +
                            if (txHash) {
         
     | 
| 
      
 53339 
     | 
    
         
            +
                                const txResponse = await this.xrplApi.getTransactionValidatedResults(txHash);
         
     | 
| 
      
 53340 
     | 
    
         
            +
                                if (txResponse && txResponse.code === "tesSUCCESS") {
         
     | 
| 
      
 53341 
     | 
    
         
            +
                                    console.log('Transaction is validated and success, Retry skipped!')
         
     | 
| 
      
 53342 
     | 
    
         
            +
                                    return txResponse;
         
     | 
| 
      
 53343 
     | 
    
         
            +
                                }
         
     | 
| 
      
 53344 
     | 
    
         
            +
                            }
         
     | 
| 
       53332 
53345 
     | 
    
         
             
                        }
         
     | 
| 
       53333 
53346 
     | 
    
         
             
                    }
         
     | 
| 
       53334 
53347 
     | 
    
         
             
                }
         
     | 
| 
         @@ -53353,15 +53366,15 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53353 
53366 
     | 
    
         
             
                        { ...accountSetFields, Domain: domain } : accountSetFields;
         
     | 
| 
       53354 
53367 
     | 
    
         | 
| 
       53355 
53368 
     | 
    
         
             
                    if (Object.keys(accountSetFields).length !== 0) {
         
     | 
| 
       53356 
     | 
    
         
            -
                        await this.#submitWithRetry(async (feeUplift) => {
         
     | 
| 
       53357 
     | 
    
         
            -
                            await this.xrplAcc.setAccountFields(accountSetFields, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift });
         
     | 
| 
       53358 
     | 
    
         
            -
                        }, options.retryOptions);
         
     | 
| 
      
 53369 
     | 
    
         
            +
                        await this.#submitWithRetry(async (feeUplift, submissionRef) => {
         
     | 
| 
      
 53370 
     | 
    
         
            +
                            await this.xrplAcc.setAccountFields(accountSetFields, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift, submissionRef: submissionRef });
         
     | 
| 
      
 53371 
     | 
    
         
            +
                        }, { ...(options.retryOptions ? options.retryOptions : {}), submissionRef: options.submissionRef });
         
     | 
| 
       53359 
53372 
     | 
    
         
             
                    }
         
     | 
| 
       53360 
53373 
     | 
    
         | 
| 
       53361 
53374 
     | 
    
         
             
                    if (trustLines.length === 0) {
         
     | 
| 
       53362 
     | 
    
         
            -
                        await this.#submitWithRetry(async (feeUplift) => {
         
     | 
| 
       53363 
     | 
    
         
            -
                            await this.xrplAcc.setTrustLine(EvernodeConstants.EVR, this.config.evrIssuerAddress, "99999999999999", null, null, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift });
         
     | 
| 
       53364 
     | 
    
         
            -
                        }, options.retryOptions);
         
     | 
| 
      
 53375 
     | 
    
         
            +
                        await this.#submitWithRetry(async (feeUplift, submissionRef) => {
         
     | 
| 
      
 53376 
     | 
    
         
            +
                            await this.xrplAcc.setTrustLine(EvernodeConstants.EVR, this.config.evrIssuerAddress, "99999999999999", null, null, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift, submissionRef: submissionRef });
         
     | 
| 
      
 53377 
     | 
    
         
            +
                        }, { ...(options.retryOptions ? options.retryOptions : {}), submissionRef: options.submissionRef });
         
     | 
| 
       53365 
53378 
     | 
    
         
             
                    }
         
     | 
| 
       53366 
53379 
     | 
    
         
             
                }
         
     | 
| 
       53367 
53380 
     | 
    
         | 
| 
         @@ -53424,9 +53437,9 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53424 
53437 
     | 
    
         
             
                    const uri = uriBuf.toString('base64');
         
     | 
| 
       53425 
53438 
     | 
    
         | 
| 
       53426 
53439 
     | 
    
         
             
                    try {
         
     | 
| 
       53427 
     | 
    
         
            -
                        await this.#submitWithRetry(async (feeUplift) => {
         
     | 
| 
       53428 
     | 
    
         
            -
                            await this.xrplAcc.mintURIToken(uri, null, { isBurnable: true, isHexUri: false }, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift });
         
     | 
| 
       53429 
     | 
    
         
            -
                        }, options.retryOptions);
         
     | 
| 
      
 53440 
     | 
    
         
            +
                        await this.#submitWithRetry(async (feeUplift, submissionRef) => {
         
     | 
| 
      
 53441 
     | 
    
         
            +
                            await this.xrplAcc.mintURIToken(uri, null, { isBurnable: true, isHexUri: false }, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift, submissionRef: submissionRef });
         
     | 
| 
      
 53442 
     | 
    
         
            +
                        }, { ...(options.retryOptions ? options.retryOptions : {}), submissionRef: options.submissionRef });
         
     | 
| 
       53430 
53443 
     | 
    
         
             
                    } catch (e) {
         
     | 
| 
       53431 
53444 
     | 
    
         
             
                        // Re-minting the URIToken after burning that sold URIToken.
         
     | 
| 
       53432 
53445 
     | 
    
         
             
                        if (e.code === "tecDUPLICATE") {
         
     | 
| 
         @@ -53442,12 +53455,12 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53442 
53455 
     | 
    
         
             
                    if (!uriToken)
         
     | 
| 
       53443 
53456 
     | 
    
         
             
                        throw "Offer lease NFT creation error.";
         
     | 
| 
       53444 
53457 
     | 
    
         | 
| 
       53445 
     | 
    
         
            -
                    await this.#submitWithRetry(async (feeUplift) => {
         
     | 
| 
      
 53458 
     | 
    
         
            +
                    await this.#submitWithRetry(async (feeUplift, submissionRef) => {
         
     | 
| 
       53446 
53459 
     | 
    
         
             
                        await this.xrplAcc.sellURIToken(uriToken.index,
         
     | 
| 
       53447 
53460 
     | 
    
         
             
                            leaseAmount.toString(),
         
     | 
| 
       53448 
53461 
     | 
    
         
             
                            EvernodeConstants.EVR,
         
     | 
| 
       53449 
     | 
    
         
            -
                            this.config.evrIssuerAddress, null, null, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift });
         
     | 
| 
       53450 
     | 
    
         
            -
                    }, options.retryOptions);
         
     | 
| 
      
 53462 
     | 
    
         
            +
                            this.config.evrIssuerAddress, null, null, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift, submissionRef: submissionRef });
         
     | 
| 
      
 53463 
     | 
    
         
            +
                    }, { ...(options.retryOptions ? options.retryOptions : {}), submissionRef: options.submissionRef });
         
     | 
| 
       53451 
53464 
     | 
    
         
             
                }
         
     | 
| 
       53452 
53465 
     | 
    
         | 
| 
       53453 
53466 
     | 
    
         
             
                /**
         
     | 
| 
         @@ -53509,9 +53522,9 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53509 
53522 
     | 
    
         
             
                    const uri = uriBuf.toString('base64');
         
     | 
| 
       53510 
53523 
     | 
    
         | 
| 
       53511 
53524 
     | 
    
         
             
                    try {
         
     | 
| 
       53512 
     | 
    
         
            -
                        await this.#submitWithRetry(async (feeUplift) => {
         
     | 
| 
       53513 
     | 
    
         
            -
                            await this.xrplAcc.mintURIToken(uri, null, { isBurnable: true, isHexUri: false }, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift });
         
     | 
| 
       53514 
     | 
    
         
            -
                        }, options.retryOptions);
         
     | 
| 
      
 53525 
     | 
    
         
            +
                        await this.#submitWithRetry(async (feeUplift, submissionRef) => {
         
     | 
| 
      
 53526 
     | 
    
         
            +
                            await this.xrplAcc.mintURIToken(uri, null, { isBurnable: true, isHexUri: false }, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift, submissionRef: submissionRef });
         
     | 
| 
      
 53527 
     | 
    
         
            +
                        }, { ...(options.retryOptions ? options.retryOptions : {}), submissionRef: options.submissionRef });
         
     | 
| 
       53515 
53528 
     | 
    
         
             
                    } catch (e) {
         
     | 
| 
       53516 
53529 
     | 
    
         
             
                        // Re-minting the URIToken after burning that sold URIToken.
         
     | 
| 
       53517 
53530 
     | 
    
         
             
                        if (e.code === "tecDUPLICATE") {
         
     | 
| 
         @@ -53530,11 +53543,11 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53530 
53543 
     | 
    
         
             
                 * @param {number} leaseAmount Amount (EVRs) of the lease offer.
         
     | 
| 
       53531 
53544 
     | 
    
         
             
                 */
         
     | 
| 
       53532 
53545 
     | 
    
         
             
                async offerMintedLease(uriTokenId, leaseAmount, options = {}) {
         
     | 
| 
       53533 
     | 
    
         
            -
                    await this.#submitWithRetry(async (feeUplift) => {
         
     | 
| 
      
 53546 
     | 
    
         
            +
                    await this.#submitWithRetry(async (feeUplift, submissionRef) => {
         
     | 
| 
       53534 
53547 
     | 
    
         
             
                        await this.xrplAcc.sellURIToken(uriTokenId, leaseAmount.toString(),
         
     | 
| 
       53535 
53548 
     | 
    
         
             
                            EvernodeConstants.EVR,
         
     | 
| 
       53536 
     | 
    
         
            -
                            this.config.evrIssuerAddress, null, null, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift });
         
     | 
| 
       53537 
     | 
    
         
            -
                    }, options.retryOptions);
         
     | 
| 
      
 53549 
     | 
    
         
            +
                            this.config.evrIssuerAddress, null, null, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift, submissionRef: submissionRef });
         
     | 
| 
      
 53550 
     | 
    
         
            +
                    }, { ...(options.retryOptions ? options.retryOptions : {}), submissionRef: options.submissionRef });
         
     | 
| 
       53538 
53551 
     | 
    
         
             
                }
         
     | 
| 
       53539 
53552 
     | 
    
         | 
| 
       53540 
53553 
     | 
    
         
             
                /**
         
     | 
| 
         @@ -53542,9 +53555,9 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53542 
53555 
     | 
    
         
             
                 * @param {string} uriTokenId Hex URI token id of the lease.
         
     | 
| 
       53543 
53556 
     | 
    
         
             
                 */
         
     | 
| 
       53544 
53557 
     | 
    
         
             
                async expireLease(uriTokenId, options = {}) {
         
     | 
| 
       53545 
     | 
    
         
            -
                    await this.#submitWithRetry(async (feeUplift) => {
         
     | 
| 
       53546 
     | 
    
         
            -
                        await this.xrplAcc.burnURIToken(uriTokenId, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift });
         
     | 
| 
       53547 
     | 
    
         
            -
                    }, options.retryOptions);
         
     | 
| 
      
 53558 
     | 
    
         
            +
                    await this.#submitWithRetry(async (feeUplift, submissionRef) => {
         
     | 
| 
      
 53559 
     | 
    
         
            +
                        await this.xrplAcc.burnURIToken(uriTokenId, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift, submissionRef: submissionRef });
         
     | 
| 
      
 53560 
     | 
    
         
            +
                    }, { ...(options.retryOptions ? options.retryOptions : {}), submissionRef: options.submissionRef });
         
     | 
| 
       53548 
53561 
     | 
    
         
             
                }
         
     | 
| 
       53549 
53562 
     | 
    
         | 
| 
       53550 
53563 
     | 
    
         
             
                /**
         
     | 
| 
         @@ -53564,9 +53577,9 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53564 
53577 
     | 
    
         
             
                            const sellOffer = (await registryAcc.getURITokens()).find(o => o.index == regInfo.uriTokenId && o.Amount);
         
     | 
| 
       53565 
53578 
     | 
    
         
             
                            console.log('Pending sell offer found.')
         
     | 
| 
       53566 
53579 
     | 
    
         
             
                            if (sellOffer) {
         
     | 
| 
       53567 
     | 
    
         
            -
                                await this.#submitWithRetry(async (feeUplift) => {
         
     | 
| 
       53568 
     | 
    
         
            -
                                    await this.xrplAcc.buyURIToken(sellOffer, null, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift });
         
     | 
| 
       53569 
     | 
    
         
            -
                                }, options.retryOptions);
         
     | 
| 
      
 53580 
     | 
    
         
            +
                                await this.#submitWithRetry(async (feeUplift, submissionRef) => {
         
     | 
| 
      
 53581 
     | 
    
         
            +
                                    await this.xrplAcc.buyURIToken(sellOffer, null, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift, submissionRef: submissionRef });
         
     | 
| 
      
 53582 
     | 
    
         
            +
                                }, { ...(options.retryOptions ? options.retryOptions : {}), submissionRef: options.submissionRef });
         
     | 
| 
       53570 
53583 
     | 
    
         
             
                                console.log("Registration was successfully completed after acquiring the NFT.");
         
     | 
| 
       53571 
53584 
     | 
    
         
             
                                return await this.isRegistered();
         
     | 
| 
       53572 
53585 
     | 
    
         
             
                            }
         
     | 
| 
         @@ -53627,9 +53640,9 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53627 
53640 
     | 
    
         
             
                    if (existingLeaseURITokens) {
         
     | 
| 
       53628 
53641 
     | 
    
         
             
                        console.log("Burning unsold URITokens related to the previous leases.");
         
     | 
| 
       53629 
53642 
     | 
    
         
             
                        for (const uriToken of existingLeaseURITokens) {
         
     | 
| 
       53630 
     | 
    
         
            -
                            await this.#submitWithRetry(async (feeUplift) => {
         
     | 
| 
       53631 
     | 
    
         
            -
                                await this.xrplAcc.burnURIToken(uriToken.index, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift });
         
     | 
| 
       53632 
     | 
    
         
            -
                            }, options.retryOptions);
         
     | 
| 
      
 53643 
     | 
    
         
            +
                            await this.#submitWithRetry(async (feeUplift, submissionRef) => {
         
     | 
| 
      
 53644 
     | 
    
         
            +
                                await this.xrplAcc.burnURIToken(uriToken.index, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift, submissionRef: submissionRef });
         
     | 
| 
      
 53645 
     | 
    
         
            +
                            }, { ...(options.retryOptions ? options.retryOptions : {}), submissionRef: options.submissionRef });
         
     | 
| 
       53633 
53646 
     | 
    
         
             
                        }
         
     | 
| 
       53634 
53647 
     | 
    
         
             
                    }
         
     | 
| 
       53635 
53648 
     | 
    
         | 
| 
         @@ -53669,7 +53682,7 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53669 
53682 
     | 
    
         
             
                    Buffer.from(description.substr(0, 26), "utf-8").copy(paramBuf, HOST_DESCRIPTION_PARAM_OFFSET);
         
     | 
| 
       53670 
53683 
     | 
    
         
             
                    Buffer.from(emailAddress.substr(0, 40), "utf-8").copy(paramBuf, HOST_EMAIL_ADDRESS_PARAM_OFFSET);
         
     | 
| 
       53671 
53684 
     | 
    
         | 
| 
       53672 
     | 
    
         
            -
                    const tx = await this.#submitWithRetry(async (feeUplift) => {
         
     | 
| 
      
 53685 
     | 
    
         
            +
                    const tx = await this.#submitWithRetry(async (feeUplift, submissionRef) => {
         
     | 
| 
       53673 
53686 
     | 
    
         
             
                        return await this.xrplAcc.makePayment(this.config.registryAddress,
         
     | 
| 
       53674 
53687 
     | 
    
         
             
                            (transferredNFTokenId) ? EvernodeConstants.NOW_IN_EVRS : this.config.hostRegFee.toString(),
         
     | 
| 
       53675 
53688 
     | 
    
         
             
                            EvernodeConstants.EVR,
         
     | 
| 
         @@ -53681,10 +53694,10 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53681 
53694 
     | 
    
         
             
                                    { name: HookParamKeys.PARAM_EVENT_DATA1_KEY, value: paramBuf.toString('hex').toUpperCase() }
         
     | 
| 
       53682 
53695 
     | 
    
         
             
                                ],
         
     | 
| 
       53683 
53696 
     | 
    
         
             
                                maxLedgerIndex: this.#getMaxLedgerSequence(),
         
     | 
| 
       53684 
     | 
    
         
            -
                                feeUplift: feeUplift,
         
     | 
| 
      
 53697 
     | 
    
         
            +
                                feeUplift: feeUplift, submissionRef: submissionRef,
         
     | 
| 
       53685 
53698 
     | 
    
         
             
                                ...options.transactionOptions
         
     | 
| 
       53686 
53699 
     | 
    
         
             
                            });
         
     | 
| 
       53687 
     | 
    
         
            -
                    }, options.retryOptions);
         
     | 
| 
      
 53700 
     | 
    
         
            +
                    }, { ...(options.retryOptions ? options.retryOptions : {}), submissionRef: options.submissionRef });
         
     | 
| 
       53688 
53701 
     | 
    
         | 
| 
       53689 
53702 
     | 
    
         
             
                    console.log('Waiting for the sell offer', tx.id)
         
     | 
| 
       53690 
53703 
     | 
    
         
             
                    const registryAcc = new XrplAccount(this.config.registryAddress, null, { xrplApi: this.xrplApi });
         
     | 
| 
         @@ -53722,9 +53735,9 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53722 
53735 
     | 
    
         
             
                        resolve();
         
     | 
| 
       53723 
53736 
     | 
    
         
             
                    });
         
     | 
| 
       53724 
53737 
     | 
    
         | 
| 
       53725 
     | 
    
         
            -
                    await this.#submitWithRetry(async (feeUplift) => {
         
     | 
| 
       53726 
     | 
    
         
            -
                        await this.xrplAcc.buyURIToken(sellOffer, null, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift });
         
     | 
| 
       53727 
     | 
    
         
            -
                    }, options.retryOptions);
         
     | 
| 
      
 53738 
     | 
    
         
            +
                    await this.#submitWithRetry(async (feeUplift, submissionRef) => {
         
     | 
| 
      
 53739 
     | 
    
         
            +
                        await this.xrplAcc.buyURIToken(sellOffer, null, { maxLedgerIndex: this.#getMaxLedgerSequence(), feeUplift: feeUplift, submissionRef: submissionRef });
         
     | 
| 
      
 53740 
     | 
    
         
            +
                    }, { ...(options.retryOptions ? options.retryOptions : {}), submissionRef: options.submissionRef });
         
     | 
| 
       53728 
53741 
     | 
    
         
             
                    return await this.isRegistered();
         
     | 
| 
       53729 
53742 
     | 
    
         
             
                }
         
     | 
| 
       53730 
53743 
     | 
    
         | 
| 
         @@ -53747,7 +53760,7 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53747 
53760 
     | 
    
         
             
                        paramBuf.writeUInt8(1, 32);
         
     | 
| 
       53748 
53761 
     | 
    
         
             
                    }
         
     | 
| 
       53749 
53762 
     | 
    
         | 
| 
       53750 
     | 
    
         
            -
                    await this.#submitWithRetry(async (feeUplift) => {
         
     | 
| 
      
 53763 
     | 
    
         
            +
                    await this.#submitWithRetry(async (feeUplift, submissionRef) => {
         
     | 
| 
       53751 
53764 
     | 
    
         
             
                        await this.xrplAcc.makePayment(this.config.registryAddress,
         
     | 
| 
       53752 
53765 
     | 
    
         
             
                            XrplConstants.MIN_DROPS,
         
     | 
| 
       53753 
53766 
     | 
    
         
             
                            null,
         
     | 
| 
         @@ -53759,10 +53772,10 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53759 
53772 
     | 
    
         
             
                                    { name: HookParamKeys.PARAM_EVENT_DATA1_KEY, value: paramBuf.toString('hex').toUpperCase() }
         
     | 
| 
       53760 
53773 
     | 
    
         
             
                                ],
         
     | 
| 
       53761 
53774 
     | 
    
         
             
                                maxLedgerIndex: this.#getMaxLedgerSequence(),
         
     | 
| 
       53762 
     | 
    
         
            -
                                feeUplift: feeUplift,
         
     | 
| 
      
 53775 
     | 
    
         
            +
                                feeUplift: feeUplift, submissionRef: submissionRef,
         
     | 
| 
       53763 
53776 
     | 
    
         
             
                                ...options.transactionOptions
         
     | 
| 
       53764 
53777 
     | 
    
         
             
                            });
         
     | 
| 
       53765 
     | 
    
         
            -
                    }, options.retryOptions);
         
     | 
| 
      
 53778 
     | 
    
         
            +
                    }, { ...(options.retryOptions ? options.retryOptions : {}), submissionRef: options.submissionRef });
         
     | 
| 
       53766 
53779 
     | 
    
         | 
| 
       53767 
53780 
     | 
    
         
             
                    return await this.isRegistered();
         
     | 
| 
       53768 
53781 
     | 
    
         
             
                }
         
     | 
| 
         @@ -53812,7 +53825,7 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53812 
53825 
     | 
    
         
             
                        paramBuf.writeUInt8(components[2], HOST_UPDATE_VERSION_PARAM_OFFSET + 2);
         
     | 
| 
       53813 
53826 
     | 
    
         
             
                    }
         
     | 
| 
       53814 
53827 
     | 
    
         | 
| 
       53815 
     | 
    
         
            -
                    return await this.#submitWithRetry(async (feeUplift) => {
         
     | 
| 
      
 53828 
     | 
    
         
            +
                    return await this.#submitWithRetry(async (feeUplift, submissionRef) => {
         
     | 
| 
       53816 
53829 
     | 
    
         
             
                        return await this.xrplAcc.makePayment(this.config.registryAddress,
         
     | 
| 
       53817 
53830 
     | 
    
         
             
                            XrplConstants.MIN_DROPS,
         
     | 
| 
       53818 
53831 
     | 
    
         
             
                            null,
         
     | 
| 
         @@ -53824,10 +53837,10 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53824 
53837 
     | 
    
         
             
                                    { name: HookParamKeys.PARAM_EVENT_DATA1_KEY, value: paramBuf.toString('hex') }
         
     | 
| 
       53825 
53838 
     | 
    
         
             
                                ],
         
     | 
| 
       53826 
53839 
     | 
    
         
             
                                maxLedgerIndex: this.#getMaxLedgerSequence(),
         
     | 
| 
       53827 
     | 
    
         
            -
                                feeUplift: feeUplift,
         
     | 
| 
      
 53840 
     | 
    
         
            +
                                feeUplift: feeUplift, submissionRef: submissionRef,
         
     | 
| 
       53828 
53841 
     | 
    
         
             
                                ...options.transactionOptions
         
     | 
| 
       53829 
53842 
     | 
    
         
             
                            });
         
     | 
| 
       53830 
     | 
    
         
            -
                    }, options.retryOptions);
         
     | 
| 
      
 53843 
     | 
    
         
            +
                    }, { ...(options.retryOptions ? options.retryOptions : {}), submissionRef: options.submissionRef });
         
     | 
| 
       53831 
53844 
     | 
    
         | 
| 
       53832 
53845 
     | 
    
         
             
                }
         
     | 
| 
       53833 
53846 
     | 
    
         | 
| 
         @@ -53838,6 +53851,12 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53838 
53851 
     | 
    
         
             
                 * @returns Transaction result.
         
     | 
| 
       53839 
53852 
     | 
    
         
             
                 */
         
     | 
| 
       53840 
53853 
     | 
    
         
             
                async heartbeat(voteInfo = {}, options = {}) {
         
     | 
| 
      
 53854 
     | 
    
         
            +
                    let unofferedLeases = await this.getUnofferedLeases();
         
     | 
| 
      
 53855 
     | 
    
         
            +
                    if (unofferedLeases.length > 0) {
         
     | 
| 
      
 53856 
     | 
    
         
            +
                        console.log("Unoffered leases detected. Heartbeat was not sent.");
         
     | 
| 
      
 53857 
     | 
    
         
            +
                        return;
         
     | 
| 
      
 53858 
     | 
    
         
            +
                    }
         
     | 
| 
      
 53859 
     | 
    
         
            +
             
     | 
| 
       53841 
53860 
     | 
    
         
             
                    let data;
         
     | 
| 
       53842 
53861 
     | 
    
         
             
                    // Prepare voteInfo
         
     | 
| 
       53843 
53862 
     | 
    
         
             
                    if (Object.keys(voteInfo).length > 1) {
         
     | 
| 
         @@ -53859,7 +53878,8 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53859 
53878 
     | 
    
         
             
                                    ...(data ? [{ name: HookParamKeys.PARAM_EVENT_DATA1_KEY, value: data }] : [])
         
     | 
| 
       53860 
53879 
     | 
    
         
             
                                ],
         
     | 
| 
       53861 
53880 
     | 
    
         
             
                                maxLedgerIndex: this.#getMaxLedgerSequence(),
         
     | 
| 
       53862 
     | 
    
         
            -
                                ...options.transactionOptions
         
     | 
| 
      
 53881 
     | 
    
         
            +
                                ...options.transactionOptions,
         
     | 
| 
      
 53882 
     | 
    
         
            +
                                submissionRef: options.submissionRef
         
     | 
| 
       53863 
53883 
     | 
    
         
             
                            });
         
     | 
| 
       53864 
53884 
     | 
    
         
             
                        return res;
         
     | 
| 
       53865 
53885 
     | 
    
         
             
                    }
         
     | 
| 
         @@ -53926,7 +53946,8 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53926 
53946 
     | 
    
         
             
                                { name: HookParamKeys.PARAM_EVENT_DATA1_KEY, value: txHash }
         
     | 
| 
       53927 
53947 
     | 
    
         
             
                            ],
         
     | 
| 
       53928 
53948 
     | 
    
         
             
                            maxLedgerIndex: this.#getMaxLedgerSequence(),
         
     | 
| 
       53929 
     | 
    
         
            -
                            ...options.transactionOptions
         
     | 
| 
      
 53949 
     | 
    
         
            +
                            ...options.transactionOptions,
         
     | 
| 
      
 53950 
     | 
    
         
            +
                            submissionRef: options.submissionRef
         
     | 
| 
       53930 
53951 
     | 
    
         
             
                        });
         
     | 
| 
       53931 
53952 
     | 
    
         
             
                }
         
     | 
| 
       53932 
53953 
     | 
    
         | 
| 
         @@ -53954,7 +53975,8 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53954 
53975 
     | 
    
         
             
                                { name: HookParamKeys.PARAM_EVENT_DATA1_KEY, value: txHash }
         
     | 
| 
       53955 
53976 
     | 
    
         
             
                            ],
         
     | 
| 
       53956 
53977 
     | 
    
         
             
                            maxLedgerIndex: this.#getMaxLedgerSequence(),
         
     | 
| 
       53957 
     | 
    
         
            -
                            ...options.transactionOptions
         
     | 
| 
      
 53978 
     | 
    
         
            +
                            ...options.transactionOptions,
         
     | 
| 
      
 53979 
     | 
    
         
            +
                            submissionRef: options.submissionRef
         
     | 
| 
       53958 
53980 
     | 
    
         
             
                        });
         
     | 
| 
       53959 
53981 
     | 
    
         
             
                }
         
     | 
| 
       53960 
53982 
     | 
    
         | 
| 
         @@ -53983,7 +54005,8 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       53983 
54005 
     | 
    
         
             
                                { name: HookParamKeys.PARAM_EVENT_DATA1_KEY, value: txHash }
         
     | 
| 
       53984 
54006 
     | 
    
         
             
                            ],
         
     | 
| 
       53985 
54007 
     | 
    
         
             
                            maxLedgerIndex: this.#getMaxLedgerSequence(),
         
     | 
| 
       53986 
     | 
    
         
            -
                            ...options.transactionOptions
         
     | 
| 
      
 54008 
     | 
    
         
            +
                            ...options.transactionOptions,
         
     | 
| 
      
 54009 
     | 
    
         
            +
                            submissionRef: options.submissionRef
         
     | 
| 
       53987 
54010 
     | 
    
         
             
                        });
         
     | 
| 
       53988 
54011 
     | 
    
         
             
                }
         
     | 
| 
       53989 
54012 
     | 
    
         | 
| 
         @@ -54012,7 +54035,8 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       54012 
54035 
     | 
    
         
             
                                { name: HookParamKeys.PARAM_EVENT_DATA1_KEY, value: txHash }
         
     | 
| 
       54013 
54036 
     | 
    
         
             
                            ],
         
     | 
| 
       54014 
54037 
     | 
    
         
             
                            maxLedgerIndex: this.#getMaxLedgerSequence(),
         
     | 
| 
       54015 
     | 
    
         
            -
                            ...options.transactionOptions
         
     | 
| 
      
 54038 
     | 
    
         
            +
                            ...options.transactionOptions,
         
     | 
| 
      
 54039 
     | 
    
         
            +
                            submissionRef: options.submissionRef
         
     | 
| 
       54016 
54040 
     | 
    
         
             
                        });
         
     | 
| 
       54017 
54041 
     | 
    
         
             
                }
         
     | 
| 
       54018 
54042 
     | 
    
         | 
| 
         @@ -54038,7 +54062,8 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       54038 
54062 
     | 
    
         
             
                                { name: HookParamKeys.PARAM_EVENT_DATA1_KEY, value: txHash }
         
     | 
| 
       54039 
54063 
     | 
    
         
             
                            ],
         
     | 
| 
       54040 
54064 
     | 
    
         
             
                            maxLedgerIndex: this.#getMaxLedgerSequence(),
         
     | 
| 
       54041 
     | 
    
         
            -
                            ...options.transactionOptions
         
     | 
| 
      
 54065 
     | 
    
         
            +
                            ...options.transactionOptions,
         
     | 
| 
      
 54066 
     | 
    
         
            +
                            submissionRef: options.submissionRef
         
     | 
| 
       54042 
54067 
     | 
    
         
             
                        });
         
     | 
| 
       54043 
54068 
     | 
    
         
             
                }
         
     | 
| 
       54044 
54069 
     | 
    
         | 
| 
         @@ -54060,7 +54085,8 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       54060 
54085 
     | 
    
         
             
                                { name: HookParamKeys.PARAM_EVENT_TYPE_KEY, value: EventTypes.HOST_REBATE }
         
     | 
| 
       54061 
54086 
     | 
    
         
             
                            ],
         
     | 
| 
       54062 
54087 
     | 
    
         
             
                            maxLedgerIndex: this.#getMaxLedgerSequence(),
         
     | 
| 
       54063 
     | 
    
         
            -
                            ...options.transactionOptions
         
     | 
| 
      
 54088 
     | 
    
         
            +
                            ...options.transactionOptions,
         
     | 
| 
      
 54089 
     | 
    
         
            +
                            submissionRef: options.submissionRef
         
     | 
| 
       54064 
54090 
     | 
    
         
             
                        });
         
     | 
| 
       54065 
54091 
     | 
    
         
             
                }
         
     | 
| 
       54066 
54092 
     | 
    
         | 
| 
         @@ -54086,7 +54112,7 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       54086 
54112 
     | 
    
         | 
| 
       54087 
54113 
     | 
    
         
             
                    const regUriToken = await this.getRegistrationUriToken();
         
     | 
| 
       54088 
54114 
     | 
    
         | 
| 
       54089 
     | 
    
         
            -
                    await this.#submitWithRetry(async (feeUplift) => {
         
     | 
| 
      
 54115 
     | 
    
         
            +
                    await this.#submitWithRetry(async (feeUplift, submissionRef) => {
         
     | 
| 
       54090 
54116 
     | 
    
         
             
                        await this.xrplAcc.sellURIToken(regUriToken.index,
         
     | 
| 
       54091 
54117 
     | 
    
         
             
                            XrplConstants.MIN_DROPS,
         
     | 
| 
       54092 
54118 
     | 
    
         
             
                            null,
         
     | 
| 
         @@ -54099,10 +54125,10 @@ class HostClient extends BaseEvernodeClient { 
     | 
|
| 
       54099 
54125 
     | 
    
         
             
                                    { name: HookParamKeys.PARAM_EVENT_DATA1_KEY, value: paramData.toString('hex') }
         
     | 
| 
       54100 
54126 
     | 
    
         
             
                                ],
         
     | 
| 
       54101 
54127 
     | 
    
         
             
                                maxLedgerIndex: this.#getMaxLedgerSequence(),
         
     | 
| 
       54102 
     | 
    
         
            -
                                feeUplift: feeUplift,
         
     | 
| 
      
 54128 
     | 
    
         
            +
                                feeUplift: feeUplift, submissionRef: submissionRef,
         
     | 
| 
       54103 
54129 
     | 
    
         
             
                                ...options.transactionOptions
         
     | 
| 
       54104 
54130 
     | 
    
         
             
                            });
         
     | 
| 
       54105 
     | 
    
         
            -
                    }, options.retryOptions);
         
     | 
| 
      
 54131 
     | 
    
         
            +
                    }, { ...(options.retryOptions ? options.retryOptions : {}), submissionRef: options.submissionRef });
         
     | 
| 
       54106 
54132 
     | 
    
         | 
| 
       54107 
54133 
     | 
    
         
             
                    let token = null;
         
     | 
| 
       54108 
54134 
     | 
    
         
             
                    let attempts = 0;
         
     | 
| 
         @@ -56512,7 +56538,7 @@ class XrplAccount { 
     | 
|
| 
       56512 
56538 
     | 
    
         | 
| 
       56513 
56539 
     | 
    
         
             
                async setAccountFields(fields, options = {}) {
         
     | 
| 
       56514 
56540 
     | 
    
         
             
                    const preparedTxn = await this.prepareSetAccountFields(fields, options);
         
     | 
| 
       56515 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56541 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56516 
56542 
     | 
    
         
             
                }
         
     | 
| 
       56517 
56543 
     | 
    
         | 
| 
       56518 
56544 
     | 
    
         
             
                async prepareSetAccountFields(fields, options = {}) {
         
     | 
| 
         @@ -56559,7 +56585,7 @@ class XrplAccount { 
     | 
|
| 
       56559 
56585 
     | 
    
         
             
                async setSignerList(signerList = [], options = {}) {
         
     | 
| 
       56560 
56586 
     | 
    
         | 
| 
       56561 
56587 
     | 
    
         
             
                    const preparedTxn = await this.prepareSetSignerList(signerList, options);
         
     | 
| 
       56562 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56588 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56563 
56589 
     | 
    
         
             
                }
         
     | 
| 
       56564 
56590 
     | 
    
         | 
| 
       56565 
56591 
     | 
    
         
             
                /**
         
     | 
| 
         @@ -56605,7 +56631,7 @@ class XrplAccount { 
     | 
|
| 
       56605 
56631 
     | 
    
         | 
| 
       56606 
56632 
     | 
    
         
             
                async makePayment(toAddr, amount, currency = null, issuer = null, memos = null, options = {}) {
         
     | 
| 
       56607 
56633 
     | 
    
         
             
                    const preparedTxn = await this.prepareMakePayment(toAddr, amount, currency, issuer, memos, options);
         
     | 
| 
       56608 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56634 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56609 
56635 
     | 
    
         
             
                }
         
     | 
| 
       56610 
56636 
     | 
    
         | 
| 
       56611 
56637 
     | 
    
         
             
                async prepareMakePayment(toAddr, amount, currency = null, issuer = null, memos = null, options = {}) {
         
     | 
| 
         @@ -56624,7 +56650,7 @@ class XrplAccount { 
     | 
|
| 
       56624 
56650 
     | 
    
         | 
| 
       56625 
56651 
     | 
    
         
             
                async setTrustLine(currency, issuer, limit, allowRippling = false, memos = null, options = {}) {
         
     | 
| 
       56626 
56652 
     | 
    
         
             
                    const preparedTxn = await this.prepareSetTrustLine(currency, issuer, limit, allowRippling, memos, options);
         
     | 
| 
       56627 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56653 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56628 
56654 
     | 
    
         
             
                }
         
     | 
| 
       56629 
56655 
     | 
    
         | 
| 
       56630 
56656 
     | 
    
         
             
                async prepareSetTrustLine(currency, issuer, limit, allowRippling = false, memos = null, options = {}) {
         
     | 
| 
         @@ -56652,7 +56678,7 @@ class XrplAccount { 
     | 
|
| 
       56652 
56678 
     | 
    
         | 
| 
       56653 
56679 
     | 
    
         
             
                async setRegularKey(regularKey, memos = null, options = {}) {
         
     | 
| 
       56654 
56680 
     | 
    
         
             
                    const preparedTxn = await this.prepareSetRegularKey(regularKey, memos, options);
         
     | 
| 
       56655 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56681 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56656 
56682 
     | 
    
         
             
                }
         
     | 
| 
       56657 
56683 
     | 
    
         | 
| 
       56658 
56684 
     | 
    
         
             
                async prepareSetRegularKey(regularKey, memos = null, options = {}) {
         
     | 
| 
         @@ -56668,7 +56694,7 @@ class XrplAccount { 
     | 
|
| 
       56668 
56694 
     | 
    
         | 
| 
       56669 
56695 
     | 
    
         
             
                async cashCheck(check, options = {}) {
         
     | 
| 
       56670 
56696 
     | 
    
         
             
                    const preparedTxn = await this.prepareCashCheck(check, options);
         
     | 
| 
       56671 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56697 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56672 
56698 
     | 
    
         
             
                }
         
     | 
| 
       56673 
56699 
     | 
    
         | 
| 
       56674 
56700 
     | 
    
         
             
                async prepareCashCheck(check, options = {}) {
         
     | 
| 
         @@ -56695,7 +56721,7 @@ class XrplAccount { 
     | 
|
| 
       56695 
56721 
     | 
    
         | 
| 
       56696 
56722 
     | 
    
         
             
                async offerSell(sellAmount, sellCurrency, sellIssuer, forAmount, forCurrency, forIssuer = null, expiration = 4294967295, memos = null, options = {}) {
         
     | 
| 
       56697 
56723 
     | 
    
         
             
                    const preparedTxn = await this.prepareOfferSell(sellAmount, sellCurrency, sellIssuer, forAmount, forCurrency, forIssuer, expiration, memos, options);
         
     | 
| 
       56698 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56724 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56699 
56725 
     | 
    
         
             
                }
         
     | 
| 
       56700 
56726 
     | 
    
         | 
| 
       56701 
56727 
     | 
    
         
             
                async prepareOfferSell(sellAmount, sellCurrency, sellIssuer, forAmount, forCurrency, forIssuer = null, expiration = 4294967295, memos = null, options = {}) {
         
     | 
| 
         @@ -56716,7 +56742,7 @@ class XrplAccount { 
     | 
|
| 
       56716 
56742 
     | 
    
         | 
| 
       56717 
56743 
     | 
    
         
             
                async offerBuy(buyAmount, buyCurrency, buyIssuer, forAmount, forCurrency, forIssuer = null, expiration = 4294967295, memos = null, options = {}) {
         
     | 
| 
       56718 
56744 
     | 
    
         
             
                    const preparedTxn = await this.prepareOfferBuy(buyAmount, buyCurrency, buyIssuer, forAmount, forCurrency, forIssuer, expiration, memos, options);
         
     | 
| 
       56719 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56745 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56720 
56746 
     | 
    
         
             
                }
         
     | 
| 
       56721 
56747 
     | 
    
         | 
| 
       56722 
56748 
     | 
    
         
             
                async prepareOfferBuy(buyAmount, buyCurrency, buyIssuer, forAmount, forCurrency, forIssuer = null, expiration = 4294967295, memos = null, options = {}) {
         
     | 
| 
         @@ -56737,7 +56763,7 @@ class XrplAccount { 
     | 
|
| 
       56737 
56763 
     | 
    
         | 
| 
       56738 
56764 
     | 
    
         
             
                async cancelOffer(offerSequence, memos = null, options = {}) {
         
     | 
| 
       56739 
56765 
     | 
    
         
             
                    const preparedTxn = await this.prepareCancelOffer(offerSequence, memos, options);
         
     | 
| 
       56740 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56766 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56741 
56767 
     | 
    
         
             
                }
         
     | 
| 
       56742 
56768 
     | 
    
         | 
| 
       56743 
56769 
     | 
    
         
             
                async prepareCancelOffer(offerSequence, memos = null, options = {}) {
         
     | 
| 
         @@ -56752,7 +56778,7 @@ class XrplAccount { 
     | 
|
| 
       56752 
56778 
     | 
    
         | 
| 
       56753 
56779 
     | 
    
         
             
                async mintNft(uri, taxon, transferFee, flags = {}, memos = null, options = {}) {
         
     | 
| 
       56754 
56780 
     | 
    
         
             
                    const preparedTxn = await this.prepareMintNft(uri, taxon, transferFee, flags, memos, options);
         
     | 
| 
       56755 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56781 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56756 
56782 
     | 
    
         
             
                }
         
     | 
| 
       56757 
56783 
     | 
    
         | 
| 
       56758 
56784 
     | 
    
         
             
                async prepareMintNft(uri, taxon, transferFee, flags = {}, memos = null, options = {}) {
         
     | 
| 
         @@ -56770,7 +56796,7 @@ class XrplAccount { 
     | 
|
| 
       56770 
56796 
     | 
    
         | 
| 
       56771 
56797 
     | 
    
         
             
                async offerSellNft(nfTokenId, amount, currency, issuer = null, destination = null, expiration = 4294967295, memos = null, options = {}) {
         
     | 
| 
       56772 
56798 
     | 
    
         
             
                    const preparedTxn = await this.prepareOfferSellNft(nfTokenId, amount, currency, issuer, destination, expiration, memos, options);
         
     | 
| 
       56773 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56799 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56774 
56800 
     | 
    
         
             
                }
         
     | 
| 
       56775 
56801 
     | 
    
         | 
| 
       56776 
56802 
     | 
    
         
             
                async prepareOfferSellNft(nfTokenId, amount, currency, issuer = null, destination = null, expiration = 4294967295, memos = null, options = {}) {
         
     | 
| 
         @@ -56792,7 +56818,7 @@ class XrplAccount { 
     | 
|
| 
       56792 
56818 
     | 
    
         | 
| 
       56793 
56819 
     | 
    
         
             
                async offerBuyNft(nfTokenId, owner, amount, currency, issuer = null, expiration = 4294967295, memos = null, options = {}) {
         
     | 
| 
       56794 
56820 
     | 
    
         
             
                    const preparedTxn = await this.prepareOfferSellNft(nfTokenId, owner, amount, currency, issuer, expiration, memos, options);
         
     | 
| 
       56795 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56821 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56796 
56822 
     | 
    
         
             
                }
         
     | 
| 
       56797 
56823 
     | 
    
         | 
| 
       56798 
56824 
     | 
    
         
             
                async prepareOfferBuyNft(nfTokenId, owner, amount, currency, issuer = null, expiration = 4294967295, memos = null, options = {}) {
         
     | 
| 
         @@ -56815,7 +56841,7 @@ class XrplAccount { 
     | 
|
| 
       56815 
56841 
     | 
    
         | 
| 
       56816 
56842 
     | 
    
         
             
                async sellNft(offerId, memos = null, options = {}) {
         
     | 
| 
       56817 
56843 
     | 
    
         
             
                    const preparedTxn = await this.prepareSellNft(offerId, memos, options);
         
     | 
| 
       56818 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56844 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56819 
56845 
     | 
    
         
             
                }
         
     | 
| 
       56820 
56846 
     | 
    
         | 
| 
       56821 
56847 
     | 
    
         
             
                async prepareSellNft(offerId, memos = null, options = {}) {
         
     | 
| 
         @@ -56831,7 +56857,7 @@ class XrplAccount { 
     | 
|
| 
       56831 
56857 
     | 
    
         | 
| 
       56832 
56858 
     | 
    
         
             
                async buyNft(offerId, memos = null, options = {}) {
         
     | 
| 
       56833 
56859 
     | 
    
         
             
                    const preparedTxn = await this.prepareBuyNft(offerId, memos, options);
         
     | 
| 
       56834 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56860 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56835 
56861 
     | 
    
         
             
                }
         
     | 
| 
       56836 
56862 
     | 
    
         | 
| 
       56837 
56863 
     | 
    
         
             
                async prepareBuyNft(offerId, memos = null, options = {}) {
         
     | 
| 
         @@ -56847,7 +56873,7 @@ class XrplAccount { 
     | 
|
| 
       56847 
56873 
     | 
    
         | 
| 
       56848 
56874 
     | 
    
         
             
                async burnNft(nfTokenId, owner = null, memos = null, options = {}) {
         
     | 
| 
       56849 
56875 
     | 
    
         
             
                    const preparedTxn = await this.prepareBurnNft(nfTokenId, owner, memos, options);
         
     | 
| 
       56850 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56876 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56851 
56877 
     | 
    
         
             
                }
         
     | 
| 
       56852 
56878 
     | 
    
         | 
| 
       56853 
56879 
     | 
    
         
             
                async prepareBurnNft(nfTokenId, owner = null, memos = null, options = {}) {
         
     | 
| 
         @@ -56963,7 +56989,7 @@ class XrplAccount { 
     | 
|
| 
       56963 
56989 
     | 
    
         | 
| 
       56964 
56990 
     | 
    
         
             
                async mintURIToken(uri, digest = null, flags = {}, options = {}) {
         
     | 
| 
       56965 
56991 
     | 
    
         
             
                    const preparedTxn = await this.prepareMintURIToken(uri, digest, flags, options);
         
     | 
| 
       56966 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 56992 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56967 
56993 
     | 
    
         
             
                }
         
     | 
| 
       56968 
56994 
     | 
    
         | 
| 
       56969 
56995 
     | 
    
         
             
                async prepareMintURIToken(uri, digest = null, flags = {}, options = {}) {
         
     | 
| 
         @@ -56983,7 +57009,7 @@ class XrplAccount { 
     | 
|
| 
       56983 
57009 
     | 
    
         | 
| 
       56984 
57010 
     | 
    
         
             
                async burnURIToken(uriTokenID, options = {}) {
         
     | 
| 
       56985 
57011 
     | 
    
         
             
                    const preparedTxn = await this.prepareBurnURIToken(uriTokenID, options);
         
     | 
| 
       56986 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 57012 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       56987 
57013 
     | 
    
         
             
                }
         
     | 
| 
       56988 
57014 
     | 
    
         | 
| 
       56989 
57015 
     | 
    
         
             
                async prepareBurnURIToken(uriTokenID, options = {}) {
         
     | 
| 
         @@ -56997,7 +57023,7 @@ class XrplAccount { 
     | 
|
| 
       56997 
57023 
     | 
    
         | 
| 
       56998 
57024 
     | 
    
         
             
                async sellURIToken(uriTokenID, amount, currency, issuer = null, toAddr = null, memos = null, options = {}) {
         
     | 
| 
       56999 
57025 
     | 
    
         
             
                    const preparedTxn = await this.prepareSellURIToken(uriTokenID, amount, currency, issuer, toAddr, memos, options);
         
     | 
| 
       57000 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 57026 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       57001 
57027 
     | 
    
         
             
                }
         
     | 
| 
       57002 
57028 
     | 
    
         | 
| 
       57003 
57029 
     | 
    
         
             
                async prepareSellURIToken(uriTokenID, amount, currency, issuer = null, toAddr = null, memos = null, options = {}) {
         
     | 
| 
         @@ -57023,7 +57049,7 @@ class XrplAccount { 
     | 
|
| 
       57023 
57049 
     | 
    
         | 
| 
       57024 
57050 
     | 
    
         
             
                async buyURIToken(uriToken, memos = null, options = {}) {
         
     | 
| 
       57025 
57051 
     | 
    
         
             
                    const preparedTxn = await this.prepareBuyURIToken(uriToken, memos, options);
         
     | 
| 
       57026 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 57052 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       57027 
57053 
     | 
    
         
             
                }
         
     | 
| 
       57028 
57054 
     | 
    
         | 
| 
       57029 
57055 
     | 
    
         
             
                async prepareBuyURIToken(uriToken, memos = null, options = {}) {
         
     | 
| 
         @@ -57045,7 +57071,7 @@ class XrplAccount { 
     | 
|
| 
       57045 
57071 
     | 
    
         | 
| 
       57046 
57072 
     | 
    
         
             
                async clearURITokenOffer(uriTokenID, options = {}) {
         
     | 
| 
       57047 
57073 
     | 
    
         
             
                    const preparedTxn = await this.prepareClearURITokenOffer(uriTokenID, options);
         
     | 
| 
       57048 
     | 
    
         
            -
                    return await this.signAndSubmit(preparedTxn);
         
     | 
| 
      
 57074 
     | 
    
         
            +
                    return await this.signAndSubmit(preparedTxn, options.submissionRef);
         
     | 
| 
       57049 
57075 
     | 
    
         
             
                }
         
     | 
| 
       57050 
57076 
     | 
    
         | 
| 
       57051 
57077 
     | 
    
         
             
                async prepareClearURITokenOffer(uriTokenID, options = {}) {
         
     | 
| 
         @@ -57127,11 +57153,12 @@ class XrplAccount { 
     | 
|
| 
       57127 
57153 
     | 
    
         
             
                /**
         
     | 
| 
       57128 
57154 
     | 
    
         
             
                 * Sign and submit prepared transaction.
         
     | 
| 
       57129 
57155 
     | 
    
         
             
                 * @param {object} preparedTransaction Prepared transaction.
         
     | 
| 
      
 57156 
     | 
    
         
            +
                 * @param {object} submissionRef [Optional] Reference object to take submission references.
         
     | 
| 
       57130 
57157 
     | 
    
         
             
                 * @returns result of the submitted transaction.
         
     | 
| 
       57131 
57158 
     | 
    
         
             
                 */
         
     | 
| 
       57132 
     | 
    
         
            -
                async signAndSubmit(preparedTransaction) {
         
     | 
| 
      
 57159 
     | 
    
         
            +
                async signAndSubmit(preparedTransaction, submissionRef = {}) {
         
     | 
| 
       57133 
57160 
     | 
    
         
             
                    const signedTxn = this.sign(preparedTransaction, false);
         
     | 
| 
       57134 
     | 
    
         
            -
                    return await this.xrplApi.submitAndWait(preparedTransaction, signedTxn.tx_blob);
         
     | 
| 
      
 57161 
     | 
    
         
            +
                    return await this.xrplApi.submitAndWait(preparedTransaction, signedTxn.tx_blob, submissionRef);
         
     | 
| 
       57135 
57162 
     | 
    
         
             
                }
         
     | 
| 
       57136 
57163 
     | 
    
         | 
| 
       57137 
57164 
     | 
    
         
             
                /**
         
     | 
| 
         @@ -57218,7 +57245,7 @@ class XrplApi { 
     | 
|
| 
       57218 
57245 
     | 
    
         
             
                }
         
     | 
| 
       57219 
57246 
     | 
    
         | 
| 
       57220 
57247 
     | 
    
         
             
                async #acquireClient() {
         
     | 
| 
       57221 
     | 
    
         
            -
                    while (this.# 
     | 
| 
      
 57248 
     | 
    
         
            +
                    while (!(this.#isPrimaryServerConnected || this.#isFallbackServerConnected) && this.#isClientAcquired) {
         
     | 
| 
       57222 
57249 
     | 
    
         
             
                        await new Promise((resolve) => setTimeout(resolve, 100));
         
     | 
| 
       57223 
57250 
     | 
    
         
             
                    }
         
     | 
| 
       57224 
57251 
     | 
    
         
             
                    this.#isClientAcquired = true;
         
     | 
| 
         @@ -57229,7 +57256,7 @@ class XrplApi { 
     | 
|
| 
       57229 
57256 
     | 
    
         
             
                }
         
     | 
| 
       57230 
57257 
     | 
    
         | 
| 
       57231 
57258 
     | 
    
         
             
                async #acquireConnection() {
         
     | 
| 
       57232 
     | 
    
         
            -
                    while (this.# 
     | 
| 
      
 57259 
     | 
    
         
            +
                    while (this.#isConnectionAcquired) {
         
     | 
| 
       57233 
57260 
     | 
    
         
             
                        await new Promise((resolve) => setTimeout(resolve, 100));
         
     | 
| 
       57234 
57261 
     | 
    
         
             
                    }
         
     | 
| 
       57235 
57262 
     | 
    
         
             
                    this.#isConnectionAcquired = true;
         
     | 
| 
         @@ -57240,16 +57267,15 @@ class XrplApi { 
     | 
|
| 
       57240 
57267 
     | 
    
         
             
                }
         
     | 
| 
       57241 
57268 
     | 
    
         | 
| 
       57242 
57269 
     | 
    
         
             
                async #setXrplClient(client) {
         
     | 
| 
       57243 
     | 
    
         
            -
                    await this.#acquireClient();
         
     | 
| 
       57244 
57270 
     | 
    
         
             
                    try {
         
     | 
| 
       57245 
     | 
    
         
            -
                        if (this.#client) // Clear all listeners if there's an already created client.
         
     | 
| 
      
 57271 
     | 
    
         
            +
                        if (this.#client) { // Clear all listeners if there's an already created client.
         
     | 
| 
       57246 
57272 
     | 
    
         
             
                            await this.#client.removeAllListeners();
         
     | 
| 
      
 57273 
     | 
    
         
            +
                            await this.#client.disconnect();
         
     | 
| 
      
 57274 
     | 
    
         
            +
                        }
         
     | 
| 
       57247 
57275 
     | 
    
         | 
| 
       57248 
57276 
     | 
    
         
             
                        this.#client = client;
         
     | 
| 
       57249 
     | 
    
         
            -
                        this.#releaseClient();
         
     | 
| 
       57250 
57277 
     | 
    
         
             
                    }
         
     | 
| 
       57251 
57278 
     | 
    
         
             
                    catch (e) {
         
     | 
| 
       57252 
     | 
    
         
            -
                        this.#releaseClient();
         
     | 
| 
       57253 
57279 
     | 
    
         
             
                        console.log("Error occurred in Client initiation:", e)
         
     | 
| 
       57254 
57280 
     | 
    
         
             
                    }
         
     | 
| 
       57255 
57281 
     | 
    
         
             
                }
         
     | 
| 
         @@ -57349,9 +57375,14 @@ class XrplApi { 
     | 
|
| 
       57349 
57375 
     | 
    
         
             
                }
         
     | 
| 
       57350 
57376 
     | 
    
         | 
| 
       57351 
57377 
     | 
    
         
             
                async #attemptFallbackServerReconnect(maxRounds, attemptsPerServer = 3) {
         
     | 
| 
      
 57378 
     | 
    
         
            +
                    if (!this.#fallbackServers || this.#fallbackServers?.length == 0)
         
     | 
| 
      
 57379 
     | 
    
         
            +
                        return;
         
     | 
| 
      
 57380 
     | 
    
         
            +
             
     | 
| 
      
 57381 
     | 
    
         
            +
                    await this.#acquireClient();
         
     | 
| 
      
 57382 
     | 
    
         
            +
             
     | 
| 
       57352 
57383 
     | 
    
         
             
                    const fallbackServers = this.#fallbackServers;
         
     | 
| 
       57353 
57384 
     | 
    
         
             
                    let round = 0;
         
     | 
| 
       57354 
     | 
    
         
            -
                    while ( 
     | 
| 
      
 57385 
     | 
    
         
            +
                    while (!this.#isPermanentlyDisconnected && !this.#isPrimaryServerConnected && !this.#isFallbackServerConnected && (!maxRounds || round < maxRounds)) { // Keep attempting until consumer calls disconnect() manually or if the primary server is disconnected.
         
     | 
| 
       57355 
57386 
     | 
    
         
             
                        ++round;
         
     | 
| 
       57356 
57387 
     | 
    
         
             
                        serverIterator:
         
     | 
| 
       57357 
57388 
     | 
    
         
             
                        for (let serverIndex in fallbackServers) {
         
     | 
| 
         @@ -57361,8 +57392,8 @@ class XrplApi { 
     | 
|
| 
       57361 
57392 
     | 
    
         
             
                                    break serverIterator;
         
     | 
| 
       57362 
57393 
     | 
    
         
             
                                }
         
     | 
| 
       57363 
57394 
     | 
    
         
             
                                ++attempt;
         
     | 
| 
      
 57395 
     | 
    
         
            +
                                const client = new xrpl.Client(server, this.#xrplClientOptions);
         
     | 
| 
       57364 
57396 
     | 
    
         
             
                                try {
         
     | 
| 
       57365 
     | 
    
         
            -
                                    const client = new xrpl.Client(server, this.#xrplClientOptions);
         
     | 
| 
       57366 
57397 
     | 
    
         
             
                                    if (!this.#isPrimaryServerConnected) {
         
     | 
| 
       57367 
57398 
     | 
    
         
             
                                        await this.#handleClientConnect(client);
         
     | 
| 
       57368 
57399 
     | 
    
         
             
                                        this.#isFallbackServerConnected = true;
         
     | 
| 
         @@ -57370,67 +57401,90 @@ class XrplApi { 
     | 
|
| 
       57370 
57401 
     | 
    
         
             
                                    break serverIterator;
         
     | 
| 
       57371 
57402 
     | 
    
         
             
                                }
         
     | 
| 
       57372 
57403 
     | 
    
         
             
                                catch (e) {
         
     | 
| 
       57373 
     | 
    
         
            -
                                     
     | 
| 
      
 57404 
     | 
    
         
            +
                                    this.#releaseClient();
         
     | 
| 
      
 57405 
     | 
    
         
            +
                                    console.log(`Error occurred while connecting to fallback server ${server}`);
         
     | 
| 
      
 57406 
     | 
    
         
            +
                                    await new Promise(resolve => setTimeout(resolve, 1000));
         
     | 
| 
      
 57407 
     | 
    
         
            +
                                    if (client.isConnected()) {
         
     | 
| 
      
 57408 
     | 
    
         
            +
                                        console.log('Connection closure already handled');
         
     | 
| 
      
 57409 
     | 
    
         
            +
                                        await client.disconnect();
         
     | 
| 
      
 57410 
     | 
    
         
            +
                                    }
         
     | 
| 
      
 57411 
     | 
    
         
            +
             
     | 
| 
       57374 
57412 
     | 
    
         
             
                                    if (!this.#isPermanentlyDisconnected) {
         
     | 
| 
       57375 
57413 
     | 
    
         
             
                                        if (!maxRounds || round < maxRounds)
         
     | 
| 
       57376 
57414 
     | 
    
         
             
                                            console.log(`Fallback server ${server} connection attempt ${attempt} failed. Retrying in ${2 * round}s...`);
         
     | 
| 
       57377 
57415 
     | 
    
         
             
                                        else
         
     | 
| 
       57378 
     | 
    
         
            -
                                             
     | 
| 
      
 57416 
     | 
    
         
            +
                                            return { error: `Fallback server ${server} connection max attempts failed.`, exception: e };
         
     | 
| 
       57379 
57417 
     | 
    
         
             
                                        await new Promise(resolve => setTimeout(resolve, 2 * round * 1000));
         
     | 
| 
       57380 
57418 
     | 
    
         
             
                                    }
         
     | 
| 
       57381 
57419 
     | 
    
         
             
                                }
         
     | 
| 
       57382 
57420 
     | 
    
         
             
                            }
         
     | 
| 
       57383 
57421 
     | 
    
         
             
                        }
         
     | 
| 
       57384 
     | 
    
         
            -
             
     | 
| 
       57385 
57422 
     | 
    
         
             
                    }
         
     | 
| 
      
 57423 
     | 
    
         
            +
             
     | 
| 
      
 57424 
     | 
    
         
            +
                    return {};
         
     | 
| 
       57386 
57425 
     | 
    
         
             
                }
         
     | 
| 
       57387 
57426 
     | 
    
         | 
| 
       57388 
57427 
     | 
    
         
             
                async #attemptPrimaryServerReconnect(maxAttempts = null) {
         
     | 
| 
      
 57428 
     | 
    
         
            +
                    await this.#acquireClient();
         
     | 
| 
      
 57429 
     | 
    
         
            +
             
     | 
| 
       57389 
57430 
     | 
    
         
             
                    let attempt = 0;
         
     | 
| 
       57390 
     | 
    
         
            -
                    while (!this.#isPermanentlyDisconnected && !this.#isPrimaryServerConnected) { // Keep attempting until consumer calls disconnect() manually.
         
     | 
| 
      
 57431 
     | 
    
         
            +
                    while (!this.#isPermanentlyDisconnected && !this.#isPrimaryServerConnected && !this.#isFallbackServerConnected) { // Keep attempting until consumer calls disconnect() manually.
         
     | 
| 
       57391 
57432 
     | 
    
         
             
                        ++attempt;
         
     | 
| 
      
 57433 
     | 
    
         
            +
                        const client = new xrpl.Client(this.#primaryServer, this.#xrplClientOptions);
         
     | 
| 
       57392 
57434 
     | 
    
         
             
                        try {
         
     | 
| 
       57393 
     | 
    
         
            -
                            const client = new xrpl.Client(this.#primaryServer, this.#xrplClientOptions);
         
     | 
| 
       57394 
57435 
     | 
    
         
             
                            await this.#handleClientConnect(client);
         
     | 
| 
       57395 
     | 
    
         
            -
                            this.#isFallbackServerConnected = false;
         
     | 
| 
       57396 
57436 
     | 
    
         
             
                            this.#isPrimaryServerConnected = true;
         
     | 
| 
       57397 
57437 
     | 
    
         
             
                            break;
         
     | 
| 
       57398 
57438 
     | 
    
         
             
                        }
         
     | 
| 
       57399 
57439 
     | 
    
         
             
                        catch (e) {
         
     | 
| 
       57400 
     | 
    
         
            -
                             
     | 
| 
      
 57440 
     | 
    
         
            +
                            this.#releaseClient();
         
     | 
| 
      
 57441 
     | 
    
         
            +
                            console.log("Error occurred while re-connecting to the primary server")
         
     | 
| 
      
 57442 
     | 
    
         
            +
                            await new Promise(resolve => setTimeout(resolve, 1000));
         
     | 
| 
      
 57443 
     | 
    
         
            +
                            if (client.isConnected()) {
         
     | 
| 
      
 57444 
     | 
    
         
            +
                                console.log('Connection closure already handled');
         
     | 
| 
      
 57445 
     | 
    
         
            +
                                await client.disconnect();
         
     | 
| 
      
 57446 
     | 
    
         
            +
                            }
         
     | 
| 
      
 57447 
     | 
    
         
            +
             
     | 
| 
       57401 
57448 
     | 
    
         
             
                            if (!this.#isPermanentlyDisconnected) {
         
     | 
| 
       57402 
57449 
     | 
    
         
             
                                const delaySec = 2 * attempt; // Retry with backoff delay.
         
     | 
| 
       57403 
57450 
     | 
    
         
             
                                if (!maxAttempts || attempt < maxAttempts)
         
     | 
| 
       57404 
57451 
     | 
    
         
             
                                    console.log(`Primary server ${this.#primaryServer} attempt ${attempt} failed. Retrying in ${delaySec}s...`);
         
     | 
| 
       57405 
57452 
     | 
    
         
             
                                else
         
     | 
| 
       57406 
     | 
    
         
            -
                                     
     | 
| 
      
 57453 
     | 
    
         
            +
                                    return { error: `Primary server ${this.#primaryServer} connection max attempts failed.`, exception: e };
         
     | 
| 
       57407 
57454 
     | 
    
         
             
                                await new Promise(resolve => setTimeout(resolve, delaySec * 1000));
         
     | 
| 
       57408 
57455 
     | 
    
         
             
                            }
         
     | 
| 
       57409 
57456 
     | 
    
         
             
                        }
         
     | 
| 
       57410 
57457 
     | 
    
         
             
                    }
         
     | 
| 
      
 57458 
     | 
    
         
            +
             
     | 
| 
      
 57459 
     | 
    
         
            +
                    return {};
         
     | 
| 
       57411 
57460 
     | 
    
         
             
                }
         
     | 
| 
       57412 
57461 
     | 
    
         | 
| 
       57413 
57462 
     | 
    
         
             
                async #connectXrplClient(reconnect = false) {
         
     | 
| 
      
 57463 
     | 
    
         
            +
                    let res = [];
         
     | 
| 
       57414 
57464 
     | 
    
         
             
                    if (reconnect) {
         
     | 
| 
       57415 
57465 
     | 
    
         
             
                        if (this.#primaryServer) {
         
     | 
| 
       57416 
     | 
    
         
            -
                            Promise.all([this.# 
     | 
| 
      
 57466 
     | 
    
         
            +
                            res = await Promise.all([this.#attemptPrimaryServerReconnect(), this.#attemptFallbackServerReconnect()]);
         
     | 
| 
       57417 
57467 
     | 
    
         
             
                        } else {
         
     | 
| 
       57418 
     | 
    
         
            -
                            this.#attemptFallbackServerReconnect();
         
     | 
| 
      
 57468 
     | 
    
         
            +
                            res = [await this.#attemptFallbackServerReconnect()];
         
     | 
| 
       57419 
57469 
     | 
    
         
             
                        }
         
     | 
| 
       57420 
57470 
     | 
    
         
             
                    }
         
     | 
| 
       57421 
57471 
     | 
    
         
             
                    else {
         
     | 
| 
       57422 
57472 
     | 
    
         
             
                        if (this.#primaryServer) {
         
     | 
| 
       57423 
     | 
    
         
            -
                            Promise.all([this.# 
     | 
| 
      
 57473 
     | 
    
         
            +
                            res = await Promise.all([this.#attemptPrimaryServerReconnect(1), this.#attemptFallbackServerReconnect(1, 1)]);
         
     | 
| 
       57424 
57474 
     | 
    
         
             
                        } else {
         
     | 
| 
       57425 
     | 
    
         
            -
                            this.#attemptFallbackServerReconnect(1, 1);
         
     | 
| 
      
 57475 
     | 
    
         
            +
                            res = [await this.#attemptFallbackServerReconnect(1, 1)];
         
     | 
| 
       57426 
57476 
     | 
    
         
             
                        }
         
     | 
| 
       57427 
57477 
     | 
    
         
             
                    }
         
     | 
| 
       57428 
57478 
     | 
    
         | 
| 
       57429 
     | 
    
         
            -
                     
     | 
| 
      
 57479 
     | 
    
         
            +
                    if (res.filter(r => r && !r.error).length == 0)
         
     | 
| 
      
 57480 
     | 
    
         
            +
                        throw res.filter(r => r && r.error).map(r => r.error);
         
     | 
| 
       57430 
57481 
     | 
    
         | 
| 
       57431 
57482 
     | 
    
         
             
                    // After connection established, check again whether maintainConnections has become false.
         
     | 
| 
       57432 
57483 
     | 
    
         
             
                    // This is in case the consumer has called disconnect() while connection is being established.
         
     | 
| 
       57433 
57484 
     | 
    
         
             
                    if (!this.#isPermanentlyDisconnected) {
         
     | 
| 
      
 57485 
     | 
    
         
            +
                        await this.#waitForConnection();
         
     | 
| 
      
 57486 
     | 
    
         
            +
                        this.#releaseClient();
         
     | 
| 
      
 57487 
     | 
    
         
            +
             
     | 
| 
       57434 
57488 
     | 
    
         
             
                        this.ledgerIndex = await this.#getLedgerIndex();
         
     | 
| 
       57435 
57489 
     | 
    
         | 
| 
       57436 
57490 
     | 
    
         
             
                        this.#subscribeToStream('ledger');
         
     | 
| 
         @@ -57440,6 +57494,7 @@ class XrplApi { 
     | 
|
| 
       57440 
57494 
     | 
    
         
             
                            await this.#handleClientRequest({ command: 'subscribe', accounts: this.#addressSubscriptions.map(s => s.address) });
         
     | 
| 
       57441 
57495 
     | 
    
         
             
                    }
         
     | 
| 
       57442 
57496 
     | 
    
         
             
                    else {
         
     | 
| 
      
 57497 
     | 
    
         
            +
                        this.#releaseClient();
         
     | 
| 
       57443 
57498 
     | 
    
         
             
                        await this.disconnect();
         
     | 
| 
       57444 
57499 
     | 
    
         
             
                    }
         
     | 
| 
       57445 
57500 
     | 
    
         
             
                }
         
     | 
| 
         @@ -57501,24 +57556,27 @@ class XrplApi { 
     | 
|
| 
       57501 
57556 
     | 
    
         | 
| 
       57502 
57557 
     | 
    
         
             
                async connect() {
         
     | 
| 
       57503 
57558 
     | 
    
         
             
                    this.#isPermanentlyDisconnected = false;
         
     | 
| 
       57504 
     | 
    
         
            -
             
     | 
| 
      
 57559 
     | 
    
         
            +
             
     | 
| 
      
 57560 
     | 
    
         
            +
                    if (!this.#client || !this.#client.isConnected()) {
         
     | 
| 
      
 57561 
     | 
    
         
            +
                        await this.#connectXrplClient();
         
     | 
| 
      
 57562 
     | 
    
         
            +
                    }
         
     | 
| 
       57505 
57563 
     | 
    
         
             
                    const definitions = await this.#handleClientRequest({ command: 'server_definitions' })
         
     | 
| 
       57506 
57564 
     | 
    
         
             
                    this.xrplHelper = new XrplHelpers(definitions.result);
         
     | 
| 
       57507 
57565 
     | 
    
         
             
                }
         
     | 
| 
       57508 
57566 
     | 
    
         | 
| 
       57509 
57567 
     | 
    
         
             
                async disconnect() {
         
     | 
| 
       57510 
     | 
    
         
            -
                    await this.# 
     | 
| 
      
 57568 
     | 
    
         
            +
                    await this.#acquireConnection();
         
     | 
| 
       57511 
57569 
     | 
    
         | 
| 
       57512 
57570 
     | 
    
         
             
                    try {
         
     | 
| 
       57513 
57571 
     | 
    
         
             
                        this.#isPermanentlyDisconnected = true;
         
     | 
| 
       57514 
57572 
     | 
    
         | 
| 
       57515 
     | 
    
         
            -
                        if (this.#client.isConnected()) {
         
     | 
| 
      
 57573 
     | 
    
         
            +
                        if (this.#client && this.#client.isConnected()) {
         
     | 
| 
       57516 
57574 
     | 
    
         
             
                            await this.#client.disconnect().catch(console.error);
         
     | 
| 
       57517 
57575 
     | 
    
         
             
                        }
         
     | 
| 
       57518 
     | 
    
         
            -
                        this.# 
     | 
| 
      
 57576 
     | 
    
         
            +
                        this.#releaseConnection();
         
     | 
| 
       57519 
57577 
     | 
    
         
             
                    }
         
     | 
| 
       57520 
57578 
     | 
    
         
             
                    catch (e) {
         
     | 
| 
       57521 
     | 
    
         
            -
                        this.# 
     | 
| 
      
 57579 
     | 
    
         
            +
                        this.#releaseConnection();
         
     | 
| 
       57522 
57580 
     | 
    
         
             
                        throw e;
         
     | 
| 
       57523 
57581 
     | 
    
         
             
                    }
         
     | 
| 
       57524 
57582 
     | 
    
         
             
                }
         
     | 
| 
         @@ -57655,6 +57713,28 @@ class XrplApi { 
     | 
|
| 
       57655 
57713 
     | 
    
         
             
                    await this.#handleClientRequest({ command: 'subscribe', streams: [streamName] });
         
     | 
| 
       57656 
57714 
     | 
    
         
             
                }
         
     | 
| 
       57657 
57715 
     | 
    
         | 
| 
      
 57716 
     | 
    
         
            +
                /**
         
     | 
| 
      
 57717 
     | 
    
         
            +
                 * Get the transaction results if validated.
         
     | 
| 
      
 57718 
     | 
    
         
            +
                 * @param {string} txHash Hash of the transaction to check.
         
     | 
| 
      
 57719 
     | 
    
         
            +
                 * @returns Validated results of the transaction.
         
     | 
| 
      
 57720 
     | 
    
         
            +
                 */
         
     | 
| 
      
 57721 
     | 
    
         
            +
                async getTransactionValidatedResults(txHash) {
         
     | 
| 
      
 57722 
     | 
    
         
            +
                    const txResponse = await this.getTxnInfo(txHash)
         
     | 
| 
      
 57723 
     | 
    
         
            +
                        .catch((e) => {
         
     | 
| 
      
 57724 
     | 
    
         
            +
                            return null;
         
     | 
| 
      
 57725 
     | 
    
         
            +
                        });
         
     | 
| 
      
 57726 
     | 
    
         
            +
             
     | 
| 
      
 57727 
     | 
    
         
            +
                    if (txResponse?.validated) {
         
     | 
| 
      
 57728 
     | 
    
         
            +
                        return {
         
     | 
| 
      
 57729 
     | 
    
         
            +
                            id: txResponse?.hash,
         
     | 
| 
      
 57730 
     | 
    
         
            +
                            code: txResponse?.meta?.TransactionResult,
         
     | 
| 
      
 57731 
     | 
    
         
            +
                            details: txResponse
         
     | 
| 
      
 57732 
     | 
    
         
            +
                        };
         
     | 
| 
      
 57733 
     | 
    
         
            +
                    }
         
     | 
| 
      
 57734 
     | 
    
         
            +
             
     | 
| 
      
 57735 
     | 
    
         
            +
                    return null;
         
     | 
| 
      
 57736 
     | 
    
         
            +
                }
         
     | 
| 
      
 57737 
     | 
    
         
            +
             
     | 
| 
       57658 
57738 
     | 
    
         
             
                /**
         
     | 
| 
       57659 
57739 
     | 
    
         
             
                 * Watching to acquire the transaction submission. (Waits until txn. is applied to the ledger.)
         
     | 
| 
       57660 
57740 
     | 
    
         
             
                 * @param {string} txHash Transaction Hash
         
     | 
| 
         @@ -57723,18 +57803,18 @@ class XrplApi { 
     | 
|
| 
       57723 
57803 
     | 
    
         
             
                        return { ...txResult, ...(hookExecRes ? { hookExecutionResult: hookExecRes } : {}) };
         
     | 
| 
       57724 
57804 
     | 
    
         
             
                    else
         
     | 
| 
       57725 
57805 
     | 
    
         
             
                        throw { ...txResult, ...(hookExecRes ? { hookExecutionResult: hookExecRes } : {}) };
         
     | 
| 
       57726 
     | 
    
         
            -
             
     | 
| 
       57727 
57806 
     | 
    
         
             
                }
         
     | 
| 
       57728 
57807 
     | 
    
         | 
| 
       57729 
57808 
     | 
    
         
             
                /**
         
     | 
| 
       57730 
57809 
     | 
    
         
             
                 * Submit a multi-signature transaction and wait for validation.
         
     | 
| 
       57731 
57810 
     | 
    
         
             
                 * @param {object} tx Multi-signed transaction object.
         
     | 
| 
      
 57811 
     | 
    
         
            +
                 * @param {object} submissionRef [Optional] Reference object to take submission references.
         
     | 
| 
       57732 
57812 
     | 
    
         
             
                 * @returns response object of the validated transaction.
         
     | 
| 
       57733 
57813 
     | 
    
         
             
                 */
         
     | 
| 
       57734 
     | 
    
         
            -
                async submitMultisignedAndWait(tx) {
         
     | 
| 
      
 57814 
     | 
    
         
            +
                async submitMultisignedAndWait(tx, submissionRef = {}) {
         
     | 
| 
       57735 
57815 
     | 
    
         
             
                    tx.SigningPubKey = "";
         
     | 
| 
       57736 
     | 
    
         
            -
                     
     | 
| 
       57737 
     | 
    
         
            -
                    return await this.#prepareResponse(tx, submissionResult);
         
     | 
| 
      
 57816 
     | 
    
         
            +
                    submissionRef.submissionResult = await this.#handleClientRequest({ command: 'submit_multisigned', tx_json: tx });
         
     | 
| 
      
 57817 
     | 
    
         
            +
                    return await this.#prepareResponse(tx, submissionRef.submissionResult);
         
     | 
| 
       57738 
57818 
     | 
    
         
             
                }
         
     | 
| 
       57739 
57819 
     | 
    
         | 
| 
       57740 
57820 
     | 
    
         
             
                /**
         
     | 
| 
         @@ -57750,11 +57830,12 @@ class XrplApi { 
     | 
|
| 
       57750 
57830 
     | 
    
         
             
                /**
         
     | 
| 
       57751 
57831 
     | 
    
         
             
                 * Submit a single-signature transaction.
         
     | 
| 
       57752 
57832 
     | 
    
         
             
                 * @param {string} tx_blob Signed transaction object.
         
     | 
| 
      
 57833 
     | 
    
         
            +
                 * @param {object} submissionRef [Optional] Reference object to take submission references.
         
     | 
| 
       57753 
57834 
     | 
    
         
             
                 * @returns response object of the validated transaction.
         
     | 
| 
       57754 
57835 
     | 
    
         
             
                 */
         
     | 
| 
       57755 
     | 
    
         
            -
                async submitAndWait(tx, tx_blob) {
         
     | 
| 
       57756 
     | 
    
         
            -
                     
     | 
| 
       57757 
     | 
    
         
            -
                    return await this.#prepareResponse(tx, submissionResult);
         
     | 
| 
      
 57836 
     | 
    
         
            +
                async submitAndWait(tx, tx_blob, submissionRef = {}) {
         
     | 
| 
      
 57837 
     | 
    
         
            +
                    submissionRef.submissionResult = await this.#handleClientRequest({ command: 'submit', tx_blob: tx_blob });
         
     | 
| 
      
 57838 
     | 
    
         
            +
                    return await this.#prepareResponse(tx, submissionRef.submissionResult);
         
     | 
| 
       57758 
57839 
     | 
    
         
             
                }
         
     | 
| 
       57759 
57840 
     | 
    
         | 
| 
       57760 
57841 
     | 
    
         
             
                /**
         
     | 
    
        package/package.json
    CHANGED
    
    | 
         @@ -6,7 +6,7 @@ 
     | 
|
| 
       6 
6 
     | 
    
         
             
                ],
         
     | 
| 
       7 
7 
     | 
    
         
             
                "homepage": "https://github.com/HotPocketDev/evernode-js-client",
         
     | 
| 
       8 
8 
     | 
    
         
             
                "license": "SEE LICENSE IN https://raw.githubusercontent.com/EvernodeXRPL/evernode-resources/main/license/evernode-license.pdf",
         
     | 
| 
       9 
     | 
    
         
            -
                "version": "0.6. 
     | 
| 
      
 9 
     | 
    
         
            +
                "version": "0.6.37",
         
     | 
| 
       10 
10 
     | 
    
         
             
                "dependencies": {
         
     | 
| 
       11 
11 
     | 
    
         
             
                    "elliptic": "6.5.4",
         
     | 
| 
       12 
12 
     | 
    
         
             
                    "libsodium-wrappers": "0.7.10",
         
     |