Page MenuHomePhabricator

[Cashtab] Improve and standardize cashtab token cache
ClosedPublic

Authored by bytesofman on Mar 26 2024, 00:16.

Details

Reviewers
emack
Group Reviewers
Restricted Project
Commits
rABC6c6bac1395fc: [Cashtab] Improve and standardize cashtab token cache
Summary

T3461

This diff clears some lingering technical debt related to how Cashtab handles tokens.

Before this diff

  • Cashtab wallet has a 'tokens' key in state, which includes some token info
  • Other token info collected by API call when SendToken screen is loaded
  • Still other token info is cached
  • Various shims are in place to deal with expected info not being in the cache when it could or should be

After this diff

  • Put all the token info you need in the cache

A number of knock-on impacts led to this diff expanding. As with previous migrations -- the size is regrettable but imo worth the impact.

  • Now that we store tokens as a map (instead of an array of objects), we need JSON helper methods to store / activate wallets (we already do this with cashtabCache)
  • Since we need the helper method anyway, and we are migrating wallets anyway, upgrade wallet shape so that paths is a map, and we can stop doing the tedious .find() method throughout Cashtab. It is certainly overkill that we support multiple paths in a map. However, if we ever decide to expand Cashtab to support HD wallets or other coins, we will be happy to have this shape supported.
  • Add new helper methods decimalizeTokenAmount and undecimalizeTokenAmount to convert token quantities to and from decimalized amounts. We have been using BN for this, and we do still use it in some places -- however the implementation for BN is confusing, esp as there is no existing function and need to remember the correct way to use shiftedBy. These new methods are string-based and do not require any library. Since we have a new function for calculating token balances and info, I did not want to bring in legacy methods that will need to be refactored later.
  • The way Cashtab updates wallet state in the update method of useWallet.js is a mess. Clean it up now that we have some type stability in chronik. Now the workflow is streamlined and all functions are unit tested.
Test Plan

npm test

This diff is deployed at https://cashtab-local-dev.netlify.app/

Note: if you have a wallet with a lot of tokens, it make take some time to load. I considered adding a spinner to update, but since this delay is only expected for a small number of wallets and only before the new token cache is populated, I do not think it is worth adding this change to the app.

Diff Detail

Repository
rABC Bitcoin ABC
Branch
better-cache
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 28105
Build 55755: Build Diffcashtab-tests
Build 55754: arc lint + arc unit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

remove debug logs, clean up var names

