mirror of https://github.com/dap-ps/discover.git
[#16] dev.dap.ps is empty on IOS (develop 09.08.2019)
Signed-off-by: Jakub Sokołowski <jakub@status.im>
This commit is contained in:
parent
ccae507c00
commit
d1f654531f
|
@ -50,6 +50,49 @@ class DiscoverService extends BlockchainService {
|
||||||
return MetadataClient.getDappsCount()
|
return MetadataClient.getDappsCount()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async pushDapps(dappsCache, dapps) {
|
||||||
|
Object.keys(dappsCache).forEach(metadataHash => {
|
||||||
|
const dappMetadata = dappsCache[metadataHash]
|
||||||
|
|
||||||
|
if (dappMetadata.status == 'APPROVED') {
|
||||||
|
dapps.push({
|
||||||
|
developer: '',
|
||||||
|
id: dappMetadata.compressedMetadata,
|
||||||
|
metadata: {
|
||||||
|
...dappMetadata.details,
|
||||||
|
status: dappMetadata.status,
|
||||||
|
},
|
||||||
|
balance: 0,
|
||||||
|
rate: 0,
|
||||||
|
available: 0,
|
||||||
|
votesMinted: 0,
|
||||||
|
votesCast: 0,
|
||||||
|
effectiveBalance: 0,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
async getAllDappsWithoutMetadata() {
|
||||||
|
try {
|
||||||
|
const contractDappsCount = await DiscoverContract.methods
|
||||||
|
.getDAppsCount()
|
||||||
|
.call({ from: this.sharedContext.account })
|
||||||
|
|
||||||
|
const dappsCache = JSON.parse(
|
||||||
|
JSON.stringify(await MetadataClient.retrieveMetadataCache()),
|
||||||
|
)
|
||||||
|
|
||||||
|
let dapps = [];
|
||||||
|
|
||||||
|
await this.pushDapps(dappsCache, dapps)
|
||||||
|
|
||||||
|
return dapps
|
||||||
|
} catch (error) {
|
||||||
|
throw new Error(`Error fetching dapps. Details: ${error.message}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async getAllDappsWithMetadata() {
|
async getAllDappsWithMetadata() {
|
||||||
try {
|
try {
|
||||||
const contractDappsCount = await DiscoverContract.methods
|
const contractDappsCount = await DiscoverContract.methods
|
||||||
|
@ -66,10 +109,11 @@ class DiscoverService extends BlockchainService {
|
||||||
DiscoverContract.methods.dapps(i).call({from: this.sharedContext.account})
|
DiscoverContract.methods.dapps(i).call({from: this.sharedContext.account})
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
let dapps = [];
|
||||||
/* using Promise.all() to run calls in parallel */
|
/* using Promise.all() to run calls in parallel */
|
||||||
let dapps = await Promise.all(asyncCalls)
|
let dappsCalls = await Promise.all(asyncCalls)
|
||||||
|
|
||||||
for (let dapp of dapps) {
|
for (let dapp of dappsCalls) {
|
||||||
const dappMetadata = dappsCache[dapp.metadata]
|
const dappMetadata = dappsCache[dapp.metadata]
|
||||||
if (dappMetadata) {
|
if (dappMetadata) {
|
||||||
delete dappsCache[dapp.metadata]
|
delete dappsCache[dapp.metadata]
|
||||||
|
@ -80,26 +124,7 @@ class DiscoverService extends BlockchainService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Object.keys(dappsCache).forEach(metadataHash => {
|
await this.pushDapps(dappsCache, dapps)
|
||||||
const dappMetadata = dappsCache[metadataHash]
|
|
||||||
|
|
||||||
if (dappMetadata.status == 'APPROVED') {
|
|
||||||
dapps.push({
|
|
||||||
developer: '',
|
|
||||||
id: dappMetadata.compressedMetadata,
|
|
||||||
metadata: {
|
|
||||||
...dappMetadata.details,
|
|
||||||
status: dappMetadata.status,
|
|
||||||
},
|
|
||||||
balance: 0,
|
|
||||||
rate: 0,
|
|
||||||
available: 0,
|
|
||||||
votesMinted: 0,
|
|
||||||
votesCast: 0,
|
|
||||||
effectiveBalance: 0,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
return dapps
|
return dapps
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
|
@ -33,7 +33,19 @@ export const fetchAllDappsAction = () => {
|
||||||
const { transactionStatus } = state
|
const { transactionStatus } = state
|
||||||
let dappSource = ''
|
let dappSource = ''
|
||||||
|
|
||||||
|
/* we want to show dapps list first and then load all data from blockchain */
|
||||||
|
const allDappsWithoutMeta = await discoverService.getAllDappsWithoutMetadata()
|
||||||
|
|
||||||
|
for (let i = 0; i < allDappsWithoutMeta.length; i++) {
|
||||||
|
dappSource = allDappsWithoutMeta[i]
|
||||||
|
if (dappSource !== null) {
|
||||||
|
const dappModel = DappModel.instanceFromBlockchainWithMetadata(dappSource)
|
||||||
|
dispatch(onUpdateDappsAction(dappState.creditDapp(dappModel)))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const allDapps = await discoverService.getAllDappsWithMetadata()
|
const allDapps = await discoverService.getAllDappsWithMetadata()
|
||||||
|
|
||||||
for (let i = 0; i < allDapps.length; i++) {
|
for (let i = 0; i < allDapps.length; i++) {
|
||||||
dappSource = allDapps[i]
|
dappSource = allDapps[i]
|
||||||
if (dappSource !== null) {
|
if (dappSource !== null) {
|
||||||
|
|
Loading…
Reference in New Issue