Skip to content

porco-rosso-j/zksync-account-webauthn

Repository files navigation

Overview

This is the submission for Scaling Ethereum hackathon held by ETHGlobal.
see: https://ethglobal.com/showcase/bye-bye-private-key-wm3aa

caveat

This implementation currently doesn't work as zkSync Era limits the max transaction gas limit to 300,000. Plus, the network introduces many changes in dependencies that might cause lots of dep errors. check: https://era.zksync.io/docs/dev/troubleshooting/changelog.html

Contracts

contract Description
Account.sol zkSync Account Abstraction Wallet
AccountFactory.sol Deployer of Account.sol
WebAuthn.sol handles values given by webauthn and produce message for validation in EllipticCurve
EllipticCurve.sol verify message and signature with publickey. ECDSA256 & p256 curve
Paymaster.sol sponsor for accounts' meta-transaction

Development

setup

git clone git@github.com:porco-rosso-j/zksync-account-webauthn.git
cd zksync-account-webauthn
yarn

Run zksync local network

docker should be run first.

git clone https://github.com/matter-labs/local-setup.git
cd local-setup
./start.sh

Deployment

create .env file and add the line NODE_ENV="test".

then run:

yarn hardhat compile
yarn hardhat deploy-zksync --script deploy/deploy.ts

Preparetion for frontend

copy&paste deployed address to frontend/src/scripts/utils/address/ts

webauthn: "0x4B5DF730c2e6b28E17013A1485E5d9",
factory: "0x996462e0eAf00bF6BF0Ea15F29d715C0eD3906F1",
paymaster: "0x1A2894885076934dAf5a398Ff216c6d665707bbA",

run frontend

cd frontend
yarn
yarn start

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published