Browse Source

add fees to publish

pull/188/head
Phillip 1 year ago
parent
commit
ccc7822646
  1. 34
      plugins/plugins/core/qdn/publish/publish.src.js
  2. 25
      plugins/plugins/utils/publish-image.js

34
plugins/plugins/core/qdn/publish/publish.src.js

@ -488,6 +488,16 @@ class PublishData extends LitElement {
this.successMessage = ''
console.error(errorMessage)
}
const getArbitraryFee = async () => {
const timestamp = Date.now()
let fee = await parentEpml.request('apiCall', {
url: `/unitfee?txType=ARBITRARY&timestamp=${timestamp}`
})
return {
timestamp,
fee : (Number(fee) / 1e8).toFixed(8)
}
}
const validate = async () => {
let validNameRes = await validateName(registeredName)
@ -501,8 +511,17 @@ class PublishData extends LitElement {
this.generalMessage = `${err6string}`
let transactionBytes
let previewUrlPath
let uploadDataRes = await uploadData(registeredName, path, file, preview, fee)
let feeAmount = null
if(fee){
const res = await getArbitraryFee()
if(res.fee){
feeAmount= res.fee
} else {
throw new Error('unable to get fee')
}
}
let uploadDataRes = await uploadData(registeredName, path, file, preview, fee, feeAmount)
if (uploadDataRes.error) {
let err7string = get("publishpage.pchange20")
@ -531,12 +550,13 @@ class PublishData extends LitElement {
if (fee) {
let err9string = get("publishpage.pchange26")
this.generalMessage = `${err9string}`
} else {
let err9string = get("publishpage.pchange22")
this.generalMessage = `${err9string}`
}
let signAndProcessRes = await signAndProcess(transactionBytes, fee)
let signAndProcessRes = await signAndProcess(transactionBytes, fee, feeAmount)
if (signAndProcessRes.error) {
let err10string = get("publishpage.pchange20")
@ -554,7 +574,9 @@ class PublishData extends LitElement {
this.successMessage = `${err11string}`
}
const uploadData = async (registeredName, path, file, preview, fee) => {
const uploadData = async (registeredName, path, file, preview, fee, feeAmount) => {
let postBody = path
let urlSuffix = ""
if (file != null) {
@ -592,9 +614,9 @@ class PublishData extends LitElement {
uploadDataUrl = `/arbitrary/${service}/${registeredName}/${this.identifier}${urlSuffix}?${metadataQueryString}&apiKey=${this.getApiKey()}&preview=${new Boolean(preview).toString()}`
}
} else if (fee) {
uploadDataUrl = `/arbitrary/${this.service}/${registeredName}${urlSuffix}?${metadataQueryString}&fee=100000&apiKey=${this.getApiKey()}`
uploadDataUrl = `/arbitrary/${this.service}/${registeredName}${urlSuffix}?${metadataQueryString}&fee=${feeAmount}&apiKey=${this.getApiKey()}`
if (identifier != null && identifier.trim().length > 0) {
uploadDataUrl = `/arbitrary/${service}/${registeredName}/${this.identifier}${urlSuffix}?${metadataQueryString}&fee=100000&apiKey=${this.getApiKey()}`
uploadDataUrl = `/arbitrary/${service}/${registeredName}/${this.identifier}${urlSuffix}?${metadataQueryString}&fee=${feeAmount}&apiKey=${this.getApiKey()}`
}
} else {
uploadDataUrl = `/arbitrary/${this.service}/${registeredName}${urlSuffix}?${metadataQueryString}&apiKey=${this.getApiKey()}`

25
plugins/plugins/utils/publish-image.js

@ -48,6 +48,16 @@ export const publishData = async ({
})
return convertedBytes
}
const getArbitraryFee = async () => {
const timestamp = Date.now()
let fee = await parentEpml.request('apiCall', {
url: `/unitfee?txType=ARBITRARY&timestamp=${timestamp}`
})
return {
timestamp,
fee : (Number(fee) / 1e8).toFixed(8)
}
}
const signAndProcess = async (transactionBytesBase58) => {
let convertedBytesBase58 = await convertBytesForSigning(
@ -125,7 +135,16 @@ export const publishData = async ({
if (validNameRes.error) {
throw new Error('Name not found');
}
let transactionBytes = await uploadData(registeredName, path, file)
let fee = null
if(withFee){
const res = await getArbitraryFee()
if(res.fee){
fee= res.fee
} else {
throw new Error('unable to get fee')
}
}
let transactionBytes = await uploadData(registeredName, path, file, fee)
if (transactionBytes.error) {
throw new Error(transactionBytes.message || 'Error when uploading');
} else if (
@ -149,7 +168,7 @@ export const publishData = async ({
return signAndProcessRes
}
const uploadData = async (registeredName, path, file) => {
const uploadData = async (registeredName, path, file, fee) => {
if (identifier != null && identifier.trim().length > 0) {
let postBody = path
let urlSuffix = ""
@ -181,7 +200,7 @@ export const publishData = async ({
}
if(withFee){
uploadDataUrl = uploadDataUrl + '&fee=100000'
uploadDataUrl = uploadDataUrl + `&fee=${fee}`
}
if(filename != null && filename != "undefined"){

Loading…
Cancel
Save