1.0.0 • Published 1 year ago
nacho-proof-generator
The zero knowledge proof generator of Nacho using o1js.
nacho-proof-generator
package is intended to be used for Nacho only as it is a naive implementation.
📦 Installation
If you are using npm
:
npm install nacho-proof-generator
If you are using yarn
:
yarn add nacho-proof-generator
If you are using pnpm
:
pnpm add nacho-proof-generator
🔍 Details
Nacho's zero knowledge proof generator is created using o1js's ZkProgram
.
This package also provides a function to create a state utility for tests.
🔐 Zero Knowledge Proof
🏗️ Zero Knowledge Proof Generator
createGenesis(stateRoots)
:
Generates the initial proof.
mergeProofs(stateRoots, currentProof, laterProof)
:
Generates a proof by merging given proofs.
depositTokens(stateRoots, earlierProof, singleBalanceWitness,currentDepositsMerkleListHash, expectedDepositsMerkleListHash,userAddress, tokenId, userDepositTokenAmount, userBalanceTokenAmount
:
Generates a proof by depositing a specific token for a user.
makeBurnTokens(stateRoots,earlierProof, singleBalanceWitness,singleBurnWitness, userAddress, tokenId, userBurnTokenAmount,userBalanceTokenAmount, amountToBurn, userSignature)
:
Generates a proof by burning token on a user's behalf.
makeCreatePool(stateRoots, earlierProof, singlePoolWitness, singleLiquidityWitness, doubleBalanceWitness, baseTokenId, quoteTokenId, userAddress, userLiquidityBaseTokenAmount, userLiquidityQuoteTokenAmount, userBalanceBaseTokenAmount, userBalanceQuoteTokenAmount, userSignature)
:
Generates a proof by creating an AMM pool on a user's behalf.
makeProvideLiquidity(stateRoots, earlierProof, singlePoolWitness, singleLiquidityWitness, doubleBalanceWitness, baseTokenId, quoteTokenId, userAddress, userLiquidityPoints, userBalanceBaseTokenAmount, userBalanceQuoteTokenAmount, poolBaseTokenAmount, poolQuoteTokenAmount, poolTotalLiquidityPoints, userBaseTokenAmountToProvide, userQuoteTokenAmountLimitToProvide, userSignature)
:
Generates a proof by providing liquidity to an AMM pool on a user's behalf.
makeRemoveLiquidity(stateRoots, earlierProof, singlePoolWitness, singleLiquidityWitness, doubleBalanceWitness, baseTokenId, quoteTokenId, userAddress, userLiquidityPoints, userBalanceBaseTokenAmount, userBalanceQuoteTokenAmount, poolBaseTokenAmount, poolQuoteTokenAmount, poolTotalLiquidityPoints, userLiquidityPointsToRemove, userBaseTokenAmountLimitToRemove, userQuoteTokenAmountLimitToRemove, userSignature)
:
Generates a proof by removing liquidity from an AMM pool on a user's behalf.
makeBuyTokens(stateRoots,earlierProof,singlePoolWitness,doubleBalanceWitness,userAddress,baseTokenId,quoteTokenId,userBalanceBaseTokenAmount,userBalanceQuoteTokenAmount,poolBaseTokenAmount,poolQuoteTokenAmount,poolTotalLiquidityPoints,userBaseTokenAmountToSwap,userQuoteTokenAmountLimitToSwap,userSignature)
:
Generates a proof by buying a token on a user's behalf.
makeSellTokens(stateRoots, earlierProof, singlePoolWitness, doubleBalanceWitness, userAddress, baseTokenId, quoteTokenId, userBalanceBaseTokenAmount, userBalanceQuoteTokenAmount, poolBaseTokenAmount, poolQuoteTokenAmount, poolTotalLiquidityPoints, userBaseTokenAmountLimitToSwap, userQuoteTokenAmountToSwap, userSignature)
:
Generates a proof by selling a token on a user's behalf.
🛠️ State Utility
📝 License
This project is licensed under the MIT License.
You may use the source code of this project accordingly.
👤 About Me
I am Berzan and I am developing Nacho to express my skills in the real world.
I built this library to use inside Nacho.