infrastructure-upgrade/lib/v3-periphery/test/shared/snapshotGasCost.ts
T-Hax 735546619e
init
Signed-off-by: T-Hax <>
2023-04-08 18:46:18 +00:00

28 lines
911 B
TypeScript

import { TransactionReceipt, TransactionResponse } from '@ethersproject/abstract-provider'
import { expect } from './expect'
import { Contract, BigNumber, ContractTransaction } from 'ethers'
export default async function snapshotGasCost(
x:
| TransactionResponse
| Promise<TransactionResponse>
| ContractTransaction
| Promise<ContractTransaction>
| TransactionReceipt
| Promise<BigNumber>
| BigNumber
| Contract
| Promise<Contract>
): Promise<void> {
const resolved = await x
if ('deployTransaction' in resolved) {
const receipt = await resolved.deployTransaction.wait()
expect(receipt.gasUsed.toNumber()).toMatchSnapshot()
} else if ('wait' in resolved) {
const waited = await resolved.wait()
expect(waited.gasUsed.toNumber()).toMatchSnapshot()
} else if (BigNumber.isBigNumber(resolved)) {
expect(resolved.toNumber()).toMatchSnapshot()
}
}