Use latest coinselect and slpv1 methods to create and broadcast slpv1 token burn txs in Cashtab
Details
- Reviewers
PiRK - Group Reviewers
Restricted Project - Commits
- rABCad48553135ee: [Cashtab] Upgrade slpv1 burn txs
npm test
Diff Detail
- Repository
- rABC Bitcoin ABC
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
Tail of the build log:
/work/cashtab /work/abc-ci-builds/cashtab-tests npm WARN deprecated @babel/plugin-proposal-private-methods@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. npm WARN deprecated @babel/plugin-proposal-numeric-separator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead. npm WARN deprecated @babel/plugin-proposal-nullish-coalescing-operator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead. npm WARN deprecated rollup-plugin-terser@7.0.2: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser npm WARN deprecated @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead. npm WARN deprecated @babel/plugin-proposal-private-property-in-object@7.21.11: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead. npm WARN deprecated sourcemap-codec@1.4.8: Please use @jridgewell/sourcemap-codec instead npm WARN deprecated stable@0.1.8: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead npm WARN deprecated @babel/plugin-proposal-optional-chaining@7.21.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead. npm WARN deprecated workbox-cacheable-response@6.6.0: workbox-background-sync@6.6.0 added 1722 packages, and audited 1723 packages in 22s 263 packages are looking for funding run `npm fund` for details found 0 vulnerabilities > cashtab@1.3.0 build > node scripts/build.js Creating an optimized production build... Failed to compile. [eslint] src/components/Send/SendToken.js Line 33:10: 'burnToken' is defined but never used no-unused-vars Search for the keywords to learn more about each error. Build cashtab-tests failed with exit code 1
Failed tests logs:
====== CashTab Unit Tests: <Home /> Renders Sideshift button if user loads with a new wallet ======
Error: Unable to find role="button" and name `/Exchange to XEC via SideShift/`
Ignored nodes: comments, script, style
<body>
<div>
<div
class="ant-spin-nested-loading css-dev-only-do-not-override-1rqnfsa"
>
<div>
<div
aria-busy="true"
aria-live="polite"
class="ant-spin ant-spin-spinning css-dev-only-do-not-override-1rqnfsa"
>
<span
aria-label="loading"
class="anticon anticon-loading anticon-spin cashLoadingIcon ant-spin-dot"
role="img"
>
<svg
aria-hidden="true"
data-icon="loading"
fill="currentColor"
focusable="false"
height="1em"
viewBox="0 0 1024 1024"
width="1em"
>
<path
d="M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z"
/>
</svg>
</span>
</div>
</div>
<div
class="ant-spin-container ant-spin-blur"
>
<div
class="sc-LKuAh jSXNAo"
>
<div
class="sc-kZmsYB eHkWzo"
>
<div
class="sc-RcBXQ gMCskf"
>
<div
class="sc-hzNEM iiFjIO"
>
<div
class="sc-iSDuPN ccpgHi"
>
<img
alt="cashtab"
class="sc-fZwumE bcurWd"
src="test-file-stub"
/>
</div>
<div
class="sc-elJkPf geNavj"
data-testid="wallet-info-ctn"
>
<div
class="sc-dEoRIm iVOOxs"
>
<div
class="sc-jtggT dNidya"
>
Transaction Fixtures
</div>
<a
href="/configure"
>
<svg
class="sc-jTzLTM bTdWCF"
/>
</a>
<div>
<button
aria-checked="false"
class="ant-switch ant-switch-small css-dev-only-do-not-override-1rqnfsa"
role="switch"
type="button"
>
<div
class="ant-switch-handle"
/>
<span
class="ant-switch-inner"
>
<span
class="ant-switch-inner-checked"
>
<svg
class="sc-cSHVUG bgwEHu"
/>
</span>
<span
class="ant-switch-inner-unchecked"
>
<svg
class="sc-kAzzGY fUTkYj"
/>
</span>
</span>
</button>
</div>
</div>
<div
class="sc-ebFjAB kxaSkj"
data-testid="balance-xec"
>
0.00
XEC
</div>
</div>
</div>
<div
class="sc-jwKygS hNrbtP"
data-testid="loading-ctn"
/>
</div>
<div
class="sc-iBEsjs jmPiFQ"
>
<button
class="sc-gmeYpB dpikyJ"
>
<svg />
</button>
<button
class="sc-gmeYpB eQwTbZ"
data-testid="nav-btn-send"
>
<svg
class="sc-kEYyzF dWIuoY"
style="margin-top: -9px;"
/>
</button>
<button
class="sc-gmeYpB eQwTbZ"
data-testid="nav-btn-etokens"
>
<span
aria-label="appstore-add"
class="anticon anticon-appstore-add"
role="img"
style="font-size: 24px;"
>
<svg
aria-hidden="true"
data-icon="appstore-add"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
>
<defs />
<path
d="M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zm52 132H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200zM424 712H296V584c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v128H104c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h128v128c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V776h128c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8z"
/>
</svg>
</span>
</button>
<button
class="sc-gmeYpB eQwTbZ"
data-testid="nav-btn-receive"
>
<svg />
</button>
<div
class="sc-chbbiW ktwTIv"
data-testid="hamburger"
>
<span
class="sc-kxynE bbUulF"
/>
<div
class="sc-cooIXK gkGTON"
data-testid="hamburger-menu"
>
<button
class="sc-fcdeBU RXlWo"
data-testid="nav-btn-airdrop"
>
<p>
Airdrop
</p>
<svg
height="33px"
width="30px"
/>
</button>
<button
class="sc-fcdeBU RXlWo"
data-testid="nav-btn-swap"
>
<p>
Swap
</p>
<span
aria-label="swap"
class="anticon anticon-swap"
role="img"
style="font-size: 24px;"
>
<svg
aria-hidden="true"
data-icon="swap"
fill="currentColor"
focusable="false"
height="1em"
viewBox="64 64 896 896"
width="1em"
>
<path
d="M847.9 592H152c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h605.2L612.9 851c-4.1 5.2-.4 13 6.3 13h72.5c4.9 0 9.5-2.2 12.6-6.1l168.8-214.1c16.5-21 1.6-51.8-25.2-51.8zM872 356H266.8l144.3-183c4.1-5.2.4-13-6.3-13h-72.5c-4.9 0-9.5 2.2-12.6 6.1L150.9 380.2c-16.5 21-1.6 51.8 25.1 51.8h696c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8z"
/>
</svg>
</span>
</button>
<button
class="sc-fcdeBU RXlWo"
data-testid="nav-btn-signverifymsg"
>
<p>
Sign & Verify
</p>
<svg
class="sc-chPdSV kiHcnD"
/>
</button>
<button
class="sc-fcdeBU RXlWo"
data-testid="nav-btn-configure"
>
<p>
Settings
</p>
<svg
height="33px"
width="30px"
/>
</button>
</div>
</div>
</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.findByRole (/work/cashtab/src/components/Home/__tests__/Home.test.js:128:26)Each failure log is accessible here:
CashTab Unit Tests: <Home /> Renders Sideshift button if user loads with a new wallet
| cashtab/src/components/Send/SendToken.js | ||
|---|---|---|
| 460 ↗ | (On Diff #45554) | Ran into this error before implementing the isBurn bool in sendXec -- this works i.e. this renders the error in the notification, previous method printed {} |
| cashtab/src/components/Send/__tests__/SendToken.test.js | ||
| 68 ↗ | (On Diff #45552) | I haven't gotten to these tests here while applying standardized cashtab testing wrappers throughout the app. Was necessary for the newest test, so applied it just there, with associated beforeEach and afterEach applying throughout this component will be its own diff. |
| 410 ↗ | (On Diff #45549) | This tx burns all input utxos Can see that the SLP is "sending" 0 can't tell in electrum but the mock here has a utxo qty of 1. need to get the chronik-client validate-tx endpoint supported for better testing of token txs |
| cashtab/src/slpv1/index.js | ||
| 201 ↗ | (On Diff #45552) | tokenId is needed in getSendTokenInputs and its dependent functions, getSlpSendTargetOutputs and getSlpBurnTargetOutputs It is available from a token utxo ... but we should pass it to make sure we are always using the same param. Will update getSlpSendTargetOutputs to use this param after this diff. |
| 209 ↗ | (On Diff #45552) | see D15525 |
| 221 ↗ | (On Diff #45552) | pending D15525 |
| cashtab/src/transactions/fixtures/vectors.js | ||
| 570 ↗ | (On Diff #45549) | 2 token inputs can see the hex is "SEND" ing 8ac72047b7ecebff ('9999996989999999000') -- in this case, this is the change, what we do not want to burn. You can see it corresponds with sendAmounts[1] on line 566 Instead of sending 10000000000 and catching 9999996989999999999 as change like the send tx, the burn tx just catches 9999996989999999999 as change while destroying the 10000000000 token utxo. |

