mirror of https://github.com/dap-ps/discover.git
Change the metadata fetching flow
This commit is contained in:
parent
92638c4d34
commit
d188561dbc
|
@ -15,3 +15,26 @@
|
|||
[2019-07-20 10:57:31]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [QmNUSXTixR4DZtPQ5vuBoEAZtv5Pe6CQdkgpRyPYfsbVs6] has been uploaded successfully
|
||||
[2019-07-20 10:59:15]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [QmVv5G6UvVBAFsMQtff8Sk9p12Hn29g959wUeE3WjsdGUv] has been uploaded successfully
|
||||
[2019-07-20 11:00:45]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [QmQiiVYUTtpg1DtiKnVKVfkfKkM7Brt7JHVFLcVf3H1yDV] has been uploaded successfully
|
||||
[2019-07-20 11:04:34]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [QmNMPu9ykeAmmjBoN4g3zBC5HGypr6K4MFb3Tjkmd78i5B] has been uploaded successfully
|
||||
[2019-07-20 11:06:41]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [QmScorFHZqFYze8RYNXpXuJPTh4ptwTcLeGPE5TodC6gnw] has been uploaded successfully
|
||||
[2019-07-20 11:06:50]-[ERROR]-[Base-Email]: Email service verification failed due to Error: connect ECONNREFUSED 127.0.0.1:587
|
||||
[2019-07-20 11:09:14]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [QmeyTjkdgSA2M28xugPNRXCjSmsQNHWfsNeYyCfK1FyqV9] has been uploaded successfully
|
||||
[2019-07-20 11:10:55]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [QmQDFjSnY5pTo2k8uHgvYBFYKB1C9RtrNFxt4enLizP9Hp] has been uploaded successfully
|
||||
[2019-07-20 11:12:14]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [QmZ4yiDhHmWf1tTsio4vrTzZrE51XKbtm8NzYUV68cxXZz] has been uploaded successfully
|
||||
[2019-07-20 11:12:14]-[ERROR]-[Base-Email]: Email service verification failed due to Error: connect ECONNREFUSED 127.0.0.1:587
|
||||
[2019-07-20 11:32:31]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [Qmf5RuGyCJFVVtCq7KLXgWwmgRVhTi7oKyiN1Nqk7Fw7Rv] has been uploaded successfully
|
||||
[2019-07-20 11:32:31]-[ERROR]-[Base-Email]: Email service verification failed due to Error: connect ECONNREFUSED 127.0.0.1:587
|
||||
[2019-07-20 11:35:27]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [QmcsiJkjcfuGvVYK55j9RC2DCBwvHPjrcBrG7UztM3G9xw] has been uploaded successfully
|
||||
[2019-07-20 11:35:27]-[ERROR]-[Base-Email]: Email service verification failed due to Error: connect ECONNREFUSED 127.0.0.1:587
|
||||
[2019-07-20 11:38:06]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [QmbJ1t7GmMujpvVcFpdGQ58dTxFAtNYaUxNNEXrXS9hnHJ] has been uploaded successfully
|
||||
[2019-07-20 11:38:06]-[ERROR]-[Base-Email]: Email service verification failed due to Error: connect ECONNREFUSED 127.0.0.1:587
|
||||
[2019-07-20 11:39:17]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [QmPheif9S68kEo4hzuszveWMk5LMEsUb2f5MR8nStkiZBs] has been uploaded successfully
|
||||
[2019-07-20 11:39:17]-[ERROR]-[Base-Email]: Email service verification failed due to Error: connect ECONNREFUSED 127.0.0.1:587
|
||||
[2019-07-20 11:45:48]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [QmcFPhH8yLG7ERjbEv6kyWsPEGMu2JufXud7Regdn4KNHz] has been uploaded successfully
|
||||
[2019-07-20 11:45:48]-[ERROR]-[Base-Email]: Email service verification failed due to Error: connect ECONNREFUSED 127.0.0.1:587
|
||||
[2019-07-20 11:47:31]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [QmWvNbgnR82ZkjWmAC7SMisA7k7zKCz7Fqu9HKVwyhJqFY] has been uploaded successfully
|
||||
[2019-07-20 11:47:31]-[ERROR]-[Base-Email]: Email service verification failed due to Error: connect ECONNREFUSED 127.0.0.1:587
|
||||
[2019-07-20 11:49:43]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [QmRtZmATHLNgxSZPbsDXaDiRe7hURagzCWYqbG7rdtS9T1] has been uploaded successfully
|
||||
[2019-07-20 11:50:02]-[ERROR]-[Base-Email]: Email service verification failed due to Error: connect ECONNREFUSED 127.0.0.1:587
|
||||
[2019-07-20 12:10:07]-[INFO]-[DApps-Metadata-Controller]: A dapp metadata with hash [QmYA7iGvK4641Fu2uPSKe5ahUmrMxrksFDtigvQb4VDtXd] has been uploaded successfully
|
||||
[2019-07-20 12:10:07]-[ERROR]-[Base-Email]: Email service verification failed due to Error: connect ECONNREFUSED 127.0.0.1:587
|
||||
|
|
|
@ -9,6 +9,20 @@ import DiscoverContract from '../../../../embarkArtifacts/contracts/Discover'
|
|||
|
||||
const BN = require('bn.js')
|
||||
|
||||
const EMPTY_METADATA = {
|
||||
developer: '',
|
||||
id: '',
|
||||
metadata: {
|
||||
status: 'EMPTY',
|
||||
},
|
||||
balance: 0,
|
||||
rate: 0,
|
||||
available: 0,
|
||||
votesMinted: 0,
|
||||
votesCast: 0,
|
||||
effectiveBalance: 0,
|
||||
}
|
||||
|
||||
class DiscoverService extends BlockchainService {
|
||||
constructor(sharedContext) {
|
||||
super(sharedContext, DiscoverContract, DiscoverValidator)
|
||||
|
@ -17,10 +31,11 @@ class DiscoverService extends BlockchainService {
|
|||
|
||||
// View methods
|
||||
async upVoteEffect(id, amount) {
|
||||
await this.validator.validateUpVoteEffect(id, amount)
|
||||
const tokenAmount = new BN(amount, 10)
|
||||
await this.validator.validateUpVoteEffect(id, tokenAmount)
|
||||
|
||||
return DiscoverContract.methods
|
||||
.upvoteEffect(id, amount)
|
||||
.upvoteEffect(id, tokenAmount.toString())
|
||||
.call({ from: this.sharedContext.account })
|
||||
}
|
||||
|
||||
|
@ -104,21 +119,25 @@ class DiscoverService extends BlockchainService {
|
|||
}
|
||||
|
||||
async getDAppById(id) {
|
||||
let dapp
|
||||
try {
|
||||
const dappId = await DiscoverContract.methods
|
||||
.id2index(id)
|
||||
.call({ from: this.sharedContext.account })
|
||||
let dapp = EMPTY_METADATA
|
||||
const dappExists = await this.isDAppExists(id)
|
||||
|
||||
dapp = await DiscoverContract.methods
|
||||
.dapps(dappId)
|
||||
.call({ from: this.sharedContext.account })
|
||||
} catch (error) {
|
||||
throw new Error('Searching DApp does not exists')
|
||||
}
|
||||
if (dappExists) {
|
||||
try {
|
||||
const dappId = await DiscoverContract.methods
|
||||
.id2index(id)
|
||||
.call({ from: this.sharedContext.account })
|
||||
|
||||
if (dapp.id != id) {
|
||||
throw new Error('Error fetching correct data from contract')
|
||||
dapp = await DiscoverContract.methods
|
||||
.dapps(dappId)
|
||||
.call({ from: this.sharedContext.account })
|
||||
} catch (error) {
|
||||
throw new Error('Searching DApp does not exists')
|
||||
}
|
||||
|
||||
if (dapp.id != id) {
|
||||
throw new Error('Error fetching correct data from contract')
|
||||
}
|
||||
}
|
||||
|
||||
return dapp
|
||||
|
@ -126,10 +145,11 @@ class DiscoverService extends BlockchainService {
|
|||
|
||||
async getDAppDataById(id) {
|
||||
const dapp = await this.getDAppById(id)
|
||||
if (dapp.metadata.status == 'EMPTY') return EMPTY_METADATA
|
||||
|
||||
try {
|
||||
const dappMetadata = await MetadataClient.retrieveMetadata(dapp.metadata)
|
||||
if (dappMetadata === null) return null
|
||||
if (dappMetadata === null) return EMPTY_METADATA
|
||||
dapp.metadata = dappMetadata.details
|
||||
dapp.metadata.status = dappMetadata.status
|
||||
|
||||
|
@ -153,6 +173,7 @@ class DiscoverService extends BlockchainService {
|
|||
|
||||
async checkIfCreatorOfDApp(id) {
|
||||
const dapp = await this.getDAppById(id)
|
||||
if (dapp.metadata.status == 'EMPTY') return false
|
||||
this.sharedContext.account = await super.getAccount()
|
||||
|
||||
return dapp.developer.toLowerCase() == this.sharedContext.account
|
||||
|
@ -174,15 +195,16 @@ class DiscoverService extends BlockchainService {
|
|||
|
||||
const uploadedMetadata = await MetadataClient.upload(dappMetadata, email)
|
||||
|
||||
let createdTx = null
|
||||
if (tokenAmount.gt(0)) {
|
||||
let createdTx = ''
|
||||
|
||||
if (tokenAmount.gt(new BN(0, 10))) {
|
||||
const callData = ConnectedDiscoverContract.methods
|
||||
.createDApp(dappId, tokenAmount.toString(), uploadedMetadata)
|
||||
.encodeABI()
|
||||
|
||||
createdTx = await this.sharedContext.SNTService.approveAndCall(
|
||||
this.contract,
|
||||
tokenAmount.toString(),
|
||||
tokenAmount,
|
||||
callData,
|
||||
)
|
||||
}
|
||||
|
@ -198,7 +220,7 @@ class DiscoverService extends BlockchainService {
|
|||
await this.validator.validateUpVoting(id, tokenAmount)
|
||||
|
||||
const callData = DiscoverContract.methods
|
||||
.upvote(id, tokenAmount)
|
||||
.upvote(id, tokenAmount.toString())
|
||||
.encodeABI()
|
||||
return this.sharedContext.SNTService.approveAndCall(
|
||||
this.contract,
|
||||
|
@ -216,7 +238,7 @@ class DiscoverService extends BlockchainService {
|
|||
const tokenAmount = this.decimalMultiplier.mul(amountBN)
|
||||
|
||||
const callData = DiscoverContract.methods
|
||||
.downvote(dapp.id, tokenAmount)
|
||||
.downvote(dapp.id, tokenAmount.toString())
|
||||
.encodeABI()
|
||||
return this.sharedContext.SNTService.approveAndCall(
|
||||
this.contract,
|
||||
|
@ -234,7 +256,8 @@ class DiscoverService extends BlockchainService {
|
|||
|
||||
try {
|
||||
return broadcastContractFn(
|
||||
ConnectedDiscoverContract.methods.withdraw(id, tokenAmount).send,
|
||||
ConnectedDiscoverContract.methods.withdraw(id, tokenAmount.toString())
|
||||
.send,
|
||||
this.sharedContext.account,
|
||||
)
|
||||
} catch (error) {
|
||||
|
|
|
@ -40,7 +40,11 @@ class SNTService extends BlockchainService {
|
|||
const ConnectedSNTToken = await super.__unlockServiceAccount(SNTToken)
|
||||
await this.validator.validateApproveAndCall(spender, amount)
|
||||
return broadcastContractFn(
|
||||
ConnectedSNTToken.methods.approveAndCall(spender, amount, callData).send,
|
||||
ConnectedSNTToken.methods.approveAndCall(
|
||||
spender,
|
||||
amount.toString(),
|
||||
callData,
|
||||
).send,
|
||||
this.sharedContext.account,
|
||||
)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue