Skip to content

Commit f1d4c72

Browse files
Transfer txs update (#218)
* transparent transfer updates * nam shielded transfer, unshield transactions. * fixes. --------- Co-authored-by: poojachigitey <[email protected]>
1 parent fc576bf commit f1d4c72

File tree

9 files changed

+101
-31
lines changed

9 files changed

+101
-31
lines changed

src/containers/IBCTransfer/ShieldedSourceSelectField.js

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,14 @@ const ShieldedSourceSelectField = (props) => {
7777
value={props.value}
7878
onChange={handleChange}>
7979
{props.ibcOnly
80-
? null
81-
: <MenuItem className="phase5_disable" value="Namada" disabled>
82-
<img alt="NamadaLogo" src={NamadaLogo}/>
83-
<div>
84-
{variables[props.lang].namada}
85-
<p>{variables[props.lang].enables_in_phase_5}</p>
86-
</div>
87-
</MenuItem>}
80+
? null
81+
: <MenuItem className="phase5_disable" value="NAM" disabled>
82+
<img alt="NamadaLogo" src={NamadaLogo}/>
83+
<div>
84+
{variables[props.lang].namada}
85+
<p>{variables[props.lang].enables_in_phase_5}</p>
86+
</div>
87+
</MenuItem>}
8888
{enrichedAssets && enrichedAssets.map((asset, index) => {
8989
if (asset?.balance?.minDenomAmount === "0") {
9090
return null;

src/containers/ShieldedAssets/ShieldDialog/AmountTextField.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,20 @@ import React from 'react';
33
import TextField from '../../../components/TextField';
44
import { connect } from 'react-redux';
55
import { setAmount } from '../../../actions/shieldedAssets';
6+
import { config } from 'config';
67

78
const AmountTextField = (props) => {
89
const fromNamadaSelectedConfig = props.selectedAsset?.config;
910
let namadaBalance = props.selectedAsset?.balance?.minDenomAmount && Number(props.selectedAsset?.balance?.minDenomAmount) / 10 ** fromNamadaSelectedConfig.COIN_DECIMALS;
1011
if (props.from === 'shield_to_transparent') {
1112
const fromNamadaSelectedConfig = props.fromNamadaSelectedAsset?.config;
1213
namadaBalance = props.fromNamadaSelectedAsset?.balance && Number(props.fromNamadaSelectedAsset?.balance) / 10 ** fromNamadaSelectedConfig.COIN_DECIMALS;
14+
if (props.fromNamadaSelectedAsset?.tokenAddress === config.TOKEN_ADDRESS) {
15+
namadaBalance = props.fromNamadaSelectedAsset?.balance && Number(props.fromNamadaSelectedAsset?.balance);
16+
}
17+
}
18+
if (props.selectedAsset?.balance?.tokenAddress === config.TOKEN_ADDRESS) {
19+
namadaBalance = props.selectedAsset?.balance?.minDenomAmount && Number(props.selectedAsset?.balance?.minDenomAmount);
1320
}
1421

1522
const handleChange = (input) => {

src/containers/ShieldedAssets/ShieldDialog/ShieldedToTransparent.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ const ShieldedToTransparent = (props) => {
3535
const source = props.shieldedData?.pseudoExtendedKey;
3636
let token = config.TOKEN_ADDRESS;
3737
let amount = new BigNumber(props.amount);
38-
if (props.selectedAsset?.balance) {
38+
if (props.selectedAsset?.balance && props.selectedAsset?.tokenAddress &&
39+
props.selectedAsset?.tokenAddress !== config.TOKEN_ADDRESS) {
3940
amount = new BigNumber(props.amount * (10 ** fromNamadaSelectedConfig?.COIN_DECIMALS));
4041
token = props.selectedAsset?.tokenAddress;
4142
}
@@ -71,6 +72,8 @@ const ShieldedToTransparent = (props) => {
7172
if (props.feeOption?.fees?.token === config.TOKEN_ADDRESS) {
7273
txs.feeAmount = new BigNumber(0.000001);
7374
}
75+
} else if (props.selectedAsset?.tokenAddress === config.TOKEN_ADDRESS) {
76+
txs.feeAmount = new BigNumber(0.000001);
7477
}
7578
txs.gasLimit = new BigNumber(feeCalculation(props.gasEstimation))
7679
}
@@ -161,7 +164,10 @@ const ShieldedToTransparent = (props) => {
161164
const disable = inProgress || !props.amount || props.amountValid === false || !balanceValidation;
162165

163166
const fromNamadaSelectedConfig = props.selectedAsset?.config;
164-
const namadaBalance = props.selectedAsset?.balance && Number(props.selectedAsset?.balance) / 10 ** fromNamadaSelectedConfig.COIN_DECIMALS;
167+
let namadaBalance = props.selectedAsset?.balance && Number(props.selectedAsset?.balance) / 10 ** fromNamadaSelectedConfig.COIN_DECIMALS;
168+
if (props.selectedAsset?.tokenAddress === config.TOKEN_ADDRESS) {
169+
namadaBalance = props.selectedAsset?.balance && Number(props.selectedAsset?.balance)
170+
}
165171
const fee = feeList && fromNamadaSelectedConfig && feeList[fromNamadaSelectedConfig?.COIN_DENOM];
166172

167173
return (

src/containers/ShieldedAssets/ShieldDialog/SourceSelectField.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ const SourceSelectField = (props) => {
4848
placeholder={variables[props.lang]['select_asset']}
4949
value={props.value}
5050
onChange={handleChange}>
51-
<MenuItem className="phase5_disable" value="Namada" disabled>
52-
<img alt="NamadaLogo" src={NamadaLogo}/>
51+
<MenuItem className="phase5_disable" value="NAM" disabled>
52+
<img alt="NamadaLogo" src={NamadaLogo} style={{ width: '24px', height: '24px', marginRight: '8px' }}/>
5353
<div>
5454
{variables[props.lang].namada}
5555
<p>{variables[props.lang].enables_in_phase_5}</p>

src/containers/ShieldedAssets/ShieldDialog/index.js

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import NamadaLogo from '../../../assets/masp/namada_logo.svg';
1212
import NamadaShieldedLogo from '../../../assets/masp/namada_shielded.svg';
1313
import BigNumber from 'bignumber.js';
1414
import { maspTransaction } from 'helper';
15-
import CircularProgress from 'components/CircularProgress';
1615
import { ShieldingTransferDataMsgValue } from '@harish551/namada-types';
1716
import { fetchBalanceList, getBalance, getShieldedBalance } from 'actions/accounts';
1817
import { showDelegateFailedDialog, showDelegateProcessingDialog, showDelegateSuccessDialog } from 'actions/stake';
@@ -36,7 +35,8 @@ const ShieldDialog = (props) => {
3635
const source = props.address;
3736
let token = config.TOKEN_ADDRESS;
3837
let amount = new BigNumber(props.amount);
39-
if (props.selectedAsset?.balance?.minDenomAmount) {
38+
if (props.selectedAsset?.balance?.minDenomAmount && props.selectedAsset?.balance?.tokenAddress &&
39+
props.selectedAsset?.balance?.tokenAddress !== config.TOKEN_ADDRESS) {
4040
amount = new BigNumber(props.amount * (10 ** fromNamadaSelectedConfig?.COIN_DECIMALS));
4141
token = props.selectedAsset?.balance?.tokenAddress;
4242
}
@@ -71,6 +71,8 @@ const ShieldDialog = (props) => {
7171
if (props.feeOption?.fees?.token === config.TOKEN_ADDRESS) {
7272
txs.feeAmount = new BigNumber(0.000001);
7373
}
74+
} else if (props.selectedAsset?.balance?.tokenAddress === config.TOKEN_ADDRESS) {
75+
txs.feeAmount = new BigNumber(0.000001);
7476
}
7577
txs.gasLimit = new BigNumber(feeCalculation(props.gasEstimation))
7678
}
@@ -111,6 +113,38 @@ const ShieldDialog = (props) => {
111113
text: `${tokenName} Shielded Successfully`,
112114
content: 'Your shielded transaction was completed',
113115
}
116+
if (token === config.TOKEN_ADDRESS) {
117+
props.getBalance(props.address, (result) => {
118+
if (result && result.length) {
119+
let localBalance = null;
120+
result && result.length && result.map((val) => {
121+
if (val && val.length) {
122+
val.map((value) => {
123+
if (value === config.TOKEN_ADDRESS) {
124+
localBalance = val[1];
125+
}
126+
});
127+
}
128+
129+
return null;
130+
});
131+
132+
if (localBalance !== available) {
133+
setInProgress(false);
134+
setParams(false);
135+
setApproval(false);
136+
clearInterval(intervalTime);
137+
// props.successDialog(value && value.hash, null, fromNamadaSelectedConfig);
138+
props.showTokensTransactionSuccessDialog(successObject)
139+
props.getShieldedBalance(props.shieldedData?.viewingKey, props.shieldedData?.timestamp, props.address, props.shieldedData?.address, config.CHAIN_ID);
140+
props.hideTransparentTokensConvertDialog();
141+
}
142+
}
143+
});
144+
145+
return;
146+
}
147+
114148
props.fetchBalanceList(props.address, (result) => {
115149
if (result && result.length) {
116150
let localBalance = null;
@@ -175,7 +209,10 @@ const ShieldDialog = (props) => {
175209
const disable = inProgress || !props.amount || props.amountValid === false || !balanceValidation;
176210

177211
const fromNamadaSelectedConfig = props.selectedAsset?.config;
178-
const namadaBalance = props.selectedAsset?.balance?.minDenomAmount && Number(props.selectedAsset?.balance?.minDenomAmount) / 10 ** fromNamadaSelectedConfig.COIN_DECIMALS;
212+
let namadaBalance = props.selectedAsset?.balance?.minDenomAmount && Number(props.selectedAsset?.balance?.minDenomAmount) / 10 ** fromNamadaSelectedConfig.COIN_DECIMALS;
213+
if (props.selectedAsset?.balance?.tokenAddress === config.TOKEN_ADDRESS) {
214+
namadaBalance = props.selectedAsset?.balance?.minDenomAmount && Number(props.selectedAsset?.balance?.minDenomAmount)
215+
}
179216
const fee = feeList && fromNamadaSelectedConfig && feeList[fromNamadaSelectedConfig?.COIN_DENOM];
180217

181218
return (

src/containers/Tokens/ShieldedTokensListTable.js

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import classNames from 'classnames';
1717
import DotsLoading from 'components/DotsLoading';
1818
import variables from 'utils/variables';
1919
import { fetchGasEstimation } from 'actions/gasPrice';
20+
import { config } from '../../config';
2021

2122
const CustomTooltip = withStyles({
2223
tooltip: {
@@ -96,6 +97,12 @@ class ShieldedTokensListTable extends React.Component {
9697
if (find) {
9798
this.props.setFromShieldedNamadaSelectedAsset(value?.config?.COIN_DENOM, value);
9899
} else {
100+
// Enable in phase 5
101+
// if (!find && value?.config?.COIN_DENOM === config.COIN_DENOM) {
102+
// this.props.setFromShieldedNamadaSelectedAsset(value?.config?.COIN_DENOM, value);
103+
// } else {
104+
// this.props.setFromShieldedNamadaSelectedAsset(value?.config?.COIN_DENOM);
105+
// }
99106
this.props.setFromShieldedNamadaSelectedAsset(value?.config?.COIN_DENOM);
100107
}
101108
this.props.showShieldedTokensConvertDialog(value);
@@ -221,7 +228,7 @@ class ShieldedTokensListTable extends React.Component {
221228
{variables[this.props.lang].transfer}
222229
</Button>
223230
</span>
224-
</CustomTooltip>
231+
</CustomTooltip>
225232
: <Button onClick={() => this.handleTransfer(value)} disabled={this.props.shieldedBalanceProgress}>
226233
<img src={TransferIcon} alt="Transfer"/>
227234
{variables[this.props.lang].transfer}
@@ -260,13 +267,18 @@ class ShieldedTokensListTable extends React.Component {
260267
tokenAddress: (matchingBalance && matchingBalance.length && matchingBalance[0]) || (matchingToken && matchingToken.address) || null,
261268
};
262269
}).filter((item) => item);
270+
const matchingBalance = (this.props.balanceList || []).find(([address]) => address === config.TOKEN_ADDRESS);
263271
enrichedAssets.unshift({
264272
name: 'Shielded Namada',
265273
symbol: 'NAM',
266274
logo_URIs: {
267275
svg: NamadaShieldedLogo,
268276
},
269-
balance: 0,
277+
config: {
278+
COIN_DENOM: 'NAM',
279+
},
280+
balance: (matchingBalance && matchingBalance.length && matchingBalance[1]) || 0,
281+
tokenAddress: config.TOKEN_ADDRESS,
270282
});
271283

272284
const tableData = enrichedAssets && enrichedAssets.length

src/containers/Tokens/ShieldedTransferDialog/index.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import { ShieldedTransferDataMsgValue } from "@harish551/namada-types";
1919
import BigNumber from "bignumber.js";
2020
import { ibcShieldedTransfer } from "helper";
2121
import { fetchIBCBalance, showTokensTransactionSuccessDialog } from "actions/IBCTransfer";
22-
import CircularProgress from "components/CircularProgress";
2322
import variables from "utils/variables";
2423
import ProcessingButton from "components/ProcessingButton";
2524
import { balanceCalculation, feeCalculation, feeCalculationDisplay } from "utils/feeCalculation";
@@ -41,14 +40,17 @@ class ShieldedTransferDialog extends React.Component {
4140
}
4241

4342
handleTransfer () {
44-
const fromSelectedConfig = this.props.value && this.props.value.config && this.props.value.config.CHAIN_NAME ? this.props.value.config : null;
43+
const fromSelectedConfig = this.props.value && this.props.value?.symbol === 'NAM'
44+
? config
45+
: this.props.value && this.props.value.config && this.props.value.config.CHAIN_NAME ? this.props.value.config : null;
4546
this.setState({ inProgress: true });
4647

4748
// const source = this.props.address;
4849
const source = this.props.shieldedData?.pseudoExtendedKey;
4950
let token = config.TOKEN_ADDRESS;
5051
let amount = new BigNumber(this.props.tokensTransferAmount);
51-
if (this.props.value?.balance) {
52+
if (this.props.value?.balance && this.props.value?.tokenAddress &&
53+
this.props.value?.tokenAddress !== config.TOKEN_ADDRESS) {
5254
amount = new BigNumber(this.props.tokensTransferAmount * (10 ** fromSelectedConfig?.COIN_DECIMALS));
5355
token = this.props.value?.tokenAddress;
5456
}
@@ -94,6 +96,8 @@ class ShieldedTransferDialog extends React.Component {
9496
if (this.props.feeOption?.fees?.token === config.TOKEN_ADDRESS) {
9597
txs.feeAmount = new BigNumber(0.000001);
9698
}
99+
} else if (this.props.value?.tokenAddress === config.TOKEN_ADDRESS) {
100+
txs.feeAmount = new BigNumber(0.000001);
97101
}
98102
txs.gasLimit = new BigNumber(feeCalculation(this.props.gasEstimation))
99103
}

src/containers/Tokens/TokensListTable.js

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,11 @@ class TokensListTable extends React.Component {
106106
}
107107
this.props.fetchGasEstimation(array, value);
108108
this.props.showTransparentTokensConvertDialog(value);
109+
// Enable in phase 5
110+
// if (!find && value?.config?.COIN_DENOM === config.COIN_DENOM) {
111+
// this.props.setSelectedSource(value?.config?.COIN_DENOM, value);
112+
// return;
113+
// }
109114
this.props.setSelectedSource(value?.config?.COIN_DENOM, find);
110115
}
111116

@@ -252,14 +257,6 @@ class TokensListTable extends React.Component {
252257
<img src={TransferIcon} alt="Transfer"/>
253258
{variables[this.props.lang].transfer}
254259
</Button>}
255-
{/* <CustomTooltip title={token === 'NAM' ? 'Enables in Phase 5' : "Coming Soon"}>
256-
<span className='disabled_tx_button'>
257-
<Button disabled={true} onClick={() => this.handleTransfer(value)}>
258-
<img src={TransferIcon} alt="Transfer"/>
259-
Transfer
260-
</Button>
261-
</span>
262-
</CustomTooltip> */}
263260
{token === 'NAM'
264261
? <CustomTooltip title="Enables in Phase 5">
265262
<span className='disabled_tx_button'>
@@ -328,8 +325,12 @@ class TokensListTable extends React.Component {
328325
logo_URIs: {
329326
svg: NamadaLogo,
330327
},
328+
config: {
329+
COIN_DENOM: 'NAM',
330+
},
331331
balance: {
332-
minDenomAmount: available
332+
minDenomAmount: available,
333+
tokenAddress: config.TOKEN_ADDRESS,
333334
}
334335
});
335336

src/containers/Tokens/TransparentTransferDialog/index.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { formatCount } from "utils/numberFormats";
1414
import { fetchBalanceList, getBalance } from "actions/accounts";
1515
import { showDelegateFailedDialog, showDelegateProcessingDialog, showDelegateSuccessDialog } from "actions/stake";
1616
import { showMessage } from "actions/snackbar";
17-
import { config } from "config";
17+
import { config } from "../../../config";
1818
import { TransparentTransferDataMsgValue } from "@harish551/namada-types";
1919
import BigNumber from "bignumber.js";
2020
import { ibcTransparentTransfer } from "helper";
@@ -45,7 +45,8 @@ class TransparentTransferDialog extends React.Component {
4545
// const source = this.props.shieldedData?.pseudoExtendedKey;
4646
let token = config.TOKEN_ADDRESS;
4747
let amount = new BigNumber(this.props.tokensTransferAmount);
48-
if (this.props.value?.balance?.minDenomAmount) {
48+
if (this.props.value?.balance?.minDenomAmount && this.props.value?.balance?.tokenAddress &&
49+
this.props.value?.balance?.tokenAddress !== config.TOKEN_ADDRESS) {
4950
amount = new BigNumber(this.props.tokensTransferAmount * (10 ** fromSelectedConfig?.COIN_DECIMALS));
5051
token = this.props.value?.balance?.tokenAddress;
5152
}
@@ -81,6 +82,8 @@ class TransparentTransferDialog extends React.Component {
8182
if (this.props.feeOption?.fees?.token === config.TOKEN_ADDRESS) {
8283
txs.feeAmount = new BigNumber(0.000001);
8384
}
85+
} else if (this.props.value?.balance?.tokenAddress === config.TOKEN_ADDRESS) {
86+
txs.feeAmount = new BigNumber(0.000001);
8487
}
8588
txs.gasLimit = new BigNumber(feeCalculation(this.props.gasEstimation))
8689
}

0 commit comments

Comments
 (0)