15.1.0 • Published 8 months ago

@ezkljs/verify v15.1.0

Weekly downloads
-
License
-
Repository
-
Last release
8 months ago

inbrowser-evm-verify

We would like the Solidity verifier to be canonical and usually all you ever need. For this, we need to be able to run that verifier in browser.

How to use (Node js)

import localEVMVerify from '@ezkljs/verify';

// Load in the proof file as a buffer
const proofFileBuffer = fs.readFileSync(`${path}/${example}/proof.pf`)

// Stringified EZKL evm verifier bytecode (this is just an example don't use in production)
const bytecode = '0x608060405234801561001057600080fd5b5060d38061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063cfae321714610046575b600080fd5b6100496100f1565b60405161005691906100f1565b60405180910390f35b'

const result = await localEVMVerify(proofFileBuffer, bytecode)

console.log('result', result)

Note: Run ezkl create-evm-verifier to get the Solidity verifier, with which you can retrieve the bytecode once compiled. We recommend compiling to the Shanghai hardfork target, else you will have to pass an additional parameter specifying the EVM version to the localEVMVerify function like so (for Paris hardfork):

import localEVMVerify, { hardfork } from '@ezkljs/verify';

const result = await localEVMVerify(proofFileBuffer, bytecode, hardfork['Paris'])

Note: You can also verify separated vk verifiers using the localEVMVerify function. Just pass the vk verifier bytecode as the third parameter like so:

import localEVMVerify from '@ezkljs/verify';

const result = await localEVMVerify(proofFileBuffer, verifierBytecode, VKBytecode)

How to use (Browser)

import localEVMVerify from '@ezkljs/verify';

// Load in the proof file as a buffer using the web apis (fetch, FileReader, etc)
// We use fetch in this example to load the proof file as a buffer
const proofFileBuffer = await fetch(`${path}/${example}/proof.pf`).then(res => res.arrayBuffer())

// Stringified EZKL evm verifier bytecode (this is just an example don't use in production)
const bytecode = '0x608060405234801561001057600080fd5b5060d38061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063cfae321714610046575b600080fd5b6100496100f1565b60405161005691906100f1565b60405180910390f35b'

const result = await browserEVMVerify(proofFileBuffer, bytecode)

console.log('result', result)

Output:

result: true
15.1.0

8 months ago

15.0.0

8 months ago

14.0.0

9 months ago

13.0.1

10 months ago

13.0.0

10 months ago

12.0.0

11 months ago

12.0.1

11 months ago

11.4.2

1 year ago

11.4.0

1 year ago

11.2.2

1 year ago

11.3.2

1 year ago

10.4.2

1 year ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago