Page MenuHomePhabricator

[token-server + cashtab] Implement recaptcha for token rewards
ClosedPublic

Authored by bytesofman on Oct 8 2024, 18:33.

Details

Summary

Recaptcha implementation on the claimxec endpoint has been successful enough to markedly increase the number of CACHET claims, particularly those going to address that was once frequently claiming and consolidating XEC rewards.

So, push recaptchas to the CACHET claim endpoint as well.

Test Plan

npm test

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Failed tests logs:

====== CashTab Unit Tests: <Rewards /> An eligible cashtab wallet can claim a token reward ======
Error: Unable to find an element with the text: Rewards claimed!. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dEfkYy gCfMiu"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-cqPOvA clVrIX"
      >
        <div
          class="sc-gNJABI jWsBXr"
        >
          <div
            class="sc-kEmuub hIthwo"
          >
            <img
              alt="cashtab"
              class="sc-bbkauy jKzBhk"
              src="test-file-stub"
            />
            <div
              class="sc-ghsgMZ ceeeOL"
            >
               
              Rewards
              <svg
                title="Cashtab Rewards"
              />
            </div>
          </div>
          <div
            class="sc-eNNmBn edTXfc"
          >
            <select
              class="sc-eEieub iBVdYg"
              data-testid="wallet-select"
              id="wallets"
              name="wallets"
            >
              <option
                class="sc-RbTVP hMcPpG"
                value="Transaction Fixtures"
              >
                Transaction Fixtures
              </option>
            </select>
            <div
              class="sc-eopZyb iDutwN"
            >
              <button
                aria-label="Copy ecash:qqa9lv3kjd8vq7952p7rq0f6lkpqvlu0cydvxtd70g"
                class="sc-iQNlJl dQNUoI"
              >
                <svg
                  title="copy-paste"
                />
              </button>
              <div
                class="sc-cpmLhU dyeBXy"
              >
                <div
                  class="sc-dymIpo gyYfmt"
                >
                  <input
                    checked=""
                    class="sc-jzgbtB jgfSAg"
                    id="show-hide-balance"
                    name="show-hide-balance"
                    title="show-hide-balance"
                    type="checkbox"
                  />
                  <label
                    class="sc-bnXvFD hBMwJl"
                    for="show-hide-balance"
                  >
                    <span
                      class="sc-gFaPwZ jegjwl"
                      data-off=""
                      data-on=""
                    />
                    <span
                      class="sc-fhYwyz jdgzKk"
                    />
                  </label>
                </div>
              </div>
            </div>
          </div>
          <div
            class="sc-dznXNo epBKIx"
            title="Wallet Info"
          >
            <div
              class="sc-drlKqa gzObdq"
              title="Balance in XEC"
            >
              9,513.12
               
              XEC
               
            </div>
            <div
              class="sc-bIqbHp eQIbJZ"
              title="Balance in Local Currency"
            >
              $
              0.29
               
              USD
            </div>
            <p
              class="sc-jxGEyO dzLOSG"
              title="Price in Local Currency"
            >
              1 
              XEC
               = 
              0.00003000
               
              USD
            </p>
          </div>
          <div
            class="sc-iuDHTM bRkhcV"
          >
            <div
              class="sc-dREXXX fydifm"
              title="Rewards"
            >
              <button
                class="sc-bwCtUz sc-eTuwsz hBLfGp"
              >
                Claim Reward
              </button>
            </div>
          </div>
        </div>
        <div
          class="sc-yZwTr cWMKbM"
        >
          <button
            class="sc-FQuPU doSOrh"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-FQuPU doSOrh"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-FQuPU doSOrh"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-FQuPU doSOrh"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-fjhmcy jOtBOs"
            title="Show Other Screens"
          >
            <span
              class="sc-hwcHae jiKkID"
            />
            <div
              class="sc-lnmtFM dXSWsQ"
              title="Other Screens"
            >
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Listed NFTs
                </p>
                <svg
                  title="NFT"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-erNlkL glzCLH"
              >
                 
                <p>
                  Rewards
                </p>
                <svg
                  title="Cashtab Rewards"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</body>
    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.findByText (/work/cashtab/src/components/Rewards/__tests__/index.test.js:150:29)
====== CashTab Unit Tests: <Rewards /> We see expected error if token server is out of money ======
Error: Unable to find an element with the text: Error: token-server is out of rewards to send. Contact admin.. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dEfkYy gCfMiu"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-cqPOvA clVrIX"
      >
        <div
          class="sc-gNJABI jWsBXr"
        >
          <div
            class="sc-kEmuub hIthwo"
          >
            <img
              alt="cashtab"
              class="sc-bbkauy jKzBhk"
              src="test-file-stub"
            />
            <div
              class="sc-ghsgMZ ceeeOL"
            >
               
              Rewards
              <svg
                title="Cashtab Rewards"
              />
            </div>
          </div>
          <div
            class="sc-eNNmBn edTXfc"
          >
            <select
              class="sc-eEieub iBVdYg"
              data-testid="wallet-select"
              id="wallets"
              name="wallets"
            >
              <option
                class="sc-RbTVP hMcPpG"
                value="Transaction Fixtures"
              >
                Transaction Fixtures
              </option>
            </select>
            <div
              class="sc-eopZyb iDutwN"
            >
              <button
                aria-label="Copy ecash:qqa9lv3kjd8vq7952p7rq0f6lkpqvlu0cydvxtd70g"
                class="sc-iQNlJl dQNUoI"
              >
                <svg
                  title="copy-paste"
                />
              </button>
              <div
                class="sc-cpmLhU dyeBXy"
              >
                <div
                  class="sc-dymIpo gyYfmt"
                >
                  <input
                    checked=""
                    class="sc-jzgbtB jgfSAg"
                    id="show-hide-balance"
                    name="show-hide-balance"
                    title="show-hide-balance"
                    type="checkbox"
                  />
                  <label
                    class="sc-bnXvFD hBMwJl"
                    for="show-hide-balance"
                  >
                    <span
                      class="sc-gFaPwZ jegjwl"
                      data-off=""
                      data-on=""
                    />
                    <span
                      class="sc-fhYwyz jdgzKk"
                    />
                  </label>
                </div>
              </div>
            </div>
          </div>
          <div
            class="sc-dznXNo epBKIx"
            title="Wallet Info"
          >
            <div
              class="sc-drlKqa gzObdq"
              title="Balance in XEC"
            >
              9,513.12
               
              XEC
               
            </div>
            <div
              class="sc-bIqbHp eQIbJZ"
              title="Balance in Local Currency"
            >
              $
              0.29
               
              USD
            </div>
            <p
              class="sc-jxGEyO dzLOSG"
              title="Price in Local Currency"
            >
              1 
              XEC
               = 
              0.00003000
               
              USD
            </p>
          </div>
          <div
            class="sc-iuDHTM bRkhcV"
          >
            <div
              class="sc-dREXXX fydifm"
              title="Rewards"
            >
              <button
                class="sc-bwCtUz sc-eTuwsz hBLfGp"
              >
                Claim Reward
              </button>
            </div>
          </div>
        </div>
        <div
          class="sc-yZwTr cWMKbM"
        >
          <button
            class="sc-FQuPU doSOrh"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-FQuPU doSOrh"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-FQuPU doSOrh"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-FQuPU doSOrh"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-fjhmcy jOtBOs"
            title="Show Other Screens"
          >
            <span
              class="sc-hwcHae jiKkID"
            />
            <div
              class="sc-lnmtFM dXSWsQ"
              title="Other Screens"
            >
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Listed NFTs
                </p>
                <svg
                  title="NFT"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-erNlkL glzCLH"
              >
                 
                <p>
                  Rewards
                </p>
                <svg
                  title="Cashtab Rewards"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</body>
    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.findByText (/work/cashtab/src/components/Rewards/__tests__/index.test.js:284:26)

Each failure log is accessible here:
CashTab Unit Tests: <Rewards /> An eligible cashtab wallet can claim a token reward
CashTab Unit Tests: <Rewards /> We see expected error if token server is out of money

add mocks for recaptcha in rewards tests

version bump and extension version bump

Failed tests logs:

====== CashTab Unit Tests: <Rewards /> An eligible cashtab wallet can claim a token reward ======
Error: Unable to find an element with the text: Rewards claimed!. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dEfkYy gCfMiu"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-cqPOvA clVrIX"
      >
        <div
          class="sc-gNJABI jWsBXr"
        >
          <div
            class="sc-kEmuub hIthwo"
          >
            <img
              alt="cashtab"
              class="sc-bbkauy jKzBhk"
              src="test-file-stub"
            />
            <div
              class="sc-ghsgMZ ceeeOL"
            >
               
              Rewards
              <svg
                title="Cashtab Rewards"
              />
            </div>
          </div>
          <div
            class="sc-eNNmBn edTXfc"
          >
            <select
              class="sc-eEieub iBVdYg"
              data-testid="wallet-select"
              id="wallets"
              name="wallets"
            >
              <option
                class="sc-RbTVP hMcPpG"
                value="Transaction Fixtures"
              >
                Transaction Fixtures
              </option>
            </select>
            <div
              class="sc-eopZyb iDutwN"
            >
              <button
                aria-label="Copy ecash:qqa9lv3kjd8vq7952p7rq0f6lkpqvlu0cydvxtd70g"
                class="sc-iQNlJl dQNUoI"
              >
                <svg
                  title="copy-paste"
                />
              </button>
              <div
                class="sc-cpmLhU dyeBXy"
              >
                <div
                  class="sc-dymIpo gyYfmt"
                >
                  <input
                    checked=""
                    class="sc-jzgbtB jgfSAg"
                    id="show-hide-balance"
                    name="show-hide-balance"
                    title="show-hide-balance"
                    type="checkbox"
                  />
                  <label
                    class="sc-bnXvFD hBMwJl"
                    for="show-hide-balance"
                  >
                    <span
                      class="sc-gFaPwZ jegjwl"
                      data-off=""
                      data-on=""
                    />
                    <span
                      class="sc-fhYwyz jdgzKk"
                    />
                  </label>
                </div>
              </div>
            </div>
          </div>
          <div
            class="sc-dznXNo epBKIx"
            title="Wallet Info"
          >
            <div
              class="sc-drlKqa gzObdq"
              title="Balance in XEC"
            >
              9,513.12
               
              XEC
               
            </div>
            <div
              class="sc-bIqbHp eQIbJZ"
              title="Balance in Local Currency"
            >
              $
              0.29
               
              USD
            </div>
            <p
              class="sc-jxGEyO dzLOSG"
              title="Price in Local Currency"
            >
              1 
              XEC
               = 
              0.00003000
               
              USD
            </p>
          </div>
          <div
            class="sc-iuDHTM bRkhcV"
          >
            <div
              class="sc-dREXXX fydifm"
              title="Rewards"
            >
              <button
                class="sc-bwCtUz sc-eTuwsz hBLfGp"
              >
                Claim Reward
              </button>
            </div>
          </div>
        </div>
        <div
          class="sc-yZwTr cWMKbM"
        >
          <button
            class="sc-FQuPU doSOrh"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-FQuPU doSOrh"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-FQuPU doSOrh"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-FQuPU doSOrh"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-fjhmcy jOtBOs"
            title="Show Other Screens"
          >
            <span
              class="sc-hwcHae jiKkID"
            />
            <div
              class="sc-lnmtFM dXSWsQ"
              title="Other Screens"
            >
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Listed NFTs
                </p>
                <svg
                  title="NFT"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-erNlkL glzCLH"
              >
                 
                <p>
                  Rewards
                </p>
                <svg
                  title="Cashtab Rewards"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</body>
    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.findByText (/work/cashtab/src/components/Rewards/__tests__/index.test.js:150:29)
