WA-238 calculating gas and gasPrice when creating safe
This commit is contained in:
parent
8da8071eeb
commit
a759328f40
|
@ -5,7 +5,7 @@ import { promisify } from '~/utils/promisify'
|
||||||
|
|
||||||
// const MAINNET_NETWORK = 1
|
// const MAINNET_NETWORK = 1
|
||||||
|
|
||||||
const calculateGasPrice = async () => {
|
export const calculateGasPrice = async () => {
|
||||||
/*
|
/*
|
||||||
const web3 = getWeb3()
|
const web3 = getWeb3()
|
||||||
const { network } = web3.version
|
const { network } = web3.version
|
||||||
|
@ -26,16 +26,17 @@ const calculateGasPrice = async () => {
|
||||||
return new BigNumber(json.average).multipliedBy(1e8).toString()
|
return new BigNumber(json.average).multipliedBy(1e8).toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
const calculateGasOf = async (data: Object, from: string, to: string) => {
|
export const calculateGasOf = async (data: Object, from: string, to: string) => {
|
||||||
const web3 = getWeb3()
|
const web3 = getWeb3()
|
||||||
|
const gas = await promisify(cb => web3.eth.estimateGas({ data, from, to }, cb))
|
||||||
|
|
||||||
return promisify(cb => web3.eth.estimateGas({ data, from, to }, cb))
|
return gas * 2
|
||||||
}
|
}
|
||||||
|
|
||||||
const executeTransaction = async (data: Object, from: string, to: string) => {
|
const executeTransaction = async (data: Object, from: string, to: string) => {
|
||||||
const web3 = getWeb3()
|
const web3 = getWeb3()
|
||||||
|
|
||||||
const gas = await calculateGasOf(data, from, to) * 2
|
const gas = await calculateGasOf(data, from, to)
|
||||||
|
|
||||||
let gasPrice
|
let gasPrice
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -7,6 +7,7 @@ import GnosisSafeSol from '#/GnosisSafeTeamEdition.json'
|
||||||
import ProxyFactorySol from '#/ProxyFactory.json'
|
import ProxyFactorySol from '#/ProxyFactory.json'
|
||||||
import CreateAndAddModules from '#/CreateAndAddModules.json'
|
import CreateAndAddModules from '#/CreateAndAddModules.json'
|
||||||
import DailyLimitModule from '#/DailyLimitModule.json'
|
import DailyLimitModule from '#/DailyLimitModule.json'
|
||||||
|
import { calculateGasOf, calculateGasPrice } from '~/wallets/ethTransactions'
|
||||||
|
|
||||||
let proxyFactoryMaster
|
let proxyFactoryMaster
|
||||||
let createAndAddModuleMaster
|
let createAndAddModuleMaster
|
||||||
|
@ -129,5 +130,9 @@ export const deploySafeContract = async (
|
||||||
userAccount: string,
|
userAccount: string,
|
||||||
) => {
|
) => {
|
||||||
const gnosisSafeData = await getSafeDataBasedOn(safeAccounts, numConfirmations, dailyLimit)
|
const gnosisSafeData = await getSafeDataBasedOn(safeAccounts, numConfirmations, dailyLimit)
|
||||||
return proxyFactoryMaster.createProxy(safeMaster.address, gnosisSafeData, { from: userAccount, gas: '5000000' })
|
const proxyFactoryData = proxyFactoryMaster.contract.createProxy.getData(safeMaster.address, gnosisSafeData)
|
||||||
|
const gas = await calculateGasOf(proxyFactoryData, userAccount, proxyFactoryMaster.address)
|
||||||
|
const gasPrice = await calculateGasPrice()
|
||||||
|
|
||||||
|
return proxyFactoryMaster.createProxy(safeMaster.address, gnosisSafeData, { from: userAccount, gas, gasPrice })
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue