33 lines
875 B
JavaScript
33 lines
875 B
JavaScript
|
import { numberToHex } from 'web3-utils'
|
||
|
import { packEncryptedMessage } from '@/utils'
|
||
|
|
||
|
export async function saveEncryptedAccount({ getters, dispatch }, { from, encryptedData, callback }) {
|
||
|
try {
|
||
|
const contract = getters.echoContract
|
||
|
|
||
|
const data = packEncryptedMessage(encryptedData)
|
||
|
|
||
|
const callData = contract.getCallData(data)
|
||
|
const gas = await contract.estimateGas({ from, data })
|
||
|
|
||
|
const callParams = {
|
||
|
method: 'eth_sendTransaction',
|
||
|
params: {
|
||
|
data: callData,
|
||
|
to: contract.address,
|
||
|
gas: numberToHex(gas + 10000)
|
||
|
},
|
||
|
watcherParams: {
|
||
|
title: 'accountSaving',
|
||
|
successTitle: 'accountSaved',
|
||
|
onSuccess: callback
|
||
|
},
|
||
|
isSaving: false
|
||
|
}
|
||
|
|
||
|
await dispatch('metamask/sendTransaction', callParams, { root: true })
|
||
|
} catch (err) {
|
||
|
throw new Error(err.message)
|
||
|
}
|
||
|
}
|