Giter VIP home page Giter VIP logo

aridder / pengekrukka Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 0.0 31.01 MB

"Pengekrukka," a concept developed during a hackathon by the Norwegian Central Bank, showcases an anonymous, blockchain-based currency transfer system between a welfare state and individuals.

Shell 0.59% JavaScript 11.81% TypeScript 66.43% CSS 0.04% Solidity 20.50% Mermaid 0.62%
cbdc evm solidity tornadocash verifiable-credentials zk

pengekrukka's People

Contributors

aridder avatar olaven avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

pengekrukka's Issues

Legekontor Jensen

Goal

Implement a website representing a doctors office. While this interaction is digital in our demo, it could be physical in a real world implementation. The original design file is available on figma.
Group 19

Todo

Welfare System

Goal

Implement an imagined government organization akin to NAV where the user can upload certificats from (for instance) their doctor in exchange for voucher-VCs from the government. Original design files are available in Figma
Group 20

Todo

Sync linting

Our editors do linting slightly differently. This creates needlessly hard to read diffs. I thnk we should do linting on commit to avoid this, e.g. using husky

GUI for Demo

Goal

A GUI that demonstrates our solution. It should show 1) relevant subsidies 2) login through wallet 3) relevant credentials for user

Todo

Write introduction to the project

When the project is nearing completion, I propose that we dedicate a large portion README.md to explain the project, and the use-case we attempt to show. This is useful for 1) us, preparing for a hackathon presentation, 2) anyone else checking out the project for the hackathon, and 3) others in the future, finding this project.

Test #56

We should have tests for the functionality added in #59.

Backend issuing VC's

Goal

Endpoints issuing VC's for our use-cases.
For instance, one endpoint for Eidsiva and one for Tibber (if we are working with the energy case)

I propose that each VC provider (energy company) should have it's own package/endpoint/implementation. The ide ais to make it completely clear that these are different (hypothetical) services. To avoid making it too time consuming, however, I think we should share common interfaces between them.

flowchart TB

    subgraph shared
    CI["Common Interface"]
    end
    subgraph endpoints
    CI-->Tibber 
    CI-->Fjordkraft
    CI-->Fortum
    end
    subgraph webapp
    user-- Avhengig av strømselskap som blir oppgitt e.l. -->Fortum
    Fortum -- Forbruk-VC --> user
    end

Todo

Mirror solution that Song 2022 uses

Song et al 2022 describes a system for identity verification using VCs and blockchain. Our solution to identity verification should probably be similar.

From my notes (Norwegian):

I deres system lagres ikke [[Verifiable Credential]] i [[plain-text]] paa [[blockchain]]; Kun en hash av [[Verifiable Credential]], [[Zero Knowledge Proofs]] og den digitale signaturen til ID-provider lagres der.

paper.

(thanks to @aridder for pointing me to this)

Hansens Brilleforetning

Goal

The goal is to implement a fictional optician's store where the user can use the government-issued voucher VC they got from #39. As with both #39 and #38, this interaction could be physical in a real world implementation of our solution. It's digital for demo purposes only.

Group 21

TODO

Manage packages with Yarn Workspaces

I think we should add a tool to manage the packages in a way that allows for 1: dependency sharing and 2: running commands from root level. I suggest Yarn Workspaces since 1: it's easy to add, 2: it's fairly low level and only adds a few things on top of yarn, 3: we already use yarn and 4: I've had good experiences with it working on https://github.com/olaven/paperpod :)

@tordjon @aridder if you want to add your thoughts below, feel free :) I can add whatever we agree on.

Wallet + Wallet GUI

Goal

Implement a wallet that stores verifiable credentials fo a use, and provides a super-simple GUI with VC-cards
See Figma for GUI sketch.

TODO

Show that a transaction occurred

Goal

After the user has gone through #38, #39 and #40, a transaction should have occurred (#55). We want to show this to our audience.

TODO

  • Figure out how we can show this
  • Implement whatever we figure out

Use VC Contracts

Goal

Use VC Contracts as contracts for verifying VC's and sending NOK funds.

Todo

  • Add TODOs like this and create issues out of them

Error signing in

Description

Failing to sign message when Metamask switches to Goerli.

Steps

  1. open app
  2. click "connect wallet"
  3. accept switching network in Metamask
  4. a window in the app says that I need to sign a message
  5. upon clicking "send message", metamask pops up with a dialogue to be confirmed
  6. sign through metamask
  7. app GUI says "Error verifying signature, please retry!"

share wallet card component with web UI

TODO

  • Accepts color
  • Accepts VC object
  • Accepts icons
  • Renders color
  • Renders expiration
  • Renders icons
  • Renders title
  • Proportions like a credit card
  • matching design in figma
  • component is used by different pages

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.