diff --git a/imports/startup/both/index.js b/imports/startup/both/index.js index 6e41c4c..1f8029b 100644 --- a/imports/startup/both/index.js +++ b/imports/startup/both/index.js @@ -5,7 +5,7 @@ import { rawAddressToB32Address, rawAddressToHexAddress, b32AddressToRawAddress export const SHOR_PER_QUANTA = 1000000000 // Explorer Version -export const EXPLORER_VERSION = '1.2.0' +export const EXPLORER_VERSION = '1.2.1' // Function to cleanly represent large decimal numbers without exponential formatting. export function numberToString(num) { diff --git a/imports/startup/server/index.js b/imports/startup/server/index.js index 7d03edf..a95eaef 100644 --- a/imports/startup/server/index.js +++ b/imports/startup/server/index.js @@ -426,12 +426,18 @@ const getFullAddressState = (request, callback) => { const getAddressState = (request, callback) => { try { qrlApi('GetOptimizedAddressState', request, (error, response) => { - if (error) { - const myError = errorCallback(error, 'Cannot access API/GetOptimizedAddressState', '**ERROR/getAddressState** ') + if (error || response.state === null) { + const myError = errorCallback( + error, + 'Cannot access API/GetOptimizedAddressState', + '**ERROR/getAddressState** ', + ) callback(myError, null) } else { if (response.state.address) { - response.state.address = `Q${Buffer.from(response.state.address).toString('hex')}` + response.state.address = `Q${Buffer.from( + response.state.address, + ).toString('hex')}` } callback(null, response) @@ -450,6 +456,15 @@ const getMultiSigAddressState = (request, callback) => { const myError = errorCallback(error, 'Cannot access API/GetMultiSigAddressState', '**ERROR/getMultiSigAddressState** ') callback(myError, null) } else { + if (response.state === null) { + const myError = errorCallback( + error, + 'No state returned for this address', + '**ERROR/getMultiSigAddressState** ', + ) + callback(myError, null) + return + } if (response.state.address) { response.state.address = `Q${Buffer.from(response.state.address).toString('hex')}` } diff --git a/imports/ui/components/address/address.html b/imports/ui/components/address/address.html index 2db3b76..710950f 100644 --- a/imports/ui/components/address/address.html +++ b/imports/ui/components/address/address.html @@ -1,5 +1,16 @@ diff --git a/imports/ui/components/address/address.js b/imports/ui/components/address/address.js index 422bacc..43625e3 100644 --- a/imports/ui/components/address/address.js +++ b/imports/ui/components/address/address.js @@ -120,7 +120,6 @@ function loadAddressTransactions(aId, page) { }) } - const getTokenBalances = (getAddress, callback) => { const request = { address: anyAddressToRaw(getAddress), @@ -307,15 +306,23 @@ Template.address.helpers({ return Session.equals('addressFormat', 'bech32') }, address() { - const address = Session.get('address') - if (address !== undefined) { - if (address.state !== undefined) { - address.state.address = hexOrB32(anyAddressToRaw(address.state.address)) - return address + try { + const address = Session.get('address') + if (Session.get('address').error) { + return { found: false, parameter: FlowRouter.getParam('aId') } + } + if (address !== undefined) { + if (address.state !== undefined) { + address.state.address = hexOrB32( + anyAddressToRaw(address.state.address), + ) + return address + } } + return false + } catch (e) { + return false } - // error handling needed here - return false }, isMultiSig() { try { @@ -460,6 +467,16 @@ Template.address.helpers({ return false } }, + notFound() { + try { + if (Session.get('address').error) { + return true + } + return false + } catch (e) { + return false + } + }, isThisAddress(address) { try { // console.log(address) @@ -818,6 +835,6 @@ Template.address.onRendered(() => { // Render identicon (needs to be here for initial load). // Also Session.get('address') is blank at this point - //$('.qr-code-container').qrcode({ width: 100, height: 100, text: upperCaseFirst(FlowRouter.getParam('aId')) }) - //jdenticon.update('#identicon', upperCaseFirst(FlowRouter.getParam('aId'))) /* eslint no-undef:0 */ + // $('.qr-code-container').qrcode({ width: 100, height: 100, text: upperCaseFirst(FlowRouter.getParam('aId')) }) + // jdenticon.update('#identicon', upperCaseFirst(FlowRouter.getParam('aId'))) /* eslint no-undef:0 */ })