Page MenuHomePhabricator

[Cashtab] Support ALP tokens
DraftPublic

Authored by bytesofman on Sat, Nov 23, 15:12.
This is a draft revision that has not yet been submitted for review.

Details

Reviewers
None
Group Reviewers
Restricted Project
Summary

Add support for ALP tokens (genesis, send, burn, mint)

Will handle listing and agora in a separate diff

Test Plan

npm test

Diff Detail

Repository
rABC Bitcoin ABC
Branch
cashtab-alp-genesis
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 31291
Build 62080: Build Diffcashtab-tests
Build 62079: arc lint + arc unit

Event Timeline

Failed tests logs:

====== CashTab Unit Tests: <Token /> available actions rendered ALP token ======
TestingLibraryElementError: Unable to find an element with the text: This token is not yet supported by Cashtab.. 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-cCbXAZ cGlszB"
    >
      <div
        class="Toastify"
      />
      <div
        class="sc-fHSTwm iKKFtc"
      >
        <div
          class="sc-hdPSEv drRDyR"
        >
          <div
            class="sc-hizQCF iuaOpi"
          >
            <img
              alt="cashtab"
              class="sc-eNPDpu kwpjsm"
              src="test-file-stub"
            />
          </div>
          <div
            class="sc-ekkqgF eMHjbd"
          >
            <select
              class="sc-iBmynh berchQ"
              data-testid="wallet-select"
              id="wallets"
              name="wallets"
            >
              <option
                class="sc-fKGOjr bOTepS"
                value="Token Test"
              >
                Token Test
              </option>
            </select>
            <div
              class="sc-kVrTmx jqgvTq"
            >
              <button
                aria-label="Copy ecash:qqq9f9z3uhpzkxrgdjkd7dxuuey7tmpmugpmnw0kue"
                class="sc-kvZOFW liNaUH"
              >
                <svg
                  title="copy-paste"
                />
              </button>
              <div
                class="sc-gFaPwZ bhfoic"
              >
                <div
                  class="sc-fhYwyz kXwmEk"
                >
                  <input
                    checked=""
                    class="sc-bMvGRv dnGmSn"
                    id="show-hide-balance"
                    name="show-hide-balance"
                    title="show-hide-balance"
                    type="checkbox"
                  />
                  <label
                    class="sc-jzgbtB hsNhPD"
                    for="show-hide-balance"
                  >
                    <span
                      class="sc-gJWqzi dYGNll"
                      data-off=""
                      data-on=""
                    />
                    <span
                      class="sc-rBLzX gWpmmy"
                    />
                  </label>
                </div>
              </div>
            </div>
          </div>
          <div
            class="sc-hlILIN inOePY"
            title="Wallet Info"
          >
            <div
              class="sc-hycgNl jFTmBM"
              title="Balance in XEC"
            >
              9,970.81
               
              XEC
               
            </div>
            <div
              class="sc-chAAoq kjYqmy"
              title="Balance in Local Currency"
            >
              $
              0.30
               
              USD
            </div>
            <p
              class="sc-dTLGrV fvjJeu"
              title="Price in Local Currency"
            >
              1 
              XEC
               = 
              0.00003000
               
              USD
            </p>
          </div>
          <div
            class="sc-cgHJcJ fwEPrl"
          >
            <div
              class="sc-iELTvK ciBjbO"
              height="210"
              width="320"
            >
              <button
                class="sc-kTUwUJ hTRNfw"
              >
                X
              </button>
              <div
                class="sc-jwKygS gwdWts"
                height="210"
              >
                <div
                  class="sc-cmTdod swdPe"
                >
                  ALP
                </div>
                <div
                  class="sc-btzYZH tZEwk"
                >
                  ALP v1 fungible token. Token may be of fixed or variable supply. If you have a mint baton, you can mint more of this token at any time. May have up to 9 decimal places. ALP tokens use EMPP technology, which supports more token actions compared to SLP and more complex combinations of token and app actions. ALP token txs may have up to 127 outputs.
                </div>
              </div>
              <div
                class="sc-lhVmIH eGThRU"
              >
                <button
                  class="sc-bYSBpT sc-elJkPf iByzwq"
                >
                  OK
                </button>
              </div>
            </div>
            <div
              class="sc-dqBHgY hshxLW"
            />
            <div
              class="sc-hzNEM hFuCgt"
            >
              100.0000
               
              Test CRD
               (
              tCRD
              )
            </div>
            <div
              class="sc-iSDuPN hqHiQd"
              title="Token Stats"
            >
              <div
                class="sc-fQejPQ btYqSh"
              >
                <button
                  class="sc-fcdeBU dJwmed"
                >
                  <img
                    alt="icon for 7cd7cd7c54167d306e770f972b564584c44cb412ee45839b4b97bb6e724c8849"
                    height="128"
                    src="https://icons.etokens.cash/128/7cd7cd7c54167d306e770f972b564584c44cb412ee45839b4b97bb6e724c8849.png"
                    width="128"
                  />
                </button>
              </div>
              <div
                class="sc-fQejPQ btYqSh"
              >
                <div
                  class="sc-etwtAo krsiJt"
                >
                  <div
                    class="sc-jXQZqI bVkCnL"
                  >
                    Type:
                  </div>
                  <div
                    class="sc-fQejPQ btYqSh"
                  >
                    <div
                      class="sc-cooIXK hDBkgu"
                    >
                      ALP
                       
                      <button
                        aria-label="Click for more info about this token type"
                        class="sc-kvZOFW liNaUH"
                      >
                        <svg
                          title="More Info"
                        />
                      </button>
                    </div>
                  </div>
                </div>
                <div
                  class="sc-etwtAo krsiJt"
                >
                  <div
                    class="sc-jXQZqI bVkCnL"
                  >
                    Token Id:
                  </div>
                  <div
                    class="sc-fQejPQ btYqSh"
                  >
                    <a
                      href="https://explorer.e.cash/tx/7cd7cd7c54167d306e770f972b564584c44cb412ee45839b4b97bb6e724c8849"
                      rel="noopener noreferrer"
                      target="_blank"
                    >
                      7cd
                      ...
                      849
                    </a>
                  </div>
                  <div
                    class="sc-fQejPQ btYqSh"
                  >
                    <button
                      aria-label="Copy Token ID"
                      class="sc-kvZOFW liNaUH"
                    >
                      <svg
                        title="copy-paste"
                      />
                    </button>
                  </div>
                </div>
                <div
                  class="sc-etwtAo krsiJt"
                >
                  <div
                    class="sc-jXQZqI bVkCnL"
                  >
                    decimals:
                  </div>
                  <div
                    class="sc-fQejPQ btYqSh"
                  >
                    4
                  </div>
                </div>
                <div
                  class="sc-etwtAo krsiJt"
                >
                  <div
                    class="sc-jXQZqI bVkCnL"
                  >
                    url:
                  </div>
                  <div
                    class="sc-fQejPQ sc-clNaTc howJgk"
                  >
                    <a
                      href="https://crd.network/tcrd"
                      rel="noreferrer"
                      target="_blank"
                    >
                      crd.network/tcrd
                    </a>
                  </div>
                </div>
                <div
                  class="sc-etwtAo krsiJt"
                >
                  <div
                    class="sc-jXQZqI bVkCnL"
                  >
                    created:
                  </div>
                  <div
                    class="sc-fQejPQ btYqSh"
                  >
                    Jan 1, 2022
                  </div>
                </div>
                <div
                  class="sc-etwtAo krsiJt"
                >
                  <div
                    class="sc-jXQZqI bVkCnL"
                  >
                    Genesis Qty:
                  </div>
                  <div
                    class="sc-fQejPQ btYqSh"
                  >
                    0.0000
                  </div>
                </div>
                <div
                  class="sc-etwtAo krsiJt"
                >
                  <div
                    class="sc-jXQZqI bVkCnL"
                  >
                    Supply:
                  </div>
                  <div
                    class="sc-fQejPQ btYqSh"
                  >
                    111,367.0000 (var.)
                  </div>
                </div>
              </div>
            </div>
            <div
              class="sc-tilXH dQSSSo"
            >
              Error querying agora for active offers. Try again later.
            </div>
            <div
              class="sc-gmeYpB iKnjIe"
              title="Token Actions"
            >
              <div
                class="sc-iGPElx iHtmSM"
              >
                <div
                  class="sc-gFaPwZ bhfoic"
                >
                  <div
                    class="sc-fhYwyz kZTqdd"
                  >
                    <input
                      class="sc-bMvGRv dnGmSn"
                      id="Toggle Send"
                      name="Toggle Send"
                      title="Toggle Send"
                      type="checkbox"
                    />
                    <label
                      class="sc-jzgbtB hsNhPD"
                      for="Toggle Send"
                    >
                      <span
                        class="sc-gJWqzi gEydeL"
                        data-off="➡️"
                        data-on="➡️"
                      />
                      <span
                        class="sc-rBLzX hAekJS"
                      />
                    </label>
                  </div>
                </div>
                <div
                  class="sc-fYxtnH YMNhn"
                >
                  Send 
                  Test CRD
                   (
                  tCRD
                  )
                </div>
              </div>
              <div
                class="sc-iGPElx iHtmSM"
              >
                <div
                  class="sc-gFaPwZ bhfoic"
                >
                  <div
                    class="sc-fhYwyz kZTqdd"
                  >
                    <input
                      class="sc-bMvGRv dnGmSn"
                      id="Toggle Airdrop"
                      name="Toggle Airdrop"
                      title="Toggle Airdrop"
                      type="checkbox"
                    />
                    <label
                      class="sc-jzgbtB hsNhPD"
                      for="Toggle Airdrop"
                    >
                      <span
                        class="sc-gJWqzi gEydeL"
                        data-off="🪂"
                        data-on="🪂"
                      />
                      <span
                        class="sc-rBLzX hAekJS"
                      />
                    </label>
                  </div>
                </div>
                <div
                  class="sc-fYxtnH YMNhn"
                >
                  Airdrop XEC to 
                  tCRD
                   
                  holders
                </div>
              </div>
              <div
                class="sc-iGPElx iHtmSM"
              >
                <div
                  class="sc-gFaPwZ bhfoic"
                >
                  <div
                    class="sc-fhYwyz kZTqdd"
                  >
                    <input
                      class="sc-bMvGRv dnGmSn"
                      id="Toggle Burn"
                      name="Toggle Burn"
                      title="Toggle Burn"
                      type="checkbox"
                    />
                    <label
                      class="sc-jzgbtB hsNhPD"
                      for="Toggle Burn"
                    >
                      <span
                        class="sc-gJWqzi gEydeL"
                        data-off="🔥"
                        data-on="🔥"
                      />
                      <span
                        class="sc-rBLzX hAekJS"
                      />
                    </label>
                  </div>
                </div>
                <div
                  class="sc-fYxtnH YMNhn"
                >
                  Burn 
                  tCRD
                </div>
              </div>
            </div>
          </div>
        </div>
        <div
          class="sc-cmIlrE dnHym"
        >
          <button
            class="sc-dRCTWM fmkhFW"
          >
            <svg />
          </button>
          <button
            aria-label="Send Screen"
            class="sc-dRCTWM fmkhFW"
            style="padding-bottom: 10px;"
          >
            <div
              class="sc-iwsKbI cuDgAv"
            >
              <svg
                title="tx-sent"
              />
            </div>
          </button>
          <button
            aria-label="Tokens"
            class="sc-dRCTWM fmkhFW"
          >
            <svg
              title="Tokens"
            />
          </button>
          <button
            aria-label="Receive"
            class="sc-dRCTWM fmkhFW"
          >
            <svg
              title="tx-received"
            />
          </button>
          <div
            class="sc-gleUXh dWqiyV"
            title="Show Other Screens"
          >
            <span
              class="sc-doWzTn cMiuQs"
            />
            <div
              class="sc-dBaXSw fRWxca"
              title="Other Screens"
            >
              <button
                class="sc-bNQFlB hhXxlj"
              >
                 
                <p>
                  Wallet Backup
                </p>
                <svg
                  title="wallet"
                />
              </button>
              <button
                class="sc-bNQFlB hhXxlj"
              >
                 
                <p>
                  Wallets
                </p>
                <svg
                  title="wallets"
                />
              </button>
              <button
                class="sc-bNQFlB hhXxlj"
              >
                 
                <p>
                  Listed NFTs
                </p>
                <svg
                  title="NFT"
                />
              </button>
              <button
                class="sc-bNQFlB hhXxlj"
              >
                 
                <p>
                  Agora
                </p>
                <svg
                  title="Meme Agora"
                />
              </button>
              <button
                class="sc-bNQFlB hhXxlj"
              >
                 
                <p>
                  Contacts
                </p>
                <svg
                  title="Contact List"
                />
              </button>
              <button
                class="sc-bNQFlB hhXxlj"
              >
                 
                <p>
                  Airdrop
                </p>
                <svg
                  title="tx-airdrop"
                />
              </button>
              <button
                class="sc-bNQFlB hhXxlj"
              >
                 
                <p>
                  Rewards
                </p>
                <svg
                  title="Cashtab Rewards"
                />
              </button>
              <button
                class="sc-bNQFlB hhXxlj"
              >
                 
                <p>
                  Swap
                </p>
                <svg
                  title="swap"
                />
              </button>
              <button
                class="sc-bNQFlB hhXxlj"
              >
                <p>
                  Sign & Verify
                </p>
                <svg
                  class="sc-htpNat bPFBeM"
                />
              </button>
              <button
                class="sc-bNQFlB hhXxlj"
              >
                <p>
                  Settings
                </p>
                <svg
                  title="settings"
                />
              </button>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</body>
    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.getByText (/work/cashtab/src/components/Etokens/__tests__/TokenActions.test.js:1334:20)

Each failure log is accessible here:
CashTab Unit Tests: <Token /> available actions rendered ALP token