Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/delegatable/delegatable-sol

Counterfactual revocable-delegation
https://github.com/delegatable/delegatable-sol

Last synced: 2 months ago
JSON representation

Counterfactual revocable-delegation

Awesome Lists containing this project

README

        

![banner](https://cloudflare-ipfs.com/ipfs/QmSWGEWUCThfBW127zPeF7oqwLwzVndB5mWDbgKCPnwCvE)

# Delegatable

![Test](https://github.com/kamescg/delegatable-sol/actions/workflows/test.yml/badge.svg)
![Coverage](https://github.com/kamescg/delegatable-sol/actions/workflows/coverage.yml/badge.svg)
![TS](https://badgen.net/badge/-/TypeScript?icon=typescript&label&labelColor=blue&color=555555)
[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](http://perso.crans.org/besson/LICENSE.html)

Solidity framework for extending any contract with counterfactual revocable-delegation

## Getting Started

- [Main docs site](https://delegatable.org)
- [A high level summary of the goals of the Delegatable framework](https://mirror.xyz/0x55e2780588aa5000F464f700D2676fD0a22Ee160/pTIrlopsSUvWAbnq1qJDNKU1pGNLP8VEn1H8DSVcvXM).
- [A series of conversations about the framework on YouTube](https://www.youtube.com/watch?v=Sh1-epThZV0&list=PLJP4kXm9a01qRJaNzCU47gOzkn1eNAlFO).
- [A reference app called MobyMask](https://github.com/delegatable/MobyMask).
- [A JS library for creating & redeeming delegations](https://www.npmjs.com/package/eth-delegatable-utils).

There are three general ways to integrate Delegatable into a Solidity project
- Inherit from the [Delegatable.sol](./contracts/Delegatable.sol) contract. (Most gas up front, cheapest per tx).
- Use our [trusted relay](./docs/relay.md) to allow your contract to accept delegated messages from a global relay contract.
- If your contract uses the ERC-2535 Diamond standard, you can add [A Delegatable Facet for Diamonds](./contracts/diamond/README.md)

## Deployment

These contracts can be deployed to a network by running:
`yarn deploy `

Some of them [have been deployed already and can be reused](./deployments.md).

## Verification

These contracts can be verified on Etherscan.
`yarn verify`

## Testing

Run the unit tests locally with:
`yarn test`

## Coverage

Generate the test coverage report with:
`yarn coverage`

## Documentation

Add inline docs in the [natspec](https://docs.soliditylang.org/en/v0.8.15/natspec-format.html) format. The command `yarn docs` and `yarn docs:html` will generate the markdown and minimal html site which can be easily published.