Page MenuHomePhabricator

D11111.id32547.diff
No OneTemporary

D11111.id32547.diff

diff --git a/web/cashtab/src/assets/copy.svg b/web/cashtab/src/assets/copy.svg
new file mode 100644
--- /dev/null
+++ b/web/cashtab/src/assets/copy.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"/></svg>
\ No newline at end of file
diff --git a/web/cashtab/src/assets/external-link-square-alt.svg b/web/cashtab/src/assets/external-link-square-alt.svg
new file mode 100644
--- /dev/null
+++ b/web/cashtab/src/assets/external-link-square-alt.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!-- Font Awesome Free 5.15.3 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z"/></svg>
\ No newline at end of file
diff --git a/web/cashtab/src/components/Common/CustomIcons.js b/web/cashtab/src/components/Common/CustomIcons.js
--- a/web/cashtab/src/components/Common/CustomIcons.js
+++ b/web/cashtab/src/components/Common/CustomIcons.js
@@ -17,6 +17,8 @@
import { ReactComponent as Unparsed } from '@assets/alert-circle.svg';
import { ReactComponent as Home } from '@assets/home.svg';
import { ReactComponent as Settings } from '@assets/cog.svg';
+import { ReactComponent as CopySolid } from '@assets/copy.svg';
+import { ReactComponent as LinkSolid } from '@assets/external-link-square-alt.svg';
export const CashLoadingIcon = <LoadingOutlined className="cashLoadingIcon" />;
@@ -59,6 +61,20 @@
color: ${props => props.theme.icons.outlined} !important;
`;
+export const ThemedCopySolid = styled(CopySolid)`
+ fill: ${props => props.theme.contrast};
+ padding: 0rem 0rem 0.27rem 0rem;
+ height: 1.3em;
+ width: 1.3em;
+`;
+
+export const ThemedLinkSolid = styled(LinkSolid)`
+ fill: ${props => props.theme.contrast};
+ padding: 0.15rem 0rem 0.18rem 0rem;
+ height: 1.3em;
+ width: 1.3em;
+`;
+
export const LoadingBlock = styled.div`
width: 100%;
display: flex;
diff --git a/web/cashtab/src/components/Common/Notifications.js b/web/cashtab/src/components/Common/Notifications.js
--- a/web/cashtab/src/components/Common/Notifications.js
+++ b/web/cashtab/src/components/Common/Notifications.js
@@ -170,6 +170,15 @@
});
};
+const generalNotification = (data, msgStr) => {
+ const notificationStyle = getDeviceNotificationStyle();
+ notification.success({
+ message: msgStr,
+ description: data,
+ style: notificationStyle,
+ });
+};
+
export {
sendXecNotification,
createTokenNotification,
@@ -179,4 +188,5 @@
eTokenReceivedNotification,
errorNotification,
messageSignedNotification,
+ generalNotification,
};
diff --git a/web/cashtab/src/components/Common/StyledCollapse.js b/web/cashtab/src/components/Common/StyledCollapse.js
--- a/web/cashtab/src/components/Common/StyledCollapse.js
+++ b/web/cashtab/src/components/Common/StyledCollapse.js
@@ -90,3 +90,26 @@
`}
`;
+
+export const AntdContextCollapseWrapper = styled.div`
+ .ant-collapse {
+ border: none !important;
+ background-color: transparent !important;
+ }
+ .ant-collapse-item {
+ border: none !important;
+ }
+ .ant-collapse-header {
+ padding: 0 !important;
+ color: ${props => props.theme.forms.text} !important;
+ }
+ border-radius: 16px;
+ /* margin-bottom: 12px; */
+ .ant-collapse-content-box {
+ padding-right: 0 !important;
+ }
+
+ @media screen and (max-width: 500px) {
+ grid-template-columns: 24px 30% 50%;
+ }
+`;
diff --git a/web/cashtab/src/components/Configure/__tests__/__snapshots__/Configure.test.js.snap b/web/cashtab/src/components/Configure/__tests__/__snapshots__/Configure.test.js.snap
--- a/web/cashtab/src/components/Configure/__tests__/__snapshots__/Configure.test.js.snap
+++ b/web/cashtab/src/components/Configure/__tests__/__snapshots__/Configure.test.js.snap
@@ -2,10 +2,10 @@
exports[`Configure with a wallet 1`] = `
<div
- className="sc-dnqmqq hItOJq"
+ className="sc-gZMcBi iCoKwX"
>
<div
- className="sc-cMljjf fUkzDG"
+ className="sc-gPEVay MsPfq"
>
<h2>
<span
@@ -75,7 +75,7 @@
</div>
</div>
<div
- className="ant-collapse ant-collapse-icon-position-left sc-kAzzGY dgSQWI"
+ className="ant-collapse ant-collapse-icon-position-left sc-kgoBCf bSSwhO"
role={null}
>
<div
@@ -113,7 +113,7 @@
</div>
</div>
<div
- className="sc-jAaTju gLeerB"
+ className="sc-iRbamj gnaEEo"
/>
<h2>
<span
@@ -138,7 +138,7 @@
Manage Wallets
</h2>
<button
- className="sc-hMqMXs jjgrrY"
+ className="sc-iAyFgw fHBaAb"
onClick={[Function]}
>
<span
@@ -166,7 +166,7 @@
New Wallet
</button>
<button
- className="sc-kEYyzF flSOwg"
+ className="sc-hSdWYo iYTbMn"
onClick={[Function]}
>
<span
@@ -191,7 +191,7 @@
Import Wallet
</button>
<div
- className="sc-jAaTju gLeerB"
+ className="sc-iRbamj gnaEEo"
/>
<h2>
<span
@@ -216,7 +216,7 @@
Fiat Currency
</h2>
<div
- className="sc-ckVGcZ kjECLI"
+ className="sc-hMqMXs EtsmJ"
>
<div
className="ant-select select-after ant-select-single ant-select-show-arrow"
@@ -308,7 +308,7 @@
</div>
</div>
<div
- className="sc-jAaTju gLeerB"
+ className="sc-iRbamj gnaEEo"
/>
<h2>
<span
@@ -333,7 +333,7 @@
General Settings
</h2>
<div
- className="sc-jDwBTQ fkhNYa"
+ className="sc-jlyJG sRRwV"
>
<div
className="title"
@@ -396,11 +396,11 @@
</button>
</div>
<div
- className="sc-jAaTju gLeerB"
+ className="sc-iRbamj gnaEEo"
/>
[
<a
- className="sc-iAyFgw blXbEO"
+ className="sc-cvbbAY jGCCOB"
href="https://docs.cashtab.com/docs/"
rel="noreferrer"
target="_blank"
@@ -423,10 +423,10 @@
exports[`Configure without a wallet 1`] = `
<div
- className="sc-dnqmqq hItOJq"
+ className="sc-gZMcBi iCoKwX"
>
<div
- className="sc-cMljjf fUkzDG"
+ className="sc-gPEVay MsPfq"
>
<h2>
<span
@@ -496,7 +496,7 @@
</div>
</div>
<div
- className="sc-jAaTju gLeerB"
+ className="sc-iRbamj gnaEEo"
/>
<h2>
<span
@@ -521,7 +521,7 @@
Manage Wallets
</h2>
<button
- className="sc-hMqMXs jjgrrY"
+ className="sc-iAyFgw fHBaAb"
onClick={[Function]}
>
<span
@@ -549,7 +549,7 @@
New Wallet
</button>
<button
- className="sc-kEYyzF flSOwg"
+ className="sc-hSdWYo iYTbMn"
onClick={[Function]}
>
<span
@@ -574,7 +574,7 @@
Import Wallet
</button>
<div
- className="sc-jAaTju gLeerB"
+ className="sc-iRbamj gnaEEo"
/>
<h2>
<span
@@ -599,7 +599,7 @@
Fiat Currency
</h2>
<div
- className="sc-ckVGcZ kjECLI"
+ className="sc-hMqMXs EtsmJ"
>
<div
className="ant-select select-after ant-select-single ant-select-show-arrow"
@@ -691,7 +691,7 @@
</div>
</div>
<div
- className="sc-jAaTju gLeerB"
+ className="sc-iRbamj gnaEEo"
/>
<h2>
<span
@@ -716,7 +716,7 @@
General Settings
</h2>
<div
- className="sc-jDwBTQ fkhNYa"
+ className="sc-jlyJG sRRwV"
>
<div
className="title"
@@ -779,11 +779,11 @@
</button>
</div>
<div
- className="sc-jAaTju gLeerB"
+ className="sc-iRbamj gnaEEo"
/>
[
<a
- className="sc-iAyFgw blXbEO"
+ className="sc-cvbbAY jGCCOB"
href="https://docs.cashtab.com/docs/"
rel="noreferrer"
target="_blank"
diff --git a/web/cashtab/src/components/Home/Tx.js b/web/cashtab/src/components/Home/Tx.js
--- a/web/cashtab/src/components/Home/Tx.js
+++ b/web/cashtab/src/components/Home/Tx.js
@@ -1,7 +1,7 @@
import React from 'react';
import { Link } from 'react-router-dom';
import PropTypes from 'prop-types';
-import styled from 'styled-components';
+import styled, { css } from 'styled-components';
import {
SendIcon,
ReceiveIcon,
@@ -12,7 +12,13 @@
import { fromLegacyDecimals } from '@utils/cashMethods';
import { formatBalance, formatDate } from '@utils/formatting';
import TokenIcon from '@components/Tokens/TokenIcon';
-
+import { Collapse } from 'antd';
+import { AntdContextCollapseWrapper } from '@components/Common/StyledCollapse';
+import { generalNotification } from '@components/Common/Notifications';
+import {
+ ThemedCopySolid,
+ ThemedLinkSolid,
+} from '@components/Common/CustomIcons';
const TxIcon = styled.div`
svg {
width: 20px;
@@ -269,6 +275,46 @@
flex-wrap: wrap;
`;
+const Panel = Collapse.Panel;
+
+const DropdownIconWrapper = styled.div`
+ display: flex;
+ align-items: center;
+ gap: 4px;
+`;
+
+const TextLayer = styled.div`
+ font-size: 12px;
+ color: ${props => props.theme.contrast};
+`;
+
+const DropdownButton = styled.button`
+ display: flex;
+ justify-content: flex-end;
+ background-color: ${props => props.theme.walletBackground};
+ border: none;
+ cursor: pointer;
+ padding: 0;
+ &:hover {
+ div {
+ color: ${props => props.theme.eCashBlue}!important;
+ }
+ svg {
+ fill: ${props => props.theme.eCashBlue}!important;
+ }
+ }
+`;
+const PanelCtn = styled.div`
+ display: flex;
+ justify-content: flex-end;
+ right: 0;
+ gap: 8px;
+`;
+
+export const TxLink = styled.a`
+ color: ${props => props.theme.primary};
+`;
+
const Tx = ({ data, fiatPrice, fiatCurrency }) => {
const txDate =
typeof data.blocktime === 'undefined'
@@ -296,240 +342,356 @@
<TxInfo>Open in Explorer</TxInfo>
</TxWrapper>
) : (
- <TxWrapper>
- {data.outgoingTx ? (
- <>
- {data.tokenTx &&
- data.tokenInfo.transactionType === 'GENESIS' ? (
- <GenesisTx>
- <GenesisIcon />
- </GenesisTx>
- ) : (
- <SentTx>
- <SendIcon />
- </SentTx>
- )}
- </>
- ) : (
- <ReceivedTx>
- <ReceiveIcon />
- </ReceivedTx>
- )}
-
- <LeftTextCtn>
- {data.outgoingTx ? (
- <>
- {data.tokenTx &&
- data.tokenInfo.transactionType === 'GENESIS' ? (
- <h3 className="genesis">Genesis</h3>
- ) : (
- <h3 className="sent">Sent</h3>
- )}
- </>
- ) : (
- <h3 className="received">Received</h3>
- )}
- <h4>{txDate}</h4>
- </LeftTextCtn>
- {data.tokenTx ? (
- <TokenInfo outgoing={data.outgoingTx}>
- {data.tokenTx && data.tokenInfo ? (
+ <AntdContextCollapseWrapper className="antd-collapse">
+ <Collapse bordered={false}>
+ <Panel
+ header={
<>
- <TxTokenIcon>
- <TokenIcon
- size={32}
- tokenId={data.tokenInfo.tokenId}
- />
- </TxTokenIcon>
- {data.outgoingTx ? (
- <RightTextCtn>
- {data.tokenInfo.transactionType ===
- 'GENESIS' ? (
+ <TxWrapper>
+ {data.outgoingTx ? (
+ <>
+ {data.tokenTx &&
+ data.tokenInfo
+ .transactionType ===
+ 'GENESIS' ? (
+ <GenesisTx>
+ <GenesisIcon />
+ </GenesisTx>
+ ) : (
+ <SentTx>
+ <SendIcon />
+ </SentTx>
+ )}
+ </>
+ ) : (
+ <ReceivedTx>
+ <ReceiveIcon />
+ </ReceivedTx>
+ )}
+
+ <LeftTextCtn>
+ {data.outgoingTx ? (
<>
- <TokenTxAmt className="genesis">
- +{' '}
- {data.tokenInfo.qtyReceived.toString()}
- &nbsp;
- {
- data.tokenInfo
- .tokenTicker
- }
- </TokenTxAmt>
- <TokenName>
- {
- data.tokenInfo
- .tokenName
- }
- </TokenName>
+ {data.tokenTx &&
+ data.tokenInfo
+ .transactionType ===
+ 'GENESIS' ? (
+ <h3 className="genesis">
+ Genesis
+ </h3>
+ ) : (
+ <h3 className="sent">
+ Sent
+ </h3>
+ )}
</>
) : (
- <>
- <TokenTxAmt>
- -{' '}
- {data.tokenInfo.qtySent.toString()}
- &nbsp;
- {
- data.tokenInfo
- .tokenTicker
- }
- </TokenTxAmt>
- <TokenName>
- {
- data.tokenInfo
- .tokenName
- }
- </TokenName>
- </>
+ <h3 className="received">
+ Received
+ </h3>
)}
- </RightTextCtn>
- ) : (
- <RightTextCtn>
- <TokenTxAmt className="received">
- +{' '}
- {data.tokenInfo.qtyReceived.toString()}
- &nbsp;
- {data.tokenInfo.tokenTicker}
- </TokenTxAmt>
- <TokenName>
- {data.tokenInfo.tokenName}
- </TokenName>
- </RightTextCtn>
- )}
+ <h4>{txDate}</h4>
+ </LeftTextCtn>
+ {data.tokenTx ? (
+ <TokenInfo
+ outgoing={data.outgoingTx}
+ >
+ {data.tokenTx &&
+ data.tokenInfo ? (
+ <>
+ <TxTokenIcon>
+ <TokenIcon
+ size={32}
+ tokenId={
+ data
+ .tokenInfo
+ .tokenId
+ }
+ />
+ </TxTokenIcon>
+ {data.outgoingTx ? (
+ <RightTextCtn>
+ {data.tokenInfo
+ .transactionType ===
+ 'GENESIS' ? (
+ <>
+ <TokenTxAmt className="genesis">
+ +{' '}
+ {data.tokenInfo.qtyReceived.toString()}
+ &nbsp;
+ {
+ data
+ .tokenInfo
+ .tokenTicker
+ }
+ </TokenTxAmt>
+ <TokenName>
+ {
+ data
+ .tokenInfo
+ .tokenName
+ }
+ </TokenName>
+ </>
+ ) : (
+ <>
+ <TokenTxAmt>
+ -{' '}
+ {data.tokenInfo.qtySent.toString()}
+ &nbsp;
+ {
+ data
+ .tokenInfo
+ .tokenTicker
+ }
+ </TokenTxAmt>
+ <TokenName>
+ {
+ data
+ .tokenInfo
+ .tokenName
+ }
+ </TokenName>
+ </>
+ )}
+ </RightTextCtn>
+ ) : (
+ <RightTextCtn>
+ <TokenTxAmt className="received">
+ +{' '}
+ {data.tokenInfo.qtyReceived.toString()}
+ &nbsp;
+ {
+ data
+ .tokenInfo
+ .tokenTicker
+ }
+ </TokenTxAmt>
+ <TokenName>
+ {
+ data
+ .tokenInfo
+ .tokenName
+ }
+ </TokenName>
+ </RightTextCtn>
+ )}
+ </>
+ ) : (
+ <span>Token Tx</span>
+ )}
+ </TokenInfo>
+ ) : (
+ <>
+ <TxInfo
+ outgoing={data.outgoingTx}
+ >
+ {data.outgoingTx ? (
+ <>
+ <h3>
+ -
+ {formatBalance(
+ fromLegacyDecimals(
+ data.amountSent,
+ ),
+ )}{' '}
+ {
+ currency.ticker
+ }
+ </h3>
+ {fiatPrice !==
+ null &&
+ !isNaN(
+ data.amountSent,
+ ) && (
+ <h4>
+ -
+ {
+ currency
+ .fiatCurrencies[
+ fiatCurrency
+ ]
+ .symbol
+ }
+ {(
+ fromLegacyDecimals(
+ data.amountSent,
+ ) *
+ fiatPrice
+ ).toFixed(
+ 2,
+ )}{' '}
+ {
+ currency
+ .fiatCurrencies
+ .fiatCurrency
+ }
+ </h4>
+ )}
+ </>
+ ) : (
+ <>
+ <h3 className="received">
+ +
+ {formatBalance(
+ fromLegacyDecimals(
+ data.amountReceived,
+ ),
+ )}{' '}
+ {
+ currency.ticker
+ }
+ </h3>
+ {fiatPrice !==
+ null &&
+ !isNaN(
+ data.amountReceived,
+ ) && (
+ <h4>
+ +
+ {
+ currency
+ .fiatCurrencies[
+ fiatCurrency
+ ]
+ .symbol
+ }
+ {(
+ fromLegacyDecimals(
+ data.amountReceived,
+ ) *
+ fiatPrice
+ ).toFixed(
+ 2,
+ )}{' '}
+ {
+ currency
+ .fiatCurrencies
+ .fiatCurrency
+ }
+ </h4>
+ )}
+ </>
+ )}
+ </TxInfo>
+ </>
+ )}
+ {data.opReturnMessage && (
+ <>
+ <OpReturnType
+ received={!data.outgoingTx}
+ >
+ {data.isCashtabMessage ? (
+ <h4>Cashtab Message</h4>
+ ) : (
+ <h4>
+ External Message
+ </h4>
+ )}
+ {data.isEncryptedMessage ? (
+ <EncryptionMessageLabel>
+ &nbsp;-&nbsp;Encrypted
+ </EncryptionMessageLabel>
+ ) : (
+ ''
+ )}
+ <br />
+ {/*unencrypted OP_RETURN Message*/}
+ {data.opReturnMessage &&
+ !data.isEncryptedMessage ? (
+ <p>
+ {
+ data.opReturnMessage
+ }
+ </p>
+ ) : (
+ ''
+ )}
+ {/*encrypted and wallet is authorized to view OP_RETURN Message*/}
+ {data.opReturnMessage &&
+ data.isEncryptedMessage &&
+ data.decryptionSuccess ? (
+ <p>
+ {
+ data.opReturnMessage
+ }
+ </p>
+ ) : (
+ ''
+ )}
+ {/*encrypted but wallet is not authorized to view OP_RETURN Message*/}
+ {data.opReturnMessage &&
+ data.isEncryptedMessage &&
+ !data.decryptionSuccess ? (
+ <UnauthorizedDecryptionMessage>
+ {
+ data.opReturnMessage
+ }
+ </UnauthorizedDecryptionMessage>
+ ) : (
+ ''
+ )}
+ {!data.outgoingTx &&
+ data.replyAddress ? (
+ <Link
+ to={{
+ pathname: `/send`,
+ state: {
+ replyAddress:
+ data.replyAddress,
+ },
+ }}
+ >
+ Reply To Message
+ </Link>
+ ) : (
+ ''
+ )}
+ </OpReturnType>
+ </>
+ )}
+ </TxWrapper>
</>
- ) : (
- <span>Token Tx</span>
- )}
- </TokenInfo>
- ) : (
- <>
- <TxInfo outgoing={data.outgoingTx}>
- {data.outgoingTx ? (
- <>
- <h3>
- -
- {formatBalance(
- fromLegacyDecimals(
- data.amountSent,
- ),
- )}{' '}
- {currency.ticker}
- </h3>
- {fiatPrice !== null &&
- !isNaN(data.amountSent) && (
- <h4>
- -
- {
- currency.fiatCurrencies[
- fiatCurrency
- ].symbol
- }
- {(
- fromLegacyDecimals(
- data.amountSent,
- ) * fiatPrice
- ).toFixed(2)}{' '}
- {
- currency.fiatCurrencies
- .fiatCurrency
- }
- </h4>
- )}
- </>
- ) : (
- <>
- <h3 className="received">
- +
- {formatBalance(
- fromLegacyDecimals(
- data.amountReceived,
- ),
- )}{' '}
- {currency.ticker}
- </h3>
- {fiatPrice !== null &&
- !isNaN(data.amountReceived) && (
- <h4>
- +
- {
- currency.fiatCurrencies[
- fiatCurrency
- ].symbol
- }
- {(
- fromLegacyDecimals(
- data.amountReceived,
- ) * fiatPrice
- ).toFixed(2)}{' '}
- {
- currency.fiatCurrencies
- .fiatCurrency
- }
- </h4>
- )}
- </>
- )}
- </TxInfo>
- </>
- )}
- {data.opReturnMessage && (
- <>
- <OpReturnType received={!data.outgoingTx}>
- {data.isCashtabMessage ? (
- <h4>Cashtab Message</h4>
- ) : (
- <h4>External Message</h4>
- )}
- {data.isEncryptedMessage ? (
- <EncryptionMessageLabel>
- &nbsp;-&nbsp;Encrypted
- </EncryptionMessageLabel>
- ) : (
- ''
- )}
- <br />
- {/*unencrypted OP_RETURN Message*/}
- {data.opReturnMessage &&
- !data.isEncryptedMessage ? (
- <p>{data.opReturnMessage}</p>
- ) : (
- ''
- )}
- {/*encrypted and wallet is authorized to view OP_RETURN Message*/}
- {data.opReturnMessage &&
- data.isEncryptedMessage &&
- data.decryptionSuccess ? (
- <p>{data.opReturnMessage}</p>
- ) : (
- ''
- )}
- {/*encrypted but wallet is not authorized to view OP_RETURN Message*/}
- {data.opReturnMessage &&
- data.isEncryptedMessage &&
- !data.decryptionSuccess ? (
- <UnauthorizedDecryptionMessage>
- {data.opReturnMessage}
- </UnauthorizedDecryptionMessage>
- ) : (
- ''
- )}
- {!data.outgoingTx && data.replyAddress ? (
- <Link
- to={{
- pathname: `/send`,
- state: {
- replyAddress: data.replyAddress,
- },
- }}
- >
- Reply To Message
- </Link>
- ) : (
- ''
- )}
- </OpReturnType>
- </>
- )}
- </TxWrapper>
+ }
+ >
+ <PanelCtn>
+ <DropdownButton
+ onClick={() => {
+ navigator.clipboard.writeText(
+ data.txid,
+ );
+ generalNotification(
+ data.txid,
+ 'Tx ID copied to clipboard',
+ );
+ }}
+ >
+ <DropdownIconWrapper>
+ <TextLayer>Copy Tx ID</TextLayer>
+
+ <ThemedCopySolid />
+ </DropdownIconWrapper>
+ </DropdownButton>
+ <TxLink
+ key={data.txid}
+ href={`https://explorer.be.cash/tx/${data.txid}`}
+ target="_blank"
+ rel="noreferrer"
+ >
+ <DropdownButton>
+ <DropdownIconWrapper>
+ <TextLayer>
+ View on be.cash
+ </TextLayer>
+
+ <ThemedLinkSolid />
+ </DropdownIconWrapper>
+ </DropdownButton>
+ </TxLink>
+ </PanelCtn>
+ </Panel>
+ </Collapse>
+ </AntdContextCollapseWrapper>
)}
</>
);
diff --git a/web/cashtab/src/components/Home/TxHistory.js b/web/cashtab/src/components/Home/TxHistory.js
--- a/web/cashtab/src/components/Home/TxHistory.js
+++ b/web/cashtab/src/components/Home/TxHistory.js
@@ -3,26 +3,16 @@
import styled from 'styled-components';
import Tx from './Tx';
-export const TxLink = styled.a`
- color: ${props => props.theme.forms.text};
-`;
-
const TxHistory = ({ txs, fiatPrice, fiatCurrency }) => {
return (
<div>
{txs.map(tx => (
- <TxLink
+ <Tx
key={tx.txid}
- href={`https://explorer.be.cash/tx/${tx.txid}`}
- target="_blank"
- rel="noreferrer"
- >
- <Tx
- data={tx}
- fiatPrice={fiatPrice}
- fiatCurrency={fiatCurrency}
- />
- </TxLink>
+ data={tx}
+ fiatPrice={fiatPrice}
+ fiatCurrency={fiatCurrency}
+ />
))}
</div>
);
diff --git a/web/cashtab/src/components/Home/__tests__/__snapshots__/Home.test.js.snap b/web/cashtab/src/components/Home/__tests__/__snapshots__/Home.test.js.snap
--- a/web/cashtab/src/components/Home/__tests__/__snapshots__/Home.test.js.snap
+++ b/web/cashtab/src/components/Home/__tests__/__snapshots__/Home.test.js.snap
@@ -3,22 +3,22 @@
exports[`Wallet with BCH balances 1`] = `
Array [
<div
- className="sc-dVhcbM brpysj"
+ className="sc-ksYbfQ EFpnD"
>
<h4
- className="sc-TOsTZ hyNnAe"
+ className="sc-jqCOkK AdWOH"
>
MigrationTestAlpha
</h4>
<div
- className="sc-fAjcbJ cmsHYG"
+ className="sc-frDJqD eedyCO"
>
0
XEC
</div>
<div
- className="sc-eqIVtm iXtOvF"
+ className="sc-hmzhuo iakXLr"
>
$
NaN
@@ -27,26 +27,26 @@
</div>
</div>,
<div
- className="sc-fBuWsC jTHIvX"
+ className="sc-kgAjT fyrqRY"
>
<div
- className="sc-kgAjT fTSvCd"
+ className="sc-uJMKN dqGtqM"
>
<button
- className="sc-cJSrbW ijZrxE"
+ className="sc-bbmXgH dSfiPq"
onClick={[Function]}
>
Transactions
</button>
<button
- className="sc-cJSrbW TVGDx"
+ className="sc-bbmXgH itYgsC"
onClick={[Function]}
>
eTokens
</button>
</div>
<div
- className="sc-ksYbfQ dWGMCt"
+ className="sc-gGBfsJ hgvUuT"
>
<div />
<span
@@ -73,10 +73,10 @@
to send to others
</div>
<div
- className="sc-ksYbfQ dlfBRO"
+ className="sc-gGBfsJ ZHSVU"
>
<a
- className="sc-hqyNC iXWJsi"
+ className="sc-hEsumM hFCfQE"
href="/tokens"
onClick={[Function]}
>
@@ -95,22 +95,22 @@
exports[`Wallet with BCH balances and tokens 1`] = `
Array [
<div
- className="sc-dVhcbM brpysj"
+ className="sc-ksYbfQ EFpnD"
>
<h4
- className="sc-TOsTZ hyNnAe"
+ className="sc-jqCOkK AdWOH"
>
MigrationTestAlpha
</h4>
<div
- className="sc-fAjcbJ cmsHYG"
+ className="sc-frDJqD eedyCO"
>
0
XEC
</div>
<div
- className="sc-eqIVtm iXtOvF"
+ className="sc-hmzhuo iakXLr"
>
$
NaN
@@ -119,26 +119,26 @@
</div>
</div>,
<div
- className="sc-fBuWsC jTHIvX"
+ className="sc-kgAjT fyrqRY"
>
<div
- className="sc-kgAjT fTSvCd"
+ className="sc-uJMKN dqGtqM"
>
<button
- className="sc-cJSrbW ijZrxE"
+ className="sc-bbmXgH dSfiPq"
onClick={[Function]}
>
Transactions
</button>
<button
- className="sc-cJSrbW TVGDx"
+ className="sc-bbmXgH itYgsC"
onClick={[Function]}
>
eTokens
</button>
</div>
<div
- className="sc-ksYbfQ dWGMCt"
+ className="sc-gGBfsJ hgvUuT"
>
<div />
<span
@@ -165,10 +165,10 @@
to send to others
</div>
<div
- className="sc-ksYbfQ dlfBRO"
+ className="sc-gGBfsJ ZHSVU"
>
<a
- className="sc-hqyNC iXWJsi"
+ className="sc-hEsumM hFCfQE"
href="/tokens"
onClick={[Function]}
>
@@ -187,22 +187,22 @@
exports[`Wallet with BCH balances and tokens and state field 1`] = `
Array [
<div
- className="sc-dVhcbM brpysj"
+ className="sc-ksYbfQ EFpnD"
>
<h4
- className="sc-TOsTZ hyNnAe"
+ className="sc-jqCOkK AdWOH"
>
MigrationTestAlpha
</h4>
<div
- className="sc-fAjcbJ cmsHYG"
+ className="sc-frDJqD eedyCO"
>
0.06
XEC
</div>
<div
- className="sc-eqIVtm iXtOvF"
+ className="sc-hmzhuo iakXLr"
>
$
NaN
@@ -211,26 +211,26 @@
</div>
</div>,
<div
- className="sc-fBuWsC jTHIvX"
+ className="sc-kgAjT fyrqRY"
>
<div
- className="sc-kgAjT fTSvCd"
+ className="sc-uJMKN dqGtqM"
>
<button
- className="sc-cJSrbW ijZrxE"
+ className="sc-bbmXgH dSfiPq"
onClick={[Function]}
>
Transactions
</button>
<button
- className="sc-cJSrbW TVGDx"
+ className="sc-bbmXgH itYgsC"
onClick={[Function]}
>
eTokens
</button>
</div>
<div
- className="sc-ksYbfQ dWGMCt"
+ className="sc-gGBfsJ hgvUuT"
>
<div />
<span
@@ -257,10 +257,10 @@
to send to others
</div>
<div
- className="sc-ksYbfQ dlfBRO"
+ className="sc-gGBfsJ ZHSVU"
>
<a
- className="sc-hqyNC iXWJsi"
+ className="sc-hEsumM hFCfQE"
href="/tokens"
onClick={[Function]}
>
@@ -272,13 +272,13 @@
onClick={[Function]}
>
<div
- className="sc-kpOJdX fXDWzF"
+ className="sc-ckVGcZ fPvBhX"
>
<div
- className="sc-kGXeez iEFsHR"
+ className="sc-dxgOiQ CHiNn"
>
<div
- className="sc-kgoBCf iBCoYa"
+ className="sc-kpOJdX kKjisQ"
/>
<h4>
TBS
@@ -298,22 +298,22 @@
exports[`Wallet without BCH balance 1`] = `
Array [
<div
- className="sc-dVhcbM brpysj"
+ className="sc-ksYbfQ EFpnD"
>
<h4
- className="sc-TOsTZ hyNnAe"
+ className="sc-jqCOkK AdWOH"
>
MigrationTestAlpha
</h4>
<div
- className="sc-fAjcbJ cmsHYG"
+ className="sc-frDJqD eedyCO"
>
0
XEC
</div>
<div
- className="sc-eqIVtm iXtOvF"
+ className="sc-hmzhuo iakXLr"
>
$
NaN
@@ -322,26 +322,26 @@
</div>
</div>,
<div
- className="sc-fBuWsC jTHIvX"
+ className="sc-kgAjT fyrqRY"
>
<div
- className="sc-kgAjT fTSvCd"
+ className="sc-uJMKN dqGtqM"
>
<button
- className="sc-cJSrbW ijZrxE"
+ className="sc-bbmXgH dSfiPq"
onClick={[Function]}
>
Transactions
</button>
<button
- className="sc-cJSrbW TVGDx"
+ className="sc-bbmXgH itYgsC"
onClick={[Function]}
>
eTokens
</button>
</div>
<div
- className="sc-ksYbfQ dWGMCt"
+ className="sc-gGBfsJ hgvUuT"
>
<div />
<span
@@ -368,10 +368,10 @@
to send to others
</div>
<div
- className="sc-ksYbfQ dlfBRO"
+ className="sc-gGBfsJ ZHSVU"
>
<a
- className="sc-hqyNC iXWJsi"
+ className="sc-hEsumM hFCfQE"
href="/tokens"
onClick={[Function]}
>
@@ -389,18 +389,18 @@
exports[`Without wallet defined 1`] = `
<div
- className="sc-cSHVUG gjzzd"
+ className="sc-chPdSV cOYtDU"
>
<h2>
Welcome to Cashtab!
</h2>
<p
- className="sc-kAzzGY dVhLLg"
+ className="sc-kgoBCf iXiIML"
>
Cashtab is an
<a
- className="sc-chPdSV pPsPE"
+ className="sc-kGXeez dlhNKT"
href="https://github.com/bitcoin-abc/bitcoin-abc"
rel="noreferrer"
target="_blank"
@@ -416,7 +416,7 @@
Want to learn more?
<a
- className="sc-chPdSV pPsPE"
+ className="sc-kGXeez dlhNKT"
href="https://docs.cashtabapp.com/docs/"
rel="noreferrer"
target="_blank"
@@ -425,7 +425,7 @@
</a>
</p>
<button
- className="sc-jTzLTM jrQWOh"
+ className="sc-jzJRlG lltaza"
onClick={[Function]}
>
<span
@@ -453,7 +453,7 @@
New Wallet
</button>
<button
- className="sc-fjdhpX Ezkpu"
+ className="sc-cSHVUG kUJUGX"
onClick={[Function]}
>
<span
diff --git a/web/cashtab/src/components/Receive/__tests__/__snapshots__/Receive.test.js.snap b/web/cashtab/src/components/Receive/__tests__/__snapshots__/Receive.test.js.snap
--- a/web/cashtab/src/components/Receive/__tests__/__snapshots__/Receive.test.js.snap
+++ b/web/cashtab/src/components/Receive/__tests__/__snapshots__/Receive.test.js.snap
@@ -2,7 +2,7 @@
exports[`Wallet with BCH balances 1`] = `
<div
- className="sc-brqgnP ioFbAu"
+ className="sc-jAaTju kgZCSk"
>
<h2>
Receive
@@ -19,7 +19,7 @@
}
>
<div
- className="sc-kGXeez iOmsvt"
+ className="sc-dxgOiQ fKbQGD"
style={
Object {
"display": "none",
@@ -39,7 +39,7 @@
</span>
</div>
<svg
- className="sc-kgoBCf gZCERc"
+ className="sc-kpOJdX hDqPid"
height={210}
id="borderedQRCode"
shapeRendering="crispEdges"
@@ -65,7 +65,7 @@
/>
</svg>
<div
- className="sc-ckVGcZ lpOQJ notranslate"
+ className="sc-eNQAEJ gjYjhd notranslate"
>
<input
readOnly={true}
@@ -74,34 +74,34 @@
value="ecash:qzagy47mvh6qxkvcn3acjnz73rkhkc6y7ccxkrr6zd"
/>
<span
- className="sc-kpOJdX erKnES"
+ className="sc-ckVGcZ jazPqU"
>
ecash:
</span>
<span
- className="sc-dxgOiQ eSXaSR"
+ className="sc-jKJlTe kbljfd"
>
qzagy47m
</span>
vh6qxkvcn3acjnz73rkhkc6y7c
<span
- className="sc-dxgOiQ eSXaSR"
+ className="sc-jKJlTe kbljfd"
>
cxkrr6zd
</span>
</div>
</div>
<div
- className="sc-cMljjf uxbzo"
+ className="sc-jDwBTQ hksRrJ"
>
<div
- className="sc-jAaTju jTRMNk"
+ className="sc-gPEVay hSBCgm"
onClick={[Function]}
>
XEC
</div>
<div
- className="sc-jAaTju jTRMNk nonactiveBtn"
+ className="sc-gPEVay hSBCgm nonactiveBtn"
onClick={[Function]}
>
eToken
@@ -112,7 +112,7 @@
exports[`Wallet with BCH balances and tokens 1`] = `
<div
- className="sc-brqgnP ioFbAu"
+ className="sc-jAaTju kgZCSk"
>
<h2>
Receive
@@ -129,7 +129,7 @@
}
>
<div
- className="sc-kGXeez iOmsvt"
+ className="sc-dxgOiQ fKbQGD"
style={
Object {
"display": "none",
@@ -149,7 +149,7 @@
</span>
</div>
<svg
- className="sc-kgoBCf gZCERc"
+ className="sc-kpOJdX hDqPid"
height={210}
id="borderedQRCode"
shapeRendering="crispEdges"
@@ -175,7 +175,7 @@
/>
</svg>
<div
- className="sc-ckVGcZ lpOQJ notranslate"
+ className="sc-eNQAEJ gjYjhd notranslate"
>
<input
readOnly={true}
@@ -184,34 +184,34 @@
value="ecash:qzagy47mvh6qxkvcn3acjnz73rkhkc6y7ccxkrr6zd"
/>
<span
- className="sc-kpOJdX erKnES"
+ className="sc-ckVGcZ jazPqU"
>
ecash:
</span>
<span
- className="sc-dxgOiQ eSXaSR"
+ className="sc-jKJlTe kbljfd"
>
qzagy47m
</span>
vh6qxkvcn3acjnz73rkhkc6y7c
<span
- className="sc-dxgOiQ eSXaSR"
+ className="sc-jKJlTe kbljfd"
>
cxkrr6zd
</span>
</div>
</div>
<div
- className="sc-cMljjf uxbzo"
+ className="sc-jDwBTQ hksRrJ"
>
<div
- className="sc-jAaTju jTRMNk"
+ className="sc-gPEVay hSBCgm"
onClick={[Function]}
>
XEC
</div>
<div
- className="sc-jAaTju jTRMNk nonactiveBtn"
+ className="sc-gPEVay hSBCgm nonactiveBtn"
onClick={[Function]}
>
eToken
@@ -222,7 +222,7 @@
exports[`Wallet with BCH balances and tokens and state field 1`] = `
<div
- className="sc-brqgnP ioFbAu"
+ className="sc-jAaTju kgZCSk"
>
<h2>
Receive
@@ -239,7 +239,7 @@
}
>
<div
- className="sc-kGXeez iOmsvt"
+ className="sc-dxgOiQ fKbQGD"
style={
Object {
"display": "none",
@@ -259,7 +259,7 @@
</span>
</div>
<svg
- className="sc-kgoBCf gZCERc"
+ className="sc-kpOJdX hDqPid"
height={210}
id="borderedQRCode"
shapeRendering="crispEdges"
@@ -285,7 +285,7 @@
/>
</svg>
<div
- className="sc-ckVGcZ lpOQJ notranslate"
+ className="sc-eNQAEJ gjYjhd notranslate"
>
<input
readOnly={true}
@@ -294,34 +294,34 @@
value="ecash:qzagy47mvh6qxkvcn3acjnz73rkhkc6y7ccxkrr6zd"
/>
<span
- className="sc-kpOJdX erKnES"
+ className="sc-ckVGcZ jazPqU"
>
ecash:
</span>
<span
- className="sc-dxgOiQ eSXaSR"
+ className="sc-jKJlTe kbljfd"
>
qzagy47m
</span>
vh6qxkvcn3acjnz73rkhkc6y7c
<span
- className="sc-dxgOiQ eSXaSR"
+ className="sc-jKJlTe kbljfd"
>
cxkrr6zd
</span>
</div>
</div>
<div
- className="sc-cMljjf uxbzo"
+ className="sc-jDwBTQ hksRrJ"
>
<div
- className="sc-jAaTju jTRMNk"
+ className="sc-gPEVay hSBCgm"
onClick={[Function]}
>
XEC
</div>
<div
- className="sc-jAaTju jTRMNk nonactiveBtn"
+ className="sc-gPEVay hSBCgm nonactiveBtn"
onClick={[Function]}
>
eToken
@@ -332,7 +332,7 @@
exports[`Wallet without BCH balance 1`] = `
<div
- className="sc-brqgnP ioFbAu"
+ className="sc-jAaTju kgZCSk"
>
<h2>
Receive
@@ -349,7 +349,7 @@
}
>
<div
- className="sc-kGXeez iOmsvt"
+ className="sc-dxgOiQ fKbQGD"
style={
Object {
"display": "none",
@@ -369,7 +369,7 @@
</span>
</div>
<svg
- className="sc-kgoBCf gZCERc"
+ className="sc-kpOJdX hDqPid"
height={210}
id="borderedQRCode"
shapeRendering="crispEdges"
@@ -395,7 +395,7 @@
/>
</svg>
<div
- className="sc-ckVGcZ lpOQJ notranslate"
+ className="sc-eNQAEJ gjYjhd notranslate"
>
<input
readOnly={true}
@@ -404,34 +404,34 @@
value="ecash:qzagy47mvh6qxkvcn3acjnz73rkhkc6y7ccxkrr6zd"
/>
<span
- className="sc-kpOJdX erKnES"
+ className="sc-ckVGcZ jazPqU"
>
ecash:
</span>
<span
- className="sc-dxgOiQ eSXaSR"
+ className="sc-jKJlTe kbljfd"
>
qzagy47m
</span>
vh6qxkvcn3acjnz73rkhkc6y7c
<span
- className="sc-dxgOiQ eSXaSR"
+ className="sc-jKJlTe kbljfd"
>
cxkrr6zd
</span>
</div>
</div>
<div
- className="sc-cMljjf uxbzo"
+ className="sc-jDwBTQ hksRrJ"
>
<div
- className="sc-jAaTju jTRMNk"
+ className="sc-gPEVay hSBCgm"
onClick={[Function]}
>
XEC
</div>
<div
- className="sc-jAaTju jTRMNk nonactiveBtn"
+ className="sc-gPEVay hSBCgm nonactiveBtn"
onClick={[Function]}
>
eToken
@@ -442,18 +442,18 @@
exports[`Without wallet defined 1`] = `
<div
- className="sc-cSHVUG gjzzd"
+ className="sc-chPdSV cOYtDU"
>
<h2>
Welcome to Cashtab!
</h2>
<p
- className="sc-kAzzGY dVhLLg"
+ className="sc-kgoBCf iXiIML"
>
Cashtab is an
<a
- className="sc-chPdSV pPsPE"
+ className="sc-kGXeez dlhNKT"
href="https://github.com/bitcoin-abc/bitcoin-abc"
rel="noreferrer"
target="_blank"
@@ -469,7 +469,7 @@
Want to learn more?
<a
- className="sc-chPdSV pPsPE"
+ className="sc-kGXeez dlhNKT"
href="https://docs.cashtabapp.com/docs/"
rel="noreferrer"
target="_blank"
@@ -478,7 +478,7 @@
</a>
</p>
<button
- className="sc-jTzLTM jrQWOh"
+ className="sc-jzJRlG lltaza"
onClick={[Function]}
>
<span
@@ -506,7 +506,7 @@
New Wallet
</button>
<button
- className="sc-fjdhpX Ezkpu"
+ className="sc-cSHVUG kUJUGX"
onClick={[Function]}
>
<span
diff --git a/web/cashtab/src/components/Send/__tests__/__snapshots__/Send.test.js.snap b/web/cashtab/src/components/Send/__tests__/__snapshots__/Send.test.js.snap
--- a/web/cashtab/src/components/Send/__tests__/__snapshots__/Send.test.js.snap
+++ b/web/cashtab/src/components/Send/__tests__/__snapshots__/Send.test.js.snap
@@ -3,15 +3,15 @@
exports[`Wallet with BCH balances 1`] = `
Array [
<div
- className="sc-dxgOiQ hoCHgG"
+ className="sc-eNQAEJ bPMOWW"
>
<h4
- className="sc-iAyFgw fHGQyR"
+ className="sc-cvbbAY dhgXz"
>
MigrationTestAlpha
</h4>
<div
- className="sc-eNQAEJ iGFmOx"
+ className="sc-kkGfuU ihmkkm"
>
You currently have 0
XEC
@@ -20,7 +20,7 @@
</div>
</div>,
<div
- className="sc-kGXeez djtubK"
+ className="sc-ckVGcZ jBULtA"
>
<div
className="ant-row"
@@ -43,15 +43,15 @@
}
>
<div
- className="sc-jWBwVP nBOIy"
+ className="sc-jAaTju fBYVrj"
>
<label
- className="sc-kpOJdX ciWDzT"
+ className="sc-jKJlTe biUgjm"
>
Send to
</label>
<div
- className="sc-gZMcBi yjhQX"
+ className="sc-VigVT bZouWf"
>
<div
className="ant-row ant-form-item"
@@ -124,7 +124,7 @@
className="ant-input-group-addon"
>
<span
- className="sc-htoDjs clindv"
+ className="sc-iwsKbI cVxKUE"
onClick={[Function]}
>
<span
@@ -165,12 +165,12 @@
</div>
</div>
<label
- className="sc-kpOJdX ciWDzT"
+ className="sc-jKJlTe biUgjm"
>
Amount
</label>
<div
- className="sc-gZMcBi yjhQX"
+ className="sc-VigVT bZouWf"
>
<div
className="ant-row ant-form-item"
@@ -315,7 +315,7 @@
</span>
</div>
<span
- className="sc-VigVT gpPedh"
+ className="sc-fjdhpX iLNQZG"
disabled={false}
onClick={[Function]}
style={
@@ -345,17 +345,17 @@
</div>
</div>
<div
- className="sc-cvbbAY fqkYPz"
+ className="sc-cMljjf hGrEZg"
>
<h3
- className="sc-brqgnP eRJqVp"
+ className="sc-jDwBTQ iwAZUY"
>
0
XEC
</h3>
<div
- className="sc-kkGfuU eCrVEV"
+ className="sc-eHgmQL bSQRhv"
>
=
@@ -370,14 +370,14 @@
}
>
<button
- className="sc-kAzzGY pltyU"
+ className="sc-kGXeez jhWitK"
>
Send
</button>
</div>
<div>
<div
- className="ant-collapse ant-collapse-icon-position-left sc-jzJRlG iWSEBZ"
+ className="ant-collapse ant-collapse-icon-position-left sc-kAzzGY itTQAx"
role={null}
style={
Object {
@@ -424,7 +424,7 @@
</div>
</div>
<div
- className="ant-collapse ant-collapse-icon-position-left sc-jzJRlG iWSEBZ"
+ className="ant-collapse ant-collapse-icon-position-left sc-kAzzGY itTQAx"
role={null}
style={
Object {
@@ -473,15 +473,15 @@
exports[`Wallet with BCH balances and tokens 1`] = `
Array [
<div
- className="sc-dxgOiQ hoCHgG"
+ className="sc-eNQAEJ bPMOWW"
>
<h4
- className="sc-iAyFgw fHGQyR"
+ className="sc-cvbbAY dhgXz"
>
MigrationTestAlpha
</h4>
<div
- className="sc-eNQAEJ iGFmOx"
+ className="sc-kkGfuU ihmkkm"
>
You currently have 0
XEC
@@ -490,7 +490,7 @@
</div>
</div>,
<div
- className="sc-kGXeez djtubK"
+ className="sc-ckVGcZ jBULtA"
>
<div
className="ant-row"
@@ -513,15 +513,15 @@
}
>
<div
- className="sc-jWBwVP nBOIy"
+ className="sc-jAaTju fBYVrj"
>
<label
- className="sc-kpOJdX ciWDzT"
+ className="sc-jKJlTe biUgjm"
>
Send to
</label>
<div
- className="sc-gZMcBi yjhQX"
+ className="sc-VigVT bZouWf"
>
<div
className="ant-row ant-form-item"
@@ -594,7 +594,7 @@
className="ant-input-group-addon"
>
<span
- className="sc-htoDjs clindv"
+ className="sc-iwsKbI cVxKUE"
onClick={[Function]}
>
<span
@@ -635,12 +635,12 @@
</div>
</div>
<label
- className="sc-kpOJdX ciWDzT"
+ className="sc-jKJlTe biUgjm"
>
Amount
</label>
<div
- className="sc-gZMcBi yjhQX"
+ className="sc-VigVT bZouWf"
>
<div
className="ant-row ant-form-item"
@@ -785,7 +785,7 @@
</span>
</div>
<span
- className="sc-VigVT gpPedh"
+ className="sc-fjdhpX iLNQZG"
disabled={false}
onClick={[Function]}
style={
@@ -815,17 +815,17 @@
</div>
</div>
<div
- className="sc-cvbbAY fqkYPz"
+ className="sc-cMljjf hGrEZg"
>
<h3
- className="sc-brqgnP eRJqVp"
+ className="sc-jDwBTQ iwAZUY"
>
0
XEC
</h3>
<div
- className="sc-kkGfuU eCrVEV"
+ className="sc-eHgmQL bSQRhv"
>
=
@@ -840,14 +840,14 @@
}
>
<button
- className="sc-kAzzGY pltyU"
+ className="sc-kGXeez jhWitK"
>
Send
</button>
</div>
<div>
<div
- className="ant-collapse ant-collapse-icon-position-left sc-jzJRlG iWSEBZ"
+ className="ant-collapse ant-collapse-icon-position-left sc-kAzzGY itTQAx"
role={null}
style={
Object {
@@ -894,7 +894,7 @@
</div>
</div>
<div
- className="ant-collapse ant-collapse-icon-position-left sc-jzJRlG iWSEBZ"
+ className="ant-collapse ant-collapse-icon-position-left sc-kAzzGY itTQAx"
role={null}
style={
Object {
@@ -943,22 +943,22 @@
exports[`Wallet with BCH balances and tokens and state field 1`] = `
Array [
<div
- className="sc-dxgOiQ hoCHgG"
+ className="sc-eNQAEJ bPMOWW"
>
<h4
- className="sc-iAyFgw fHGQyR"
+ className="sc-cvbbAY dhgXz"
>
MigrationTestAlpha
</h4>
<div
- className="sc-jKJlTe hrFzvR"
+ className="sc-kEYyzF eqAzMl"
>
0.06
XEC
</div>
<div
- className="sc-ckVGcZ kivrKw"
+ className="sc-hMqMXs lndLVA"
>
$
NaN
@@ -967,7 +967,7 @@
</div>
</div>,
<div
- className="sc-kGXeez djtubK"
+ className="sc-ckVGcZ jBULtA"
>
<div
className="ant-row"
@@ -990,15 +990,15 @@
}
>
<div
- className="sc-jWBwVP nBOIy"
+ className="sc-jAaTju fBYVrj"
>
<label
- className="sc-kpOJdX ciWDzT"
+ className="sc-jKJlTe biUgjm"
>
Send to
</label>
<div
- className="sc-gZMcBi yjhQX"
+ className="sc-VigVT bZouWf"
>
<div
className="ant-row ant-form-item"
@@ -1071,7 +1071,7 @@
className="ant-input-group-addon"
>
<span
- className="sc-htoDjs clindv"
+ className="sc-iwsKbI cVxKUE"
onClick={[Function]}
>
<span
@@ -1112,12 +1112,12 @@
</div>
</div>
<label
- className="sc-kpOJdX ciWDzT"
+ className="sc-jKJlTe biUgjm"
>
Amount
</label>
<div
- className="sc-gZMcBi yjhQX"
+ className="sc-VigVT bZouWf"
>
<div
className="ant-row ant-form-item"
@@ -1262,7 +1262,7 @@
</span>
</div>
<span
- className="sc-VigVT gpPedh"
+ className="sc-fjdhpX iLNQZG"
disabled={false}
onClick={[Function]}
style={
@@ -1292,17 +1292,17 @@
</div>
</div>
<div
- className="sc-cvbbAY fqkYPz"
+ className="sc-cMljjf hGrEZg"
>
<h3
- className="sc-brqgnP eRJqVp"
+ className="sc-jDwBTQ iwAZUY"
>
0
XEC
</h3>
<div
- className="sc-kkGfuU eCrVEV"
+ className="sc-eHgmQL bSQRhv"
>
=
@@ -1317,7 +1317,7 @@
}
>
<button
- className="sc-cSHVUG hatVCK"
+ className="sc-kgoBCf dKKqLy"
onClick={[Function]}
>
Send
@@ -1325,7 +1325,7 @@
</div>
<div>
<div
- className="ant-collapse ant-collapse-icon-position-left sc-jzJRlG iWSEBZ"
+ className="ant-collapse ant-collapse-icon-position-left sc-kAzzGY itTQAx"
role={null}
style={
Object {
@@ -1372,7 +1372,7 @@
</div>
</div>
<div
- className="ant-collapse ant-collapse-icon-position-left sc-jzJRlG iWSEBZ"
+ className="ant-collapse ant-collapse-icon-position-left sc-kAzzGY itTQAx"
role={null}
style={
Object {
@@ -1421,15 +1421,15 @@
exports[`Wallet without BCH balance 1`] = `
Array [
<div
- className="sc-dxgOiQ hoCHgG"
+ className="sc-eNQAEJ bPMOWW"
>
<h4
- className="sc-iAyFgw fHGQyR"
+ className="sc-cvbbAY dhgXz"
>
MigrationTestAlpha
</h4>
<div
- className="sc-eNQAEJ iGFmOx"
+ className="sc-kkGfuU ihmkkm"
>
You currently have 0
XEC
@@ -1438,7 +1438,7 @@
</div>
</div>,
<div
- className="sc-kGXeez djtubK"
+ className="sc-ckVGcZ jBULtA"
>
<div
className="ant-row"
@@ -1461,15 +1461,15 @@
}
>
<div
- className="sc-jWBwVP nBOIy"
+ className="sc-jAaTju fBYVrj"
>
<label
- className="sc-kpOJdX ciWDzT"
+ className="sc-jKJlTe biUgjm"
>
Send to
</label>
<div
- className="sc-gZMcBi yjhQX"
+ className="sc-VigVT bZouWf"
>
<div
className="ant-row ant-form-item"
@@ -1542,7 +1542,7 @@
className="ant-input-group-addon"
>
<span
- className="sc-htoDjs clindv"
+ className="sc-iwsKbI cVxKUE"
onClick={[Function]}
>
<span
@@ -1583,12 +1583,12 @@
</div>
</div>
<label
- className="sc-kpOJdX ciWDzT"
+ className="sc-jKJlTe biUgjm"
>
Amount
</label>
<div
- className="sc-gZMcBi yjhQX"
+ className="sc-VigVT bZouWf"
>
<div
className="ant-row ant-form-item"
@@ -1733,7 +1733,7 @@
</span>
</div>
<span
- className="sc-VigVT gpPedh"
+ className="sc-fjdhpX iLNQZG"
disabled={false}
onClick={[Function]}
style={
@@ -1763,17 +1763,17 @@
</div>
</div>
<div
- className="sc-cvbbAY fqkYPz"
+ className="sc-cMljjf hGrEZg"
>
<h3
- className="sc-brqgnP eRJqVp"
+ className="sc-jDwBTQ iwAZUY"
>
0
XEC
</h3>
<div
- className="sc-kkGfuU eCrVEV"
+ className="sc-eHgmQL bSQRhv"
>
=
@@ -1788,14 +1788,14 @@
}
>
<button
- className="sc-kAzzGY pltyU"
+ className="sc-kGXeez jhWitK"
>
Send
</button>
</div>
<div>
<div
- className="ant-collapse ant-collapse-icon-position-left sc-jzJRlG iWSEBZ"
+ className="ant-collapse ant-collapse-icon-position-left sc-kAzzGY itTQAx"
role={null}
style={
Object {
@@ -1842,7 +1842,7 @@
</div>
</div>
<div
- className="ant-collapse ant-collapse-icon-position-left sc-jzJRlG iWSEBZ"
+ className="ant-collapse ant-collapse-icon-position-left sc-kAzzGY itTQAx"
role={null}
style={
Object {
@@ -1891,10 +1891,10 @@
exports[`Without wallet defined 1`] = `
Array [
<div
- className="sc-dxgOiQ hoCHgG"
+ className="sc-eNQAEJ bPMOWW"
>
<div
- className="sc-eNQAEJ iGFmOx"
+ className="sc-kkGfuU ihmkkm"
>
You currently have 0
XEC
@@ -1903,7 +1903,7 @@
</div>
</div>,
<div
- className="sc-kGXeez djtubK"
+ className="sc-ckVGcZ jBULtA"
>
<div
className="ant-row"
@@ -1926,15 +1926,15 @@
}
>
<div
- className="sc-jWBwVP nBOIy"
+ className="sc-jAaTju fBYVrj"
>
<label
- className="sc-kpOJdX ciWDzT"
+ className="sc-jKJlTe biUgjm"
>
Send to
</label>
<div
- className="sc-gZMcBi yjhQX"
+ className="sc-VigVT bZouWf"
>
<div
className="ant-row ant-form-item"
@@ -2007,7 +2007,7 @@
className="ant-input-group-addon"
>
<span
- className="sc-htoDjs clindv"
+ className="sc-iwsKbI cVxKUE"
onClick={[Function]}
>
<span
@@ -2048,12 +2048,12 @@
</div>
</div>
<label
- className="sc-kpOJdX ciWDzT"
+ className="sc-jKJlTe biUgjm"
>
Amount
</label>
<div
- className="sc-gZMcBi yjhQX"
+ className="sc-VigVT bZouWf"
>
<div
className="ant-row ant-form-item"
@@ -2198,7 +2198,7 @@
</span>
</div>
<span
- className="sc-VigVT gpPedh"
+ className="sc-fjdhpX iLNQZG"
disabled={false}
onClick={[Function]}
style={
@@ -2228,17 +2228,17 @@
</div>
</div>
<div
- className="sc-cvbbAY fqkYPz"
+ className="sc-cMljjf hGrEZg"
>
<h3
- className="sc-brqgnP eRJqVp"
+ className="sc-jDwBTQ iwAZUY"
>
0
XEC
</h3>
<div
- className="sc-kkGfuU eCrVEV"
+ className="sc-eHgmQL bSQRhv"
>
=
@@ -2253,14 +2253,14 @@
}
>
<button
- className="sc-kAzzGY pltyU"
+ className="sc-kGXeez jhWitK"
>
Send
</button>
</div>
<div>
<div
- className="ant-collapse ant-collapse-icon-position-left sc-jzJRlG iWSEBZ"
+ className="ant-collapse ant-collapse-icon-position-left sc-kAzzGY itTQAx"
role={null}
style={
Object {
@@ -2307,7 +2307,7 @@
</div>
</div>
<div
- className="ant-collapse ant-collapse-icon-position-left sc-jzJRlG iWSEBZ"
+ className="ant-collapse ant-collapse-icon-position-left sc-kAzzGY itTQAx"
role={null}
style={
Object {
diff --git a/web/cashtab/src/components/Send/__tests__/__snapshots__/SendToken.test.js.snap b/web/cashtab/src/components/Send/__tests__/__snapshots__/SendToken.test.js.snap
--- a/web/cashtab/src/components/Send/__tests__/__snapshots__/SendToken.test.js.snap
+++ b/web/cashtab/src/components/Send/__tests__/__snapshots__/SendToken.test.js.snap
@@ -4,10 +4,10 @@
exports[`Wallet with BCH balances and tokens and state field 1`] = `
<div
- className="sc-kAzzGY fEGWQF"
+ className="sc-kgoBCf hlSlAt"
>
<div
- className="sc-kpOJdX gdszRG"
+ className="sc-ckVGcZ lkrhUi"
>
6.001
@@ -33,7 +33,7 @@
}
>
<div
- className="sc-jTzLTM kkbCRG"
+ className="sc-jzJRlG kWGBmG"
>
<div
className="ant-row ant-form-item"
@@ -102,7 +102,7 @@
className="ant-input-group-addon"
>
<span
- className="sc-gZMcBi kJTcOr"
+ className="sc-VigVT jPrdqZ"
onClick={[Function]}
>
<span
@@ -143,7 +143,7 @@
</div>
</div>
<div
- className="sc-jTzLTM kkbCRG"
+ className="sc-jzJRlG kWGBmG"
>
<div
className="ant-row ant-form-item"
@@ -197,7 +197,7 @@
className="ant-input-group-addon"
>
<span
- className="sc-fjdhpX bknjZP"
+ className="sc-cSHVUG goJbBD"
disabled={false}
onClick={[Function]}
>
@@ -228,7 +228,7 @@
}
>
<button
- className="sc-htoDjs YWbja"
+ className="sc-iwsKbI eqLYNi"
onClick={[Function]}
>
Send
diff --git a/web/cashtab/src/components/Tokens/__tests__/__snapshots__/CreateTokenForm.test.js.snap b/web/cashtab/src/components/Tokens/__tests__/__snapshots__/CreateTokenForm.test.js.snap
--- a/web/cashtab/src/components/Tokens/__tests__/__snapshots__/CreateTokenForm.test.js.snap
+++ b/web/cashtab/src/components/Tokens/__tests__/__snapshots__/CreateTokenForm.test.js.snap
@@ -2,13 +2,13 @@
exports[`Wallet with BCH balances and tokens and state field 1`] = `
<div
- className="sc-cvbbAY fUudDa"
+ className="sc-cMljjf fowfXL"
>
<h3>
Create a Token
</h3>
<div
- className="sc-gZMcBi yjhQX"
+ className="sc-VigVT bZouWf"
>
<form
className="ant-form ant-form-horizontal ant-form-small"
@@ -21,7 +21,7 @@
}
>
<label
- className="sc-jKJlTe biUgjm"
+ className="sc-kEYyzF gSQyNg"
>
Token Name
</label>
@@ -64,7 +64,7 @@
</div>
</div>
<label
- className="sc-jKJlTe biUgjm"
+ className="sc-kEYyzF gSQyNg"
>
Ticker
</label>
@@ -107,7 +107,7 @@
</div>
</div>
<label
- className="sc-jKJlTe biUgjm"
+ className="sc-kEYyzF gSQyNg"
>
Decimals
</label>
@@ -150,7 +150,7 @@
</div>
</div>
<label
- className="sc-jKJlTe biUgjm"
+ className="sc-kEYyzF gSQyNg"
>
Supply
</label>
@@ -193,7 +193,7 @@
</div>
</div>
<label
- className="sc-jKJlTe biUgjm"
+ className="sc-kEYyzF gSQyNg"
>
Document URL
</label>
@@ -236,7 +236,7 @@
</div>
</div>
<label
- className="sc-jKJlTe biUgjm"
+ className="sc-kEYyzF gSQyNg"
>
Add Image
</label>
@@ -338,7 +338,7 @@
</form>
</div>
<button
- className="sc-kpOJdX cdbSWM"
+ className="sc-jKJlTe cxrKVk"
disabled={true}
onClick={[Function]}
style={
diff --git a/web/cashtab/src/components/Tokens/__tests__/__snapshots__/Tokens.test.js.snap b/web/cashtab/src/components/Tokens/__tests__/__snapshots__/Tokens.test.js.snap
--- a/web/cashtab/src/components/Tokens/__tests__/__snapshots__/Tokens.test.js.snap
+++ b/web/cashtab/src/components/Tokens/__tests__/__snapshots__/Tokens.test.js.snap
@@ -3,22 +3,22 @@
exports[`Wallet with BCH balances 1`] = `
Array [
<div
- className="sc-eNQAEJ bPMOWW"
+ className="sc-kkGfuU hVVqAi"
>
<h4
- className="sc-jWBwVP fTCVMO"
+ className="sc-jAaTju iGBQkN"
>
MigrationTestAlpha
</h4>
<div
- className="sc-kEYyzF eqAzMl"
+ className="sc-hSdWYo bXDUps"
>
0
XEC
</div>
<div
- className="sc-hMqMXs lndLVA"
+ className="sc-iAyFgw qZuQH"
>
$
NaN
@@ -27,17 +27,17 @@
</div>
</div>,
<div
- className="sc-ckVGcZ jBULtA"
+ className="sc-hMqMXs kjfrok"
>
<div
- className="sc-cvbbAY fUudDa"
+ className="sc-cMljjf fowfXL"
>
<h3>
Create a Token
</h3>
</div>
<p
- className="sc-hSdWYo cGItMu"
+ className="sc-jWBwVP dkPIf"
>
You need at least
@@ -58,22 +58,22 @@
exports[`Wallet with BCH balances and tokens 1`] = `
Array [
<div
- className="sc-eNQAEJ bPMOWW"
+ className="sc-kkGfuU hVVqAi"
>
<h4
- className="sc-jWBwVP fTCVMO"
+ className="sc-jAaTju iGBQkN"
>
MigrationTestAlpha
</h4>
<div
- className="sc-kEYyzF eqAzMl"
+ className="sc-hSdWYo bXDUps"
>
0
XEC
</div>
<div
- className="sc-hMqMXs lndLVA"
+ className="sc-iAyFgw qZuQH"
>
$
NaN
@@ -82,17 +82,17 @@
</div>
</div>,
<div
- className="sc-ckVGcZ jBULtA"
+ className="sc-hMqMXs kjfrok"
>
<div
- className="sc-cvbbAY fUudDa"
+ className="sc-cMljjf fowfXL"
>
<h3>
Create a Token
</h3>
</div>
<p
- className="sc-hSdWYo cGItMu"
+ className="sc-jWBwVP dkPIf"
>
You need at least
@@ -113,22 +113,22 @@
exports[`Wallet with BCH balances and tokens and state field 1`] = `
Array [
<div
- className="sc-eNQAEJ bPMOWW"
+ className="sc-kkGfuU hVVqAi"
>
<h4
- className="sc-jWBwVP fTCVMO"
+ className="sc-jAaTju iGBQkN"
>
MigrationTestAlpha
</h4>
<div
- className="sc-kEYyzF eqAzMl"
+ className="sc-hSdWYo bXDUps"
>
0.06
XEC
</div>
<div
- className="sc-hMqMXs lndLVA"
+ className="sc-iAyFgw qZuQH"
>
$
NaN
@@ -137,16 +137,16 @@
</div>
</div>,
<div
- className="sc-ckVGcZ jBULtA"
+ className="sc-hMqMXs kjfrok"
>
<div
- className="sc-cvbbAY fUudDa"
+ className="sc-cMljjf fowfXL"
>
<h3>
Create a Token
</h3>
<div
- className="sc-gZMcBi yjhQX"
+ className="sc-VigVT bZouWf"
>
<form
className="ant-form ant-form-horizontal ant-form-small"
@@ -159,7 +159,7 @@
}
>
<label
- className="sc-jKJlTe biUgjm"
+ className="sc-kEYyzF gSQyNg"
>
Token Name
</label>
@@ -202,7 +202,7 @@
</div>
</div>
<label
- className="sc-jKJlTe biUgjm"
+ className="sc-kEYyzF gSQyNg"
>
Ticker
</label>
@@ -245,7 +245,7 @@
</div>
</div>
<label
- className="sc-jKJlTe biUgjm"
+ className="sc-kEYyzF gSQyNg"
>
Decimals
</label>
@@ -288,7 +288,7 @@
</div>
</div>
<label
- className="sc-jKJlTe biUgjm"
+ className="sc-kEYyzF gSQyNg"
>
Supply
</label>
@@ -331,7 +331,7 @@
</div>
</div>
<label
- className="sc-jKJlTe biUgjm"
+ className="sc-kEYyzF gSQyNg"
>
Document URL
</label>
@@ -374,7 +374,7 @@
</div>
</div>
<label
- className="sc-jKJlTe biUgjm"
+ className="sc-kEYyzF gSQyNg"
>
Add Image
</label>
@@ -476,7 +476,7 @@
</form>
</div>
<button
- className="sc-kpOJdX cdbSWM"
+ className="sc-jKJlTe cxrKVk"
disabled={true}
onClick={[Function]}
style={
@@ -517,22 +517,22 @@
exports[`Wallet without BCH balance 1`] = `
Array [
<div
- className="sc-eNQAEJ bPMOWW"
+ className="sc-kkGfuU hVVqAi"
>
<h4
- className="sc-jWBwVP fTCVMO"
+ className="sc-jAaTju iGBQkN"
>
MigrationTestAlpha
</h4>
<div
- className="sc-kEYyzF eqAzMl"
+ className="sc-hSdWYo bXDUps"
>
0
XEC
</div>
<div
- className="sc-hMqMXs lndLVA"
+ className="sc-iAyFgw qZuQH"
>
$
NaN
@@ -541,17 +541,17 @@
</div>
</div>,
<div
- className="sc-ckVGcZ jBULtA"
+ className="sc-hMqMXs kjfrok"
>
<div
- className="sc-cvbbAY fUudDa"
+ className="sc-cMljjf fowfXL"
>
<h3>
Create a Token
</h3>
</div>
<p
- className="sc-hSdWYo cGItMu"
+ className="sc-jWBwVP dkPIf"
>
You need at least
@@ -572,17 +572,17 @@
exports[`Without wallet defined 1`] = `
Array [
<div
- className="sc-eNQAEJ bPMOWW"
+ className="sc-kkGfuU hVVqAi"
>
<div
- className="sc-kEYyzF eqAzMl"
+ className="sc-hSdWYo bXDUps"
>
0
XEC
</div>
<div
- className="sc-hMqMXs lndLVA"
+ className="sc-iAyFgw qZuQH"
>
$
NaN
@@ -591,17 +591,17 @@
</div>
</div>,
<div
- className="sc-ckVGcZ jBULtA"
+ className="sc-hMqMXs kjfrok"
>
<div
- className="sc-cvbbAY fUudDa"
+ className="sc-cMljjf fowfXL"
>
<h3>
Create a Token
</h3>
</div>
<p
- className="sc-hSdWYo cGItMu"
+ className="sc-jWBwVP dkPIf"
>
You need at least

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 26, 09:55 (1 h, 12 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5573176
Default Alt Text
D11111.id32547.diff (91 KB)

Event Timeline