bytesofman added inline comments.
cashtab/src/chronik/index.js
65 ↗(On Diff #46527)

done

72 ↗(On Diff #46527)

If we ever have HD support, we will need to add address back in as well. For now though, we only need path.

We need to know what wif to sign each utxo with. Since we have only one wif per path, path is the minimum info we need.

address would also work, but it is not straightforward to find since the paths map is keyed by path, not address.

75 ↗(On Diff #46527)

it's now harder to make chronik calls using hash160, so use address calls instead.

114 ↗(On Diff #46527)

We have this cumbersome name because, when this function was introduced, getUtxos was using bch-api, and the chronik way was new and needed distinct labeling.

158 ↗(On Diff #46527)

done

these legacy functions are a mess, carried over from the days when we had to use bch-api in tandem with slpdb to "hydrate" utxos

get rid of them. replace them with cleaner functions that are also easier to test, and test them.

258 ↗(On Diff #46527)

what a mouthful

319 ↗(On Diff #46527)

we now handle this in-node chronik edge case by adding this tokenId to cache by default. Any cache without it is invalid, so any cashtab user will have this on app load.

454 ↗(On Diff #46527)

we only parse one kind of tx

498 ↗(On Diff #46527)

parseChronikTx was tolerant to not having token genesis info, which it handled with a genesisInfo.success flag

use assumedTokenDecimals instead, which is more specific about the consequence of parsing a chronik tx without knowing token decimals.

We use this flag to not render an amount for an incoming etoken tx if we do not know decimals.

We can't send or spend a token without knowing decimals. This is handled in SendToken.js

682 ↗(On Diff #46527)

in practice, this will almost always be only one output script, and it may almost always parse as a p2pkh or p2sh address

but, there could be edge cases, and also exceptions for different (new) token types. So use this as a robust approach.

754 ↗(On Diff #46527)

genesisInfo used to live in cache and also in parsedTxHistory. No reason to duplicate it.

cashtab/src/components/Configure/__tests__/Configure.test.js
476 ↗(On Diff #46527)

we now expect wallets coming from localforage to be JSON. they must be converted to compare to in-app wallets.

cashtab/src/components/Etokens/TokenList.js
11 ↗(On Diff #46527)

was not able to find a way to use Map.forEach() here...but this just works with Array.map()

cashtab/src/components/Send/SendToken.js
53 ↗(On Diff #46527)

...arguably unrelated. But, we do add more rows of token info. So it makes sense to make sure the spacing looks nice.

93 ↗(On Diff #46527)

we do not render the component if cashtabCache.tokens.get(tokenId) is undefined. So, these default values are just to let us use object destructuring for variable assignment on lines below.

114 ↗(On Diff #46527)

we no longer remove a token from tokens if we have 0 balance. We just get 0 balance.

Will need to add a feature in the future to either remove 0 balance tokens or let the user not display them or hide them by default. But this diff is too big already, and imo this "feature" was not really helpful. It's better to just stay on the same page and see you have 0 balance than to be whisked away and not know why.

cashtab/src/components/fixtures/helpers.js
332 ↗(On Diff #46527)

would be nice to have standardized mocks in Cashtab. We are moving in that direction. This hardcoded approach duplicates what we were doing before. Improving the mock structure should be its own diff.

cashtab/src/transactions/index.js
21 ↗(On Diff #46527)

much cleaner way to get the wif

cashtab/src/utils/cashMethods.js
40 ↗(On Diff #46527)

will deprecate this function soon enough. but, we do not have to get rid of it in this diff, so we don't

emack requested changes to this revision.Mar 28 2024, 12:36
emack added a subscriber: emack.
emack added inline comments.
cashtab/src/chronik/__tests__/index.test.js
209 ↗(On Diff #46528)
cashtab/src/chronik/index.js
656 ↗(On Diff #46528)

Other code in this diff calls upon this getTokenGenesisInfo() function with no validation and places a lot of faith in this function to have all the required attributes, however there is no isValidCashtabCache equivalent check here on the chronik.token() response (e.g. checking genesisInfo is inside tokenInfo) and it just assumes it's all there in the right structure. Is the working assumption that if it passed from Chronik then it is a valid token with all of the expected attributes intact?

676 ↗(On Diff #46528)

Isn't this always 0 since cashtab does not keep the mint batons upon token creation? Or is this a precursor to introducing a post-genesis minting feature on Cashtab?

704 ↗(On Diff #46528)

In the genesis tx the token supply is always at output[1], what other scenario could result in the genesis supply being spread out over multiple outputs?

cashtab/src/components/Common/WalletLabel.js
52 ↗(On Diff #46528)

image.png (138×521 px, 27 KB)

cashtab/src/components/Etokens/Etokens.js
62 ↗(On Diff #46528)

image.png (719×666 px, 160 KB)

cashtab/src/components/Home/Tx.js
648 ↗(On Diff #46528)

similar to comment above, is it impossible for genesisInfo to be undefined if cachedTokenInfo exist?

cashtab/src/components/Send/SendToken.js
529 ↗(On Diff #46528)

Token Id, Mint date, Genesis Supply and Fixed Supply all have labels, so for consistency add Decimals and Url labels.

532 ↗(On Diff #46528)
534 ↗(On Diff #46528)
546 ↗(On Diff #46528)

use locale string formatting since these are typically large numbers (e.g. 21,000,000.00)

550 ↗(On Diff #46528)

Minor nit - true/false are really dev lingo, should use Yes/No for user interface terms.

626 ↗(On Diff #46528)

Perhaps for a separate diff but the new UI for SendToken.js is not very intuitive for new users e.g. it's not immediately obvious that clicking the Airdrop button has no baring on the send amount or burn amount. In fact, clicking on Airdrop navigates away to another screen and they lose any inputs entered on the previous screen.

One way to declutter this would be to put Airdrop and the Burn UI into an advanced dropdown, since most people who navigate here are simply looking to send. Only a small portion would be looking to airdrop or burn the token.

image.png (432×441 px, 31 KB)

And conversely, the token info should be displayed in a more professional way, other than just center justified text like a myspace page

image.png (179×293 px, 15 KB)

e.g. at a minimum, justify the info alongside the icon so it looks like a business card. There should be enough width available for this here.

image.png (147×407 px, 64 KB)

This revision now requires changes to proceed.Mar 28 2024, 12:36
bytesofman marked 13 inline comments as done.

locale formatting for token amounts, typo fixes, suggested improvements

changes have been pushed to https://cashtab-local-dev.netlify.app/

cashtab/src/chronik/index.js
656 ↗(On Diff #46528)

Yes, and more than a "working assumption" -- this validation is handled in chronik-client. Unless an error is thrown (which we handle), we will get the expected shapes.

Can confirm that genesisInfo is always in the response, and that block not be in the response, here: https://github.com/Bitcoin-ABC/bitcoin-abc/blob/master/modules/chronik-client/src/ChronikClientNode.ts#L1465

likewise, we know that outputs is always an array and in the response for chronik.tx -- confirm here:

shape of response: https://github.com/Bitcoin-ABC/bitcoin-abc/blob/master/modules/chronik-client/src/ChronikClientNode.ts#L1054
shape of tx in txs array: https://github.com/Bitcoin-ABC/bitcoin-abc/blob/master/modules/chronik-client/src/ChronikClientNode.ts#L1069

We are getting some compelling reasons to add typescript into Cashtab. But, since so much is handled by chronik-client, not yet high priority.

676 ↗(On Diff #46528)

Right now this will always be 0 for a token created by Cashtab. But,

  • Will add support for minting batons and minting in Cashtab
  • We can't assume all tokens were minted by Cashtab
704 ↗(On Diff #46528)

The supply tx is not necessarily always at output[1].

E.g., an ALP tx may have many genesis outputs with different supplies.

Similarly, some new as yet undefined token could be like ALP, or at least unlike slpv1 enough where we cannot assume supply is at output[1]. I'm not sure it's always at output[1] even for slpv1...I think Cashtab just happens to stick it there. But mb it is, would have to check the spec.

cashtab/src/components/Common/WalletLabel.js
52 ↗(On Diff #46528)

good catch, updated shape in PropTypes

cashtab/src/components/Etokens/Etokens.js
62 ↗(On Diff #46528)

Updated prop types, this is a map now

cashtab/src/components/Home/Tx.js
648 ↗(On Diff #46528)

If cachedTokenInfo is defined, then cachedTokenInfo.genesisInfo must exist

  • shape of chronik calls to get cached into is confirmed by chronik-client
  • isValidCashtabCache check the shape on app startup and will nuke / migrate cache if it's wrong
  • cashtab does not render UI until loadCashtabState completes, so we will always have a valid cashtabCache once we are loaded

In practice, we may find some edge cases to this. But if we do (many have come up for tx parsing in the past) -- it's easy to fix, and the "fix" should not necessarily be "just handle more type errors."

parseTx is still a work in progress. Now that we have a set shape for the txs from chronik-client, lots of robustness improvements need to come in.

cashtab/src/components/Send/SendToken.js
529 ↗(On Diff #46528)

aesthetic choice to keep this out. will prob come through and improve general appearance / organization of token info in a separate diff.

532 ↗(On Diff #46528)

This is a good suggestion but will handle in a separate diff. Current behavior of the app is to just print the url.

We should do a link, and also strip out https:// if it is present -- so we need some kind of render method / helper function to make sure we have a valid link before rendering the link.

534 ↗(On Diff #46528)

Potentially better but current behavior of app is no ':'

546 ↗(On Diff #46528)

this ended up being more work than I expected but Cashtab has needed this function for years so might as well add it now.

626 ↗(On Diff #46528)

good point on the airdrop and burn. I think we should wait for the custom switch to land, then add an "advanced" section. I don't think it needs to come here, and would be hard to do here with limited non-antd elements available.

way better token info idea. tbh I am kind of tempted to do it here, but I think this diff is already too big. since we already have other UI improvements that need to happen on the send screen, will do them after this diff.

T3491

emack requested changes to this revision.Mar 29 2024, 10:33

Now consistently getting this uncaught exception upon the creation of a new token, line 593 of useWallet didn't seem to have an obvious cause for this.

image.png (909×881 px, 202 KB)

This revision now requires changes to proceed.Mar 29 2024, 10:33

ensure we always use from-param state variables in useWallet

Now consistently getting this uncaught exception upon the creation of a new token, line 593 of useWallet didn't seem to have an obvious cause for this.

image.png (909×881 px, 202 KB)

good catch.

We have some lingering bugs with how our processChronikWsMsg is updated. We are correctly updating it to always use the latest cashtabState --- but then, in the function, we are still using old cashtabCache and settings values.

Ensure we are using the from-param values.

Required some refactoring to refreshAliasesOnStartup, which was also using a state var not included in its useEffect dependency.

fix proptypes for tokenlistitem

emack requested changes to this revision.Mar 29 2024, 11:53
emack added inline comments.
cashtab/src/components/Etokens/TokenList.js
13 ↗(On Diff #46583)

Still seeing this upon load of SendToken.js

image.png (417×594 px, 79 KB)

This revision now requires changes to proceed.Mar 29 2024, 11:53

use correct token cache to parse incoming txs

bytesofman added inline comments.
cashtab/src/components/Etokens/TokenList.js
13 ↗(On Diff #46583)

fixed

also updated the dev site at https://cashtab-local-dev.netlify.app/

emack requested changes to this revision.Mar 29 2024, 12:38

Burning the remaining balance of an eToken results in a blank page rather than being routed back to the token list view (as per master/prod).

image.png (879×1 px, 136 KB)

cashtab/src/components/Send/SendToken.js
350–353 ↗(On Diff #46585)

remove debug logs

This revision now requires changes to proceed.Mar 29 2024, 12:38
bytesofman marked an inline comment as done.

remove debug logs, useEffect back up for sendtoken

Burning the remaining balance of an eToken results in a blank page rather than being routed back to the token list view (as per master/prod).

image.png (879×1 px, 136 KB)

yup -- new tokens map will get rid of a token if it has no balance, just like the old array.

so, keeping this functionality.

Failed tests logs:

====== CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:139:39)
====== CashTab Unit Tests: <SendToken /> Accepts a valid ecash: prefixed address ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:170:39)
====== CashTab Unit Tests: <SendToken /> Accepts a valid etoken: prefixed address ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:199:39)
====== CashTab Unit Tests: <SendToken /> Accepts a valid alias ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:229:39)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for an invalid address ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:287:39)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for an alias without .xec suffix ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:310:39)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for valid alias that has not yet been registered ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:335:39)
====== CashTab Unit Tests: <SendToken /> Displays expected error if alias server gives a bad response ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:380:39)
====== CashTab Unit Tests: <SendToken /> Displays a validation error if the user includes any query string ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:418:39)
====== CashTab Unit Tests: <SendToken /> Renders the send token notification upon successful broadcast ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:455:39)
====== CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast ======
Error: Unable to find role="button" and name `/Burn/`

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByRole (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:498:39)

Each failure log is accessible here:
CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input
CashTab Unit Tests: <SendToken /> Accepts a valid ecash: prefixed address
CashTab Unit Tests: <SendToken /> Accepts a valid etoken: prefixed address
CashTab Unit Tests: <SendToken /> Accepts a valid alias
CashTab Unit Tests: <SendToken /> Displays a validation error for an invalid address
CashTab Unit Tests: <SendToken /> Displays a validation error for an alias without .xec suffix
CashTab Unit Tests: <SendToken /> Displays a validation error for valid alias that has not yet been registered
CashTab Unit Tests: <SendToken /> Displays expected error if alias server gives a bad response
CashTab Unit Tests: <SendToken /> Displays a validation error if the user includes any query string
CashTab Unit Tests: <SendToken /> Renders the send token notification upon successful broadcast
CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast

Failed tests logs:

====== CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:139:39)
====== CashTab Unit Tests: <SendToken /> Accepts a valid ecash: prefixed address ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:170:39)
====== CashTab Unit Tests: <SendToken /> Accepts a valid etoken: prefixed address ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:199:39)
====== CashTab Unit Tests: <SendToken /> Accepts a valid alias ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:229:39)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for an invalid address ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:287:39)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for an alias without .xec suffix ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:310:39)
====== CashTab Unit Tests: <SendToken /> Displays a validation error for valid alias that has not yet been registered ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:335:39)
====== CashTab Unit Tests: <SendToken /> Displays expected error if alias server gives a bad response ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:380:39)
====== CashTab Unit Tests: <SendToken /> Displays a validation error if the user includes any query string ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:418:39)
====== CashTab Unit Tests: <SendToken /> Renders the send token notification upon successful broadcast ======
TestingLibraryElementError: Unable to find an element with the placeholder text of: Address

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at Object.getElementError (/work/cashtab/node_modules/@testing-library/dom/dist/config.js:37:19)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:76:38
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:52:17
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:95:19
    at Object.getByPlaceholderText (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:455:39)
====== CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast ======
Error: Unable to find role="button" and name `/Burn/`

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
    >
      <div
        class="ant-spin-container"
      >
        <div
          class="sc-eXNvrr kbsTpV"
        >
          <div
            class="Toastify"
          />
          <div
            class="sc-fHxwqH fNwHka"
          >
            <div
              class="sc-cEvuZC bWyrkz"
            >
              <div
                class="sc-kQsIoO csntKf"
              >
                <div
                  class="sc-kXeGPI hEYpst"
                >
                  <img
                    alt="cashtab"
                    class="sc-fyjhYU beKakI"
                    src="test-file-stub"
                  />
                </div>
                <div
                  class="sc-jnlKLf gzkVTu"
                  data-testid="wallet-info-ctn"
                >
                  <div
                    class="sc-likbZx jmiEzI"
                  >
                    <select
                      class="sc-eKZiaR ferQPS"
                      id="wallets"
                      name="wallets"
                    >
                      <option
                        class="sc-drMfKT ftiuwy"
                        value="Transaction Fixtures"
                      >
                        Transaction Fixtures
                      </option>
                    </select>
                    <div
                      class="sc-kkGfuU McxTm"
                    >
                      <svg
                        class="sc-htoDjs dHRdfz"
                        style="margin-top: 8px;"
                      />
                    </div>
                    <button
                      aria-checked="true"
                      class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa ant-switch-checked"
                      role="switch"
                      type="button"
                    >
                      <div
                        class="ant-switch-handle"
                      />
                      <span
                        class="ant-switch-inner"
                      >
                        <span
                          class="ant-switch-inner-checked"
                        >
                          <svg
                            class="sc-jzJRlG hUMMXw"
                          />
                        </span>
                        <span
                          class="ant-switch-inner-unchecked"
                        >
                          <svg
                            class="sc-cSHVUG bgwEHu"
                          />
                        </span>
                      </span>
                    </button>
                  </div>
                  <div
                    class="sc-fgfRvd jUEtMT"
                    data-testid="balance-xec"
                  >
                    9,513.12
                     
                    XEC
                     
                  </div>
                  <div
                    class="sc-hIVACf gUmIBJ"
                    data-testid="balance-fiat"
                  >
                    $
                    0.29
                     
                    USD
                  </div>
                  <p
                    class="sc-gpHHfC eAQQPO"
                    data-testid="ecash-price"
                  >
                    1 
                    XEC
                     = 
                    0.00003000
                     
                    USD
                  </p>
                </div>
              </div>
              <br />
              <div
                class="sc-bbmXgH iYDljl"
                data-testid="home-ctn"
              >
                <div
                  class="sc-kTUwUJ iSPUZj"
                  data-testid="tx-history-ctn"
                >
                  <div>
                    <div
                      class="sc-kgAjT BsWay"
                    >
                      <div
                        class="ant-collapse ant-collapse-icon-position-start ant-collapse-borderless css-dev-only-do-not-override-1rqnfsa"
                      >
                        <div
                          class="ant-collapse-item ant-collapse-no-arrow"
                        >
                          <div
                            aria-disabled="false"
                            aria-expanded="false"
                            class="ant-collapse-header"
                            role="button"
                            tabindex="0"
                          >
                            <span
                              class="ant-collapse-header-text"
                            >
                              <div
                                class="sc-TOsTZ hAMgFi"
                              >
                                <div
                                  class="sc-iAyFgw sc-jWBwVP jctkHM"...
    at waitForWrapper (/work/cashtab/node_modules/@testing-library/dom/dist/wait-for.js:163:27)
    at /work/cashtab/node_modules/@testing-library/dom/dist/query-helpers.js:86:33
    at Object.findByRole (/work/cashtab/src/components/Send/__tests__/SendToken.test.js:498:39)

Each failure log is accessible here:
CashTab Unit Tests: <SendToken /> Renders the SendToken screen with send address input
CashTab Unit Tests: <SendToken /> Accepts a valid ecash: prefixed address
CashTab Unit Tests: <SendToken /> Accepts a valid etoken: prefixed address
CashTab Unit Tests: <SendToken /> Accepts a valid alias
CashTab Unit Tests: <SendToken /> Displays a validation error for an invalid address
CashTab Unit Tests: <SendToken /> Displays a validation error for an alias without .xec suffix
CashTab Unit Tests: <SendToken /> Displays a validation error for valid alias that has not yet been registered
CashTab Unit Tests: <SendToken /> Displays expected error if alias server gives a bad response
CashTab Unit Tests: <SendToken /> Displays a validation error if the user includes any query string
CashTab Unit Tests: <SendToken /> Renders the send token notification upon successful broadcast
CashTab Unit Tests: <SendToken /> Renders the burn token success notification upon successful burn tx broadcast

note this error was from the conditions of the useffect updated incorrectly before correcting -- tests pass now

This revision is now accepted and ready to land.Mar 29 2024, 13:29