26 lines
617 B
Nim
26 lines
617 B
Nim
|
import std/json
|
||
|
import std/strutils
|
||
|
import pkg/asynctest
|
||
|
import pkg/ethers
|
||
|
|
||
|
proc revertReason*(e: ref ValueError): string =
|
||
|
try:
|
||
|
let json = parseJson(e.msg)
|
||
|
var msg = json{"message"}.getStr
|
||
|
const revertPrefix =
|
||
|
"Error: VM Exception while processing transaction: reverted with " &
|
||
|
"reason string "
|
||
|
msg = msg.replace(revertPrefix)
|
||
|
msg = msg.replace("\'", "")
|
||
|
return msg
|
||
|
except JsonParsingError:
|
||
|
return ""
|
||
|
|
||
|
|
||
|
template revertsWith*(reason, body) =
|
||
|
var revertReason = ""
|
||
|
try:
|
||
|
body
|
||
|
except ValueError as e:
|
||
|
revertReason = e.revertReason
|
||
|
check revertReason == reason
|