return state
}
-const btmAmountUnit = (state = 'BTM', action) => {
+const defaultBtmAmountUnit = window.localStorage.getItem('BtmAmountUnit') || 'BTM'
+const btmAmountUnit = (state = defaultBtmAmountUnit, action) => {
if (action.type == 'UPDATE_BTM_AMOUNT_UNIT') {
+ window.localStorage.setItem('BtmAmountUnit', action.param)
return action.param
}
return state
loadedOnce: state[type].queries.loadedOnce,
type: type,
lang: state.core.lang,
+ btmAmountUnit: state.core.btmAmountUnit,
listItemComponent: itemComponent,
noResults: currentItems.length == 0,
showFirstTimeFlow: currentItems.length == 0,
</Link>
</div>
- <Summary transaction={item} lang={lang}/>
+ <Summary transaction={item} lang={lang} btmAmountUnit={this.props.btmAmountUnit}/>
</div>
)
}
render() {
const item = this.props.item
const lang = this.props.lang
+ const btmAmountUnit = this.props.btmAmountUnit
let view
if (item) {
actions={[
<RawJsonButton key='raw-json' item={item} />
]}>
- <Summary transaction={item} lang={lang}/>
+ <Summary transaction={item} lang={lang} btmAmountUnit={btmAmountUnit}/>
</Section>
<KeyValueTable
<KeyValueTable
key={index}
title={index == 0 ? lang === 'zh' ? '输出' : 'Outputs' : ''}
- items={buildTxOutputDisplay(output)}
+ items={buildTxOutputDisplay(output, btmAmountUnit)}
/>
)}
</PageContent>
const mapStateToProps = (state, ownProps) => ({
item: state.transaction.items[ownProps.params.id],
- lang: state.core.lang
+ lang: state.core.lang,
+ btmAmountUnit: state.core.btmAmountUnit
})
const mapDispatchToProps = ( dispatch ) => ({
const summary = this.normalizeInouts(inouts)
const items = []
+ const fomateDecimal = (src,pos) => {
+ let srcString = src.toString()
+ var rs = srcString.indexOf('.')
+ if (rs < 0) {
+ rs = srcString.length
+ srcString += '.'
+ }
+ while (srcString.length <= rs + pos) {
+ srcString += '0'
+ }
+ return srcString
+ }
+
+ const normalizeBtmAmountUnit = (assetID, amount, btmAmountUnit) => {
+ //normalize BTM Amount
+ if (assetID === 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff') {
+ switch (btmAmountUnit){
+ case 'BTM':
+ return fomateDecimal(amount/100000000, 8)
+ case 'mBTM':
+ return fomateDecimal(amount/100000, 5)
+ }
+ }
+ return amount
+ }
+
Object.keys(summary).forEach((assetId) => {
const asset = summary[assetId]
const nonAccountTypes = ['issue','retire']
+
nonAccountTypes.forEach((type) => {
if (asset[type] > 0) {
items.push({
type: INOUT_TYPES[type],
rawAction: type,
- amount: asset[type],
+ amount: normalizeBtmAmountUnit(assetId, asset[type], this.props.btmAmountUnit),
asset: asset.alias ? asset.alias : <code className={styles.rawId}>{assetId}</code>,
assetId: assetId,
})
items.push({
type: INOUT_TYPES[type],
rawAction: type,
- amount: account[type],
+ amount: normalizeBtmAmountUnit(assetId, account[type], this.props.btmAmountUnit),
asset: asset.alias ? asset.alias : <code className={styles.rawId}>{assetId}</code>,
assetId: assetId,
direction: type == 'spend' ? 'from' : 'to',
const balanceFields = Object.keys(mappings)
-const buildDisplay = (item, fields) => {
+const buildDisplay = (item, fields, btmAmountUnit) => {
const details = []
fields.forEach(key => {
if (item.hasOwnProperty(key)) {
- details.push({label: mappings[key], value: item[key]})
+ if(key === 'amount'){
+ details.push({label: mappings[key], value: normalizeAmount(item['assetId'], item[key], btmAmountUnit)})
+ }else{
+ details.push({label: mappings[key], value: item[key]})
+ }
}
})
return details
return srcString
}
-const normalizeAmount = (assetAlias, amount, btmAmountUnit) => {
+const normalizeAmount = (assetID, amount, btmAmountUnit) => {
//normalize BTM Amount
- if (assetAlias === 'btm') {
+ if (assetID === 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff') {
switch (btmAmountUnit){
case 'BTM':
return fomateDecimal(amount/100000000, 8)
return buildDisplay(input, txInputFields)
}
-export function buildTxOutputDisplay(output) {
- return buildDisplay(output, txOutputFields)
+export function buildTxOutputDisplay(output, btmAmountUnit) {
+ return buildDisplay(output, txOutputFields,btmAmountUnit)
}
export function buildUnspentDisplay(output, btmAmountUnit) {
const normalized = {
- amount: normalizeAmount(output.assetAlias, output.amount, btmAmountUnit),
+ amount: output.amount,
accountId: output.accountId,
accountAlias: output.accountAlias,
assetId: output.assetId,
sourceId: output.sourceId,
sourcePos: output.sourcePos
}
- return buildDisplay(normalized, unspentFields)
+ return buildDisplay(normalized, unspentFields, btmAmountUnit)
}
export function buildBalanceDisplay(balance, btmAmountUnit) {
return buildDisplay({
- amount: normalizeAmount(balance.assetAlias, balance.amount, btmAmountUnit),
+ amount: balance.amount,
assetId: balance.assetId,
assetAlias: balance.assetAlias,
accountAlias: balance.accountAlias
- }, balanceFields)
+ }, balanceFields, btmAmountUnit)
}