41 lines
897 B
JavaScript
Raw Normal View History

2024-01-10 15:12:18 +01:00
const fs = require("fs")
2024-01-15 16:25:30 +01:00
const ethers = require("ethers")
2024-01-18 09:54:21 +01:00
const { arrayify, concat } = ethers.utils
const { BigNumber } = ethers
2024-01-05 12:27:53 +01:00
2024-01-18 09:54:21 +01:00
const BASE_PATH = __dirname + "/../verifier/networks"
const PROOF_FILE_NAME = "example-proof/proof.json"
function decimalToBytes(decimal) {
return arrayify(BigNumber.from(decimal).toHexString())
}
function G1ToBytes(point) {
return concat([
decimalToBytes(point[0]),
decimalToBytes(point[1])
])
}
function G2ToBytes(point) {
return concat([
decimalToBytes(point[0][1]),
decimalToBytes(point[0][0]),
decimalToBytes(point[1][1]),
decimalToBytes(point[1][0])
])
}
2024-01-05 12:27:53 +01:00
2024-01-10 15:12:18 +01:00
function loadProof(name) {
const proof = JSON.parse(
fs.readFileSync(`${BASE_PATH}/${name}/${PROOF_FILE_NAME}`)
)
2024-01-18 09:54:21 +01:00
return concat([
G1ToBytes(proof['pi_a']),
G2ToBytes(proof['pi_b']),
G1ToBytes(proof['pi_c'])
])
2024-01-05 12:27:53 +01:00
}
module.exports = { loadProof }