====== CashTab Unit Tests: <Rewards /> We see expected error if token server is out of money ======
Error: Unable to find an element with the text: Error: token-server is out of rewards to send. Contact admin.. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="sc-dEfkYy gCfMiu"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-cqPOvA clVrIX"
      >
        <div
          class="sc-gNJABI jWsBXr"
        >
          <div
            class="sc-kEmuub hIthwo"
          >
            <img
              alt="cashtab"
              class="sc-bbkauy jKzBhk"
              src="test-file-stub"
            />
            <div
              class="sc-ghsgMZ ceeeOL"
            >
               
              Rewards
              <svg
                title="Cashtab Rewards"
              />
            </div>
          </div>
          <div
            class="sc-eNNmBn edTXfc"
          >
            <select
              class="sc-eEieub iBVdYg"
              data-testid="wallet-select"
              id="wallets"
              name="wallets"
            >
              <option
                class="sc-RbTVP hMcPpG"
                value="Transaction Fixtures"
              >
                Transaction Fixtures
              </option>
            </select>
            <div
              class="sc-eopZyb iDutwN"
            >
              <button
                aria-label="Copy ecash:qqa9lv3kjd8vq7952p7rq0f6lkpqvlu0cydvxtd70g"
                class="sc-iQNlJl dQNUoI"
              >
                <svg
                  title="copy-paste"
                />
              </button>
              <div
                class="sc-cpmLhU dyeBXy"
              >
                <div
                  class="sc-dymIpo gyYfmt"
                >
                  <input
                    checked=""
                    class="sc-jzgbtB jgfSAg"
                    id="show-hide-balance"
                    name="show-hide-balance"
                    title="show-hide-balance"
                    type="checkbox"
                  />
                  <label
                    class="sc-bnXvFD hBMwJl"
                    for="show-hide-balance"
                  >
                    <span
                      class="sc-gFaPwZ jegjwl"
                      data-off=""
                      data-on=""
                    />
                    <span
                      class="sc-fhYwyz jdgzKk"
                    />
                  </label>
                </div>
              </div>
            </div>
          </div>
          <div
            class="sc-dznXNo epBKIx"
            title="Wallet Info"
          >
            <div
              class="sc-drlKqa gzObdq"
              title="Balance in XEC"
            >
              9,513.12
               
              XEC
               
            </div>
            <div
              class="sc-bIqbHp eQIbJZ"
              title="Balance in Local Currency"
            >
              $
              0.29
               
              USD
            </div>
            <p
              class="sc-jxGEyO dzLOSG"
              title="Price in Local Currency"
            >
              1 
              XEC
               = 
              0.00003000
               
              USD
            </p>
          </div>
          <div
            class="sc-iuDHTM bRkhcV"
          >
            <div
              class="sc-dREXXX fydifm"
              title="Rewards"
            >
              <button
                class="sc-bwCtUz sc-eTuwsz hBLfGp"
              >
                Claim Reward
              </button>
            </div>
          </div>
        </div>
        <div
          class="sc-yZwTr cWMKbM"
        >
          <button
            class="sc-FQuPU doSOrh"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-FQuPU doSOrh"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-FQuPU doSOrh"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-FQuPU doSOrh"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-fjhmcy jOtBOs"
            title="Show Other Screens"
          >
            <span
              class="sc-hwcHae jiKkID"
            />
            <div
              class="sc-lnmtFM dXSWsQ"
              title="Other Screens"
            >
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Listed NFTs
                </p>
                <svg
                  title="NFT"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-erNlkL glzCLH"
              >
                 
                <p>
                  Rewards
                </p>
                <svg
                  title="Cashtab Rewards"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-erNlkL jUqjSc"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</body>
    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.findByText (/work/cashtab/src/components/Rewards/__tests__/index.test.js:284:26)

Each failure log is accessible here:
CashTab Unit Tests: <Rewards /> An eligible cashtab wallet can claim a token reward
CashTab Unit Tests: <Rewards /> We see expected error if token server is out of money

bytesofman published this revision for review.Oct 8 2024, 19:38
bytesofman added inline comments.
apps/token-server/test/routes.test.ts
268 ↗(On Diff #49987)

see D16869

I removed this test here when I discovered it, but it more appropriately should have its own diff

the weird changes seen to the claimxec tests have to do with how phab formatted this change.

cashtab/extension/public/manifest.json
5 ↗(On Diff #49987)

bump the extension as this will break token rewards for extension users if we do not publish there

This revision is now accepted and ready to land.Oct 8 2024, 20:10