Safe Tx History POST helper function
This commit is contained in:
parent
3f51574497
commit
97d7118984
|
@ -0,0 +1,69 @@
|
|||
// @flow
|
||||
import { getWeb3 } from '~/wallets/getWeb3'
|
||||
import { getGnosisSafeContract } from '~/wallets/safeContracts'
|
||||
|
||||
type Type = 'confirmation' | 'execution'
|
||||
type Operation = 0 | 1 | 2
|
||||
|
||||
const calculateBodyFrom = async (
|
||||
safeAddress: string,
|
||||
to: string,
|
||||
value: number,
|
||||
data: string,
|
||||
operation: Operation,
|
||||
nonce: number,
|
||||
transactionHash: string,
|
||||
sender: string,
|
||||
type: Type,
|
||||
) => {
|
||||
const web3 = getWeb3()
|
||||
const valueInWei = value > 0 ? web3.toWei(value, 'ether') : value
|
||||
const GnosisSafe = await getGnosisSafeContract(web3)
|
||||
const gnosisSafe = GnosisSafe.at(safeAddress)
|
||||
const contractTransactionHash = await gnosisSafe.getTransactionHash(safeAddress, valueInWei, data, operation, nonce)
|
||||
|
||||
return JSON.stringify({
|
||||
to,
|
||||
value,
|
||||
data,
|
||||
operation,
|
||||
nonce,
|
||||
contractTransactionHash,
|
||||
transactionHash,
|
||||
sender,
|
||||
type,
|
||||
})
|
||||
}
|
||||
|
||||
export const submitOperation = async (
|
||||
safeAddress: string,
|
||||
to: string,
|
||||
value: number,
|
||||
data: string,
|
||||
operation: Operation,
|
||||
nonce: number,
|
||||
txHash: string,
|
||||
sender: string,
|
||||
type: Type,
|
||||
) => {
|
||||
const base = `safes/${safeAddress}/transaction/`
|
||||
const url = `https://safe-transaction-history.dev.gnosisdev.com/${base}`
|
||||
const headers = {
|
||||
Accept: 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
}
|
||||
|
||||
const body = await calculateBodyFrom(safeAddress, to, value, data, operation, nonce, txHash, sender, type)
|
||||
|
||||
const response = await fetch(url, {
|
||||
method: 'POST',
|
||||
headers,
|
||||
body,
|
||||
})
|
||||
|
||||
if (response.status !== 201) {
|
||||
return Promise.reject(new Error('Error submitting the transaction'))
|
||||
}
|
||||
|
||||
return Promise.resolve()
|
||||
}
|
Loading…
Reference in New Issue