Skip to content

citizenwallet/cw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

citizen wallet logo
Citizen Wallet

Receive and send citizen coins to pay at participating events.

Move your leftovers coins to your Citizen Wallet on your smartphone.

Read more.

cw

Intro

The repo's purpose is to provide gas station functionality and event listening on a given chain for the Citizen Wallet app. It should be able to integrate with any EVM compatible chain.

Each individual program should be stateless and be able to be scaled up/down to multiple instances.

Roadmap

⚪️ pending ⏳ in progress ✅ done

✅ Setup

  • project structure
  • main functions for programs
  • router
  • health check (middleware)
  • signature (middleware)
  • services
  • modules
  • env

✅ Gas Station (ERC-4337) v1

  • Re-sign user transactions and take fees from master wallet
  • Gateway (EntryPoint)
  • Paymaster [onlyEntryPoint]
  • Account Factory [onlyEntryPoint]
  • Gratitude Token Factory [onlyEntryPoint]
  • Profile Factory [onlyEntryPoint]
  • Account [onlyOwnerOrEntryPoint]
  • Gratitude [onlyOwnerOrEntryPoint]
  • Profile [onlyOwnerOrEntryPoint]

⚪️ Gas Station (ERC-4337) v1.1

  • Notification Subscriber Factory [onlyEntryPoint]
  • Notification Subscriber [onlyOwnerOrEntryPoint]

⚪️ Event Listener v1

  • New block with relevant transactions [event]
  • Notify all tokens of an associated address [onEvent]

Installation

go get ./...

Set up environment

cp .example.env .env

Replace values in .env for your setup

Run Gas Station

go run cmd/station/main.go -url endpoint

Run Blockchain Event Handler

go run cmd/events/main.go -url endpoint

Spin up a TestChain

docker run --publish 8545:8545 trufflesuite/ganache:latest --account "0x429321276245f7d39855c8040f498af9392cafed95e1e4f50d158b2b39faa9cc,100000000000000000000000" --account "0xe1b5da7d6c2009c09dcb30781ec1dc4e9f73598a26b57e742d706102b69a1716,100000000000000000000000" --account "0x45c532f2bcb9a21f1a25b1d739bd9d3d65209e86836f370897c94e2e571ec18d,100000000000000000000000" --chain.chainId 1682515751360 --chain.networkId 1682515751360 --unlock "0x0b772F674eD6fB67C5647Be0fbBd2FBe95156D60" --unlock "0xBa711ff057dfAC08E4568Bb972EeC2313454f55A" --unlock "0x664ce0F7785E4bA5Ff422C77314eF982F193BeF5"
b6f582e89807d1a6529d7d724bd5d3e1188b46904fa8bffcaf4102edcb27687b

Additional links

Repo style guide inspiration

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages