# @censo/eth-contracts

> Censo ethereum contracts

Latest version **0.1.8** (published 2023-07-10) · GPL-3.0-only license · 0 weekly downloads

## Install

```sh
npm install @censo/eth-contracts
pnpm add @censo/eth-contracts
yarn add @censo/eth-contracts
bun add @censo/eth-contracts
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.8 |
| Published | 2023-07-10 |
| First published | 2023-01-04 |
| Weekly downloads | 0 |
| License | GPL-3.0-only |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 4.8 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | strike-developers |

## Links

- npm: https://www.npmjs.com/package/@censo/eth-contracts
- npm.io page: https://npm.io/package/@censo/eth-contracts

## Recent versions

- 0.1.8 (latest) — 2023-07-10
- 0.1.7 — 2023-07-07
- 0.1.6 — 2023-05-22
- 0.1.5 — 2023-05-02
- 0.1.4 — 2023-03-31
- 0.1.3 — 2023-03-27
- 0.1.2 — 2023-01-16
- 0.1.1 — 2023-01-04
- 0.1.0 — 2023-01-04

## README

Censo Ethereum Contracts
========================

Usage
-----
### Install requirements with yarn:

```bash
yarn
```

### Build:

```bash
yarn build
```

### Deployments

```bash
yarn hardhat deploy
```

Documentation
-------------

The contracts here are part of Censo's implementation of Gnosis' [Safe](http://docs.gnosis.io/safe).

Censo uses a two-level structure with "vaults" that control the configuration of one or more individual
"wallets", each of which have their own policy for controlling transfers and dapp transactions. In this
model, both vaults and wallets are implemented as Safes; the owners of the vault Safe control both its
configuration as well as the configuration of that vault's wallets.

This is implemented by configuring the wallets with a guard which prohibits any transactions that might
alter the state of the wallet Safe (thus preventing the owners of the wallet from configuring it) and by
enabling the vault Safe as a module on the wallet Safe, which allows the owners of the vault to configure
the wallets. 

Censo has also implemented additional features on wallets: whitelisting, the ability to have a wallet
which can do basic transfers (including ERC-20, ERC-721 and ERC-1155 transfers) but not general dapp
transactions, and the ability to associate a name hash with the wallet.

- contracts/CensoFallbackHandler.sol - fallback handler implementing whitelisting and name hash functions
- contracts/CensoGuard.sol - default guard for a wallet with whitelisting off and dapp transactions allowed
- contracts/CensoWhitelistingGuard.sol - guard with whitelisting on and dapp transactions allowed
- contracts/CensoTransfersOnlyGuard.sol - guard with whitelisting off and dapp transactions not allowed
- contracts/CensoTransfersOnlyWhitelistingGuard.sol - guard with whitelisting on but no dapp transactions
- contracts/CensoRecoveryGuard.sol - guard for a recovery contract which is *only* allowed to call execTransactionFromModule(swapOwners())

Audits / Formal Verification
----------------------------

* [Ackee Blockchain, Censo: ETH wallet, 19.5.2023](abch-censo-eth-report.pdf)

Security and Liability
----------------------
All contracts are WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

License
-------
All smart contracts are released under GPL-3.0

---
_Source: https://npm.io/package/@censo/eth-contracts · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
