Skip to content

bitcheck/contracts_zk_eth

Repository files navigation

编译circuits

yarn build:circuit

编辑/circuits/withdraw.circom的最后一行:

component main = Withdraw(14);

可以调整Merkle树的层数。层数越高,GAS费越高

编译完成后,在/build/目录下,会产生circuits目录,将此目录完整的复制到shaker前端的/public目录下。

另外,将circuits目录下的withdraw.json文件复制到前端/src/circuits/目录下。

部署合约

合约源文件:/contracts目录下。

部署时,用的账户是.env文件中的私钥对应账户。

部署合约前,需要设置.env文件中的ERC20_TOKEN,即USDT合约地址。并确保MERKLE_TREE_HEIGHT默克尔树的高度和编译circuit时的一致。

根据不同的以太坊网络,采用不同的合约部署命令:

yarn migrate:dev //本地开发网络
yarn migrate:kovan
yarn migrate:rinkeby
yarn migrate:mainnet

如果全新部署,在上面命令行后加--reset。如果部署过程中出现错误,则把--reset去掉,再次执行。

部署完成后,将ERC20Shaker合约地址复制到shaker前端/client/config.js 中的ERC20ShakerAddress 中;将ETHShaker合约地址复制到config.jsETHShakerAddress中。

另外,将合约ABI文件ERC20Shaker.jsonETHShaker.json复制到shaker前端的/src/contracts目录中。

还要将合约ABI文件中内容,复制到RelayermixerABI.json中。

测试合约命令

Deposit

./cli.js test

Withdraw

./cli.js withdraw shaker-usdt-5-2000-0x8338941878995cc0c5df9aaa1e4d5307c2d41a678aade05dce3ad8b3858dacea19e4ecbb3fb24b9ae3bc62ad831ac034350108321fe5c2e809471c8803d9 0xC804C9bFAe7Da9C4C409120773d0B4107cfACBBF 1 --rpc https://kovan.infura.io/v3/0279e3bdf3ee49d0b547c643c2ef78ef

查询存单

./cli.js compliance shaker-usdt-5-2000-0x4aa1a3848578f716c6dce7e358e6bcdfbcb8e3e3ec1944ba8d45083d77e7f014acb4618ab51e7cbf19bec092abe87153e45209a2a01e76e63af797adfd70

About

smart contract of bitcheck with zksnarks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages