submitting tx to history service wip

This commit is contained in:
Mikhail Mikheev 2019-06-14 13:57:28 +04:00
parent ee5d7f270b
commit b240c08783
5 changed files with 17 additions and 30 deletions

View File

@ -1,4 +1,3 @@
// @flow // @flow
export * from './estimateTxGas' export * from './estimateTxGas'
export * from './saveTxViaService'

View File

@ -1,18 +0,0 @@
// @flow
import axios from 'axios'
import { getTxServiceUriFrom, getTxServiceHost } from '~/config/index'
export const saveTxViaService = (safeAddress: string, to: string, value: string, data, operation = 0) => {
const txServiceHost = getTxServiceHost()
const txServiceUri = getTxServiceUriFrom(safeAddress)
const url = `${txServiceHost}${txServiceUri}`
// const estimationValue = isTokenTransfer(tx.data) ? '0' : value.toString(10)
return axios.post(url, {
safe: safeAddress,
to,
data: '0x',
value,
operation,
})
}

View File

@ -3,3 +3,4 @@ export * from './gas'
export * from './send' export * from './send'
export * from './safeBlockchainOperations' export * from './safeBlockchainOperations'
export * from './safeTxSignerEIP712' export * from './safeTxSignerEIP712'
export * from './saveTxViaService'

View File

@ -5,6 +5,7 @@ import { EMPTY_DATA } from '~/logic/wallets/ethTransactions'
import { isEther } from '~/logic/tokens/utils/tokenHelpers' import { isEther } from '~/logic/tokens/utils/tokenHelpers'
import { type Token } from '~/logic/tokens/store/model/token' import { type Token } from '~/logic/tokens/store/model/token'
import { getGnosisSafeInstanceAt } from '~/logic/contracts/safeContracts' import { getGnosisSafeInstanceAt } from '~/logic/contracts/safeContracts'
import { saveTxViaService } from '~/logic/safe/transactions'
export const CALL = 0 export const CALL = 0
const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000' const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'
@ -38,6 +39,17 @@ export const executeTransaction = async (
sigs, sigs,
{ from: sender }, { from: sender },
) )
await saveTxViaService(
safeInstance.address,
to,
valueInWei,
data,
nonce,
0,
tx.tx, // tx hash,
sender,
)
console.log(tx.tx)
return tx return tx
} catch (error) { } catch (error) {

View File

@ -1,4 +1,5 @@
// @flow // @flow
import axios from 'axios'
import { getWeb3 } from '~/logic/wallets/getWeb3' import { getWeb3 } from '~/logic/wallets/getWeb3'
import { getTxServiceUriFrom, getTxServiceHost } from '~/config' import { getTxServiceUriFrom, getTxServiceHost } from '~/config'
import { getGnosisSafeInstanceAt } from '~/logic/contracts/safeContracts' import { getGnosisSafeInstanceAt } from '~/logic/contracts/safeContracts'
@ -49,7 +50,7 @@ const calculateBodyFrom = async (
}) })
} }
export const buildTxServiceUrlFrom = (safeAddress: string) => { export const buildTxServiceUrl = (safeAddress: string) => {
const host = getTxServiceHost() const host = getTxServiceHost()
const address = getWeb3().toChecksumAddress(safeAddress) const address = getWeb3().toChecksumAddress(safeAddress)
const base = getTxServiceUriFrom(address) const base = getTxServiceUriFrom(address)
@ -67,18 +68,10 @@ export const submitOperation = async (
sender: string, sender: string,
type: TxServiceType, type: TxServiceType,
) => { ) => {
const url = buildTxServiceUrlFrom(safeAddress) const url = buildTxServiceUrl(safeAddress)
const headers = {
Accept: 'application/json',
'Content-Type': 'application/json',
}
const body = await calculateBodyFrom(safeAddress, to, valueInWei, data, operation, nonce, txHash, sender, type) const body = await calculateBodyFrom(safeAddress, to, valueInWei, data, operation, nonce, txHash, sender, type)
const response = await fetch(url, { const response = await axios.post(url, { body })
method: 'POST',
headers,
body,
})
if (response.status !== 202) { if (response.status !== 202) {
return Promise.reject(new Error('Error submitting the transaction')) return Promise.reject(new Error('Error submitting the transaction'))