Page MenuHomePhabricator

[ecash-agora] Create 64-bit offers by default
DraftPublic

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

Details

Reviewers
None
Group Reviewers
Restricted Project
Summary

Should publish this once the upgrade is live. There won't really be any point for 32-bit offers once we have 64-bit working. For now though, we preserve the existing tests, as existing tests already covered both.

Test Plan

npm test, CI

Diff Detail

Repository
rABC Bitcoin ABC
Branch
ecash-agora-default-bump
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 35071
Build 69602: Build Diffecash-agora-tests · cashtab-tests · ecash-agora-integration-tests
Build 69601: arc lint + arc unit

Event Timeline

Failed tests logs:

====== CashTab Unit Tests: <Token /> available actions rendered We can redeem 1 Firma for $1 of XEC using a workflow unique to Firma ======
Error: Unable to find an element with the text: Redeem $FIRMA for XEC?. 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-kDhYZr lbsWhv"
    >
      <section
        aria-atomic="false"
        aria-label="Notifications Alt+T"
        aria-live="polite"
        aria-relevant="additions text"
        class="Toastify"
      >
        <div
          class="Toastify__toast-container Toastify__toast-container--top-right"
          tabindex="-1"
        >
          <div
            class="Toastify__toast Toastify__toast-theme--dark Toastify__toast--error Toastify__toast--close-on-click Toastify--animate Toastify__bounce-enter--top-right"
            data-in="true"
            id="14"
            role="alert"
            tabindex="0"
          >
            <div
              class="Toastify__toast-icon Toastify--animate-icon Toastify__zoom-enter"
            >
              <svg
                fill="var(--toastify-icon-color-error)"
                height="100%"
                viewBox="0 0 24 24"
                width="100%"
              >
                <path
                  d="M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"
                />
              </svg>
            </div>
            Unable to create Agora offer with these parameters, try increasing the min buy.
            <button
              aria-label="close"
              class="Toastify__close-button Toastify__close-button--dark"
              type="button"
            >
              <svg
                aria-hidden="true"
                viewBox="0 0 14 16"
              >
                <path
                  d="M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"
                  fill-rule="evenodd"
                />
              </svg>
            </button>
            <div
              class="Toastify__progress-bar--wrp"
              data-hidden="false"
            >
              <div
                class="Toastify__progress-bar--bg Toastify__progress-bar-theme--dark Toastify__progress-bar--error"
              />
              <div
                aria-hidden="false"
                aria-label="notification timer"
                class="Toastify__progress-bar Toastify__progress-bar--animated Toastify__progress-bar-theme--dark Toastify__progress-bar--error"
                role="progressbar"
                style="animation-duration: 2000ms; animation-play-state: paused;"
              />
            </div>
          </div>
        </div>
      </section>
      <div
        class="sc-sPYgB bWdybM"
      >
        <div
          class="sc-dHIava gwcDcN"
        >
          <div
            class="sc-jQMNup kYdEKV"
            title="Wallet Info"
          >
            <div
              class="sc-bJHhxl iuqHLk"
            >
              <img
                alt="cashtab"
                src="test-file-stub"
              />
              <div
                class="sc-epGmkI jhLth"
                title="Price in Local Currency mobile"
              >
                1 
                XEC
                 = 
                0.00003000
                 
                USD
              </div>
            </div>
            <div
              class="sc-TuwoP GeXYV"
            >
              <div
                class="sc-fQkuQJ YYJpm"
                title="Price in Local Currency"
              >
                1 
                XEC
                 = 
                0.00003000
                 
                USD
              </div>
              <div
                class="sc-dphlzf itKiXF"
              >
                <label
                  class="sc-kvkilB GiLpZ"
                >
                  <input
                    checked=""
                    class="sc-cANqwJ OsUKg"
                    type="checkbox"
                  />
                  <div
                    class="sc-clWJBl kdzlZe"
                  >
                    <img
                      alt="toggle icon"
                      src="test-file-stub"
                    />
                  </div>
                </label>
                <button
                  aria-label="Copy ecash:qqq9f9z3uhpzkxrgdjkd7dxuuey7tmpmugpmnw0kue"
                  class="sc-dNLxif cAFGSA"
                >
                  <svg
                    title="copy-paste"
                  />
                </button>
                <select
                  class="sc-fCPvlr kWYXIa"
                  data-testid="wallet-select"
                  id="wallets"
                  name="wallets"
                >
                  <option
                    class="sc-gAmQfK cThFwn"
                    [...
    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/Etokens/__tests__/TokenActions.test.js:2370:26)
====== CashTab Unit Tests: <Token /> available actions rendered FIRMA redeem is disabled if the hot wallet cannot cover redeem amount ======
Error: Unable to find an element with the text: Redeem $FIRMA for XEC?. 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-kDhYZr lbsWhv"
    >
      <section
        aria-atomic="false"
        aria-label="Notifications Alt+T"
        aria-live="polite"
        aria-relevant="additions text"
        class="Toastify"
      >
        <div
          class="Toastify__toast-container Toastify__toast-container--top-right"
          tabindex="-1"
        >
          <div
            class="Toastify__toast Toastify__toast-theme--dark Toastify__toast--error Toastify__toast--close-on-click Toastify--animate Toastify__bounce-enter--top-right"
            data-in="true"
            id="15"
            role="alert"
            tabindex="0"
          >
            <div
              class="Toastify__toast-icon Toastify--animate-icon Toastify__zoom-enter"
            >
              <svg
                fill="var(--toastify-icon-color-error)"
                height="100%"
                viewBox="0 0 24 24"
                width="100%"
              >
                <path
                  d="M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"
                />
              </svg>
            </div>
            Unable to create Agora offer with these parameters, try increasing the min buy.
            <button
              aria-label="close"
              class="Toastify__close-button Toastify__close-button--dark"
              type="button"
            >
              <svg
                aria-hidden="true"
                viewBox="0 0 14 16"
              >
                <path
                  d="M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"
                  fill-rule="evenodd"
                />
              </svg>
            </button>
            <div
              class="Toastify__progress-bar--wrp"
              data-hidden="false"
            >
              <div
                class="Toastify__progress-bar--bg Toastify__progress-bar-theme--dark Toastify__progress-bar--error"
              />
              <div
                aria-hidden="false"
                aria-label="notification timer"
                class="Toastify__progress-bar Toastify__progress-bar--animated Toastify__progress-bar-theme--dark Toastify__progress-bar--error"
                role="progressbar"
                style="animation-duration: 2000ms; animation-play-state: paused;"
              />
            </div>
          </div>
        </div>
      </section>
      <div
        class="sc-sPYgB bWdybM"
      >
        <div
          class="sc-dHIava gwcDcN"
        >
          <div
            class="sc-jQMNup kYdEKV"
            title="Wallet Info"
          >
            <div
              class="sc-bJHhxl iuqHLk"
            >
              <img
                alt="cashtab"
                src="test-file-stub"
              />
              <div
                class="sc-epGmkI jhLth"
                title="Price in Local Currency mobile"
              >
                1 
                XEC
                 = 
                0.00003000
                 
                USD
              </div>
            </div>
            <div
              class="sc-TuwoP GeXYV"
            >
              <div
                class="sc-fQkuQJ YYJpm"
                title="Price in Local Currency"
              >
                1 
                XEC
                 = 
                0.00003000
                 
                USD
              </div>
              <div
                class="sc-dphlzf itKiXF"
              >
                <label
                  class="sc-lhLRcH fEtigE"
                >
                  <input
                    checked=""
                    class="sc-jMtzgO hFVdHq"
                    type="checkbox"
                  />
                  <div
                    class="sc-ccvjgv hQHZNr"
                  >
                    <img
                      alt="toggle icon"
                      src="test-file-stub"
                    />
                  </div>
                </label>
                <button
                  aria-label="Copy ecash:qqq9f9z3uhpzkxrgdjkd7dxuuey7tmpmugpmnw0kue"
                  class="sc-dNLxif cAFGSA"
                >
                  <svg
                    title="copy-paste"
                  />
                </button>
                <select
                  class="sc-fCPvlr kWYXIa"
                  data-testid="wallet-select"
                  id="wallets"
                  name="wallets"
                >
                  <option
                    class="sc-gAmQfK cThFwn"
                    ...
    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/Etokens/__tests__/TokenActions.test.js:2507:26)

Each failure log is accessible here:
CashTab Unit Tests: <Token /> available actions rendered We can redeem 1 Firma for $1 of XEC using a workflow unique to Firma
CashTab Unit Tests: <Token /> available actions rendered FIRMA redeem is disabled if the hot wallet cannot cover redeem amount

64-bit tests for ALP, expect error for some, pushing for CI output review

Failed tests logs:

====== AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 0.000000001sat/token, full accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 0.000000001sat/token, full accept ======
Error: Failed getting /tx/undefined: 400: Not a txid: undefined
    at FailoverProxy.ensureResponseErrorThrown (/work/modules/chronik-client/src/failoverProxy.ts:218:23)
    at FailoverProxy._callAxios (/work/modules/chronik-client/src/failoverProxy.ts:196:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async FailoverProxy._request (/work/modules/chronik-client/src/failoverProxy.ts:121:34)
    at async ChronikClient.tx (/work/modules/chronik-client/src/ChronikClient.ts:273:22)
    at async Context.<anonymous> (tests/partial.alp.test.ts:454:30)
====== AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 0.000000001sat/token, dust accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 0.000000001sat/token, dust accept ======
Error: Failed getting /tx/undefined: 400: Not a txid: undefined
    at FailoverProxy.ensureResponseErrorThrown (/work/modules/chronik-client/src/failoverProxy.ts:218:23)
    at FailoverProxy._callAxios (/work/modules/chronik-client/src/failoverProxy.ts:196:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async FailoverProxy._request (/work/modules/chronik-client/src/failoverProxy.ts:121:34)
    at async ChronikClient.tx (/work/modules/chronik-client/src/ChronikClient.ts:273:22)
    at async Context.<anonymous> (tests/partial.alp.test.ts:454:30)
====== AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 0.000001sat/token, full accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 0.000001sat/token, full accept ======
Error: Failed getting /tx/undefined: 400: Not a txid: undefined
    at FailoverProxy.ensureResponseErrorThrown (/work/modules/chronik-client/src/failoverProxy.ts:218:23)
    at FailoverProxy._callAxios (/work/modules/chronik-client/src/failoverProxy.ts:196:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async FailoverProxy._request (/work/modules/chronik-client/src/failoverProxy.ts:121:34)
    at async ChronikClient.tx (/work/modules/chronik-client/src/ChronikClient.ts:273:22)
    at async Context.<anonymous> (tests/partial.alp.test.ts:454:30)
====== AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 0.000001sat/token, dust accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 0.000001sat/token, dust accept ======
Error: minAcceptedAtoms would cost less than dust at this price
    at Function.approximateParams (src/partial.ts:476:19)
    at Agora.selectParams (src/agora.ts:1212:36)
    at Context.<anonymous> (tests/partial.alp.test.ts:430:46)
    at process.processImmediate (node:internal/timers:485:21)
====== AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 0.001sat/token, max sats accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 0.001sat/token, max sats accept ======
Error: Failed getting /tx/undefined: 400: Not a txid: undefined
    at FailoverProxy.ensureResponseErrorThrown (/work/modules/chronik-client/src/failoverProxy.ts:218:23)
    at FailoverProxy._callAxios (/work/modules/chronik-client/src/failoverProxy.ts:196:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async FailoverProxy._request (/work/modules/chronik-client/src/failoverProxy.ts:121:34)
    at async ChronikClient.tx (/work/modules/chronik-client/src/ChronikClient.ts:273:22)
    at async Context.<anonymous> (tests/partial.alp.test.ts:454:30)
====== AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 0.001sat/token, min accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 0.001sat/token, min accept ======
Error: Failed getting /tx/undefined: 400: Not a txid: undefined
    at FailoverProxy.ensureResponseErrorThrown (/work/modules/chronik-client/src/failoverProxy.ts:218:23)
    at FailoverProxy._callAxios (/work/modules/chronik-client/src/failoverProxy.ts:196:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async FailoverProxy._request (/work/modules/chronik-client/src/failoverProxy.ts:121:34)
    at async ChronikClient.tx (/work/modules/chronik-client/src/ChronikClient.ts:273:22)
    at async Context.<anonymous> (tests/partial.alp.test.ts:454:30)
====== AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 1sat/token, max sats accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 1sat/token, max sats accept ======
Error: Failed getting /tx/undefined: 400: Not a txid: undefined
    at FailoverProxy.ensureResponseErrorThrown (/work/modules/chronik-client/src/failoverProxy.ts:218:23)
    at FailoverProxy._callAxios (/work/modules/chronik-client/src/failoverProxy.ts:196:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async FailoverProxy._request (/work/modules/chronik-client/src/failoverProxy.ts:121:34)
    at async ChronikClient.tx (/work/modules/chronik-client/src/ChronikClient.ts:273:22)
    at async Context.<anonymous> (tests/partial.alp.test.ts:454:30)
====== AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 1sat/token, min accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 1sat/token, min accept ======
Error: Failed getting /tx/undefined: 400: Not a txid: undefined
    at FailoverProxy.ensureResponseErrorThrown (/work/modules/chronik-client/src/failoverProxy.ts:218:23)
    at FailoverProxy._callAxios (/work/modules/chronik-client/src/failoverProxy.ts:196:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
    at async FailoverProxy._request (/work/modules/chronik-client/src/failoverProxy.ts:121:34)
    at async ChronikClient.tx (/work/modules/chronik-client/src/ChronikClient.ts:273:22)
    at async Context.<anonymous> (tests/partial.alp.test.ts:454:30)

Each failure log is accessible here:
AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 0.000000001sat/token, full accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 0.000000001sat/token, full accept
AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 0.000000001sat/token, dust accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 0.000000001sat/token, dust accept
AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 0.000001sat/token, full accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 0.000001sat/token, full accept
AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 0.000001sat/token, dust accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 0.000001sat/token, dust accept
AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 0.001sat/token, max sats accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 0.001sat/token, max sats accept
AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 0.001sat/token, min accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 0.001sat/token, min accept
AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 1sat/token, max sats accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 1sat/token, max sats accept
AgoraPartial ALP: AgoraPartial ALP 281474976710655 for 1sat/token, min accept.AgoraPartial ALP AgoraPartial ALP 281474976710655 for 1sat/token, min accept