@dfdao/snarks
v6.7.31
Published
This package contains `.wasm` compiled SNARK circuits and `.zkey` proving/verifier keys for the Dark Forest SNARKs. It also contains typescript types for inputs and outputs to the SnarkJS functions we use to calculate Dark Forest SNARK proofs, as well as
Downloads
7
Readme
@dfdao/snarks
This package contains .wasm
compiled SNARK circuits and .zkey
proving/verifier keys for the Dark Forest SNARKs. It also contains typescript
types for inputs and outputs to the SnarkJS functions we use to calculate
Dark Forest SNARK proofs, as well as conversion methods that convert between
SnarkJS outputs and Dark Forest contract call args.
Installation
You can install this package using npm
or
yarn
by running:
npm install --save @dfdao/snarks
yarn add @dfdao/snarks
When using this in a plugin, you might want to load it with skypack
import * as snarks from 'http://cdn.skypack.dev/@dfdao/snarks';
Table of contents
Interfaces
- BiomebaseSnarkInput
- InitSnarkInput
- MoveSnarkInput
- RevealSnarkInput
- SnarkJSProof
- SnarkJSProofAndSignals
- WhitelistSnarkInput
Type aliases
- BiomebaseSnarkContractCallArgs
- ContractCallArgs
- InitSnarkContractCallArgs
- MoveSnarkContractCallArgs
- RevealSnarkContractCallArgs
- WhitelistSnarkContractCallArgs
Functions
Interfaces
BiomebaseSnarkInput
• BiomebaseSnarkInput: Interface BiomebaseSnarkInput
Shape of a javascript object that must be passed into snarkJS fullProve
proof generation function for biomebase
circuit
InitSnarkInput
• InitSnarkInput: Interface InitSnarkInput
Shape of a javascript object that must be passed into snarkJS fullProve
proof generation function for init
circuit
MoveSnarkInput
• MoveSnarkInput: Interface MoveSnarkInput
Shape of a javascript object that must be passed into snarkJS fullProve
proof generation function for move
circuit
RevealSnarkInput
• RevealSnarkInput: Interface RevealSnarkInput
Shape of a javascript object that must be passed into snarkJS fullProve
proof generation function for reveal
circuit
SnarkJSProof
• SnarkJSProof: Interface SnarkJSProof
A zkSNARK proof (without signals) generated by snarkJS fullProve
SnarkJSProofAndSignals
• SnarkJSProofAndSignals: Interface SnarkJSProofAndSignals
A zkSNARK proof and corresponding public signals generated by snarkJS
fullProve
WhitelistSnarkInput
• WhitelistSnarkInput: Interface WhitelistSnarkInput
Shape of a javascript object that must be passed into snarkJS fullProve
proof generation function for whitelist
circuit
Type aliases
BiomebaseSnarkContractCallArgs
Ƭ BiomebaseSnarkContractCallArgs: [[string, string], [[string, string], [string, string]], [string, string], [string, string, string, string, string, string, string]]
Shape of the args for findArtifact
DarkForest contract call.
ContractCallArgs
Ƭ ContractCallArgs: RevealSnarkContractCallArgs | InitSnarkContractCallArgs | MoveSnarkContractCallArgs | BiomebaseSnarkContractCallArgs | WhitelistSnarkContractCallArgs
Type representing the shape of args that are passed into DarkForest functions that require zkSNARK verification.
InitSnarkContractCallArgs
Ƭ InitSnarkContractCallArgs: [[string, string], [[string, string], [string, string]], [string, string], [string, string, string, string, string, string, string, string]]
Shape of the args for the initializePlayer
DarkForest contract call
MoveSnarkContractCallArgs
Ƭ MoveSnarkContractCallArgs: [[string, string], [[string, string], [string, string]], [string, string], [string, string, string, string, string, string, string, string, string, string]]
(Almost) shape of the args for move
DarkForest contract call.
The fourth array element additionally needs shipsMoved, silverMoved, and
artifactIdMoved before it can be passed as args to move
, but those values
are not part of the zkSNARK.
RevealSnarkContractCallArgs
Ƭ RevealSnarkContractCallArgs: [[string, string], [[string, string], [string, string]], [string, string], [string, string, string, string, string, string, string, string, string]]
Shape of the args for revealLocation
DarkForest contract call
WhitelistSnarkContractCallArgs
Ƭ WhitelistSnarkContractCallArgs: [[string, string], [[string, string], [string, string]], [string, string], [string, string]]
Shape of the args for whitelistRegister
DarkForest contract call.
Functions
buildContractCallArgs
▸ buildContractCallArgs(snarkProof
, publicSignals
): ContractCallArgs
Method for converting the output of snarkJS fullProve
into args that can be
passed into DarkForest smart contract functions which perform zk proof
verification.
Parameters
| Name | Type | Description |
| :-------------- | :----------- | :-------------------------------------------------------------------------- |
| snarkProof
| SnarkJSProof | the SNARK proof |
| publicSignals
| string[] | the circuit's public signals (i.e. output signals and public input signals) |
Returns
ContractCallArgs