Skip to content

isabella232/token-vouching

 
 

Repository files navigation

OpenZeppelin SDK token vouching

This project was formerly known as ZeppelinOS vouching (zos-vouching). This documentation and the related npm package still use the old naming.

standard-readme compliant Build Status

Vouching logic for the EVM packages of the ZeppelinOS smart contract platform

ZeppelinOS is a platform to develop, deploy and operate smart contract projects on Ethereum and every other EVM and eWASM-powered blockchain.

This is the repository for the ZEP Token and the contracts to use it to vouch for EVM Packages.

Background

ZeppelinOS provides a mechanism in which an EVM package can be registered and vouched for using ZEP tokens. The tokens vouched for an EVM package can be challenged by other ZEP holders whenever a deficiency in the EVM package is presented for evaluation. In such a situation, the package's vouched tokens could be slashed in favor of the challenger.

The end goal is that this simple mechanism will allow ZEP that is vouched for an EVM package to represent:

  • A measure of the quality of the code of the EVM package.
  • A measure of the support that the EVM package has from the community.
  • A financial buffer for the development of new features in the EVM package.
  • A financial buffer for the auditing of the code of the EVM package.

Install

First, install Node.js and npm. Then, install the vouching contracts running:

npm install zos-vouching

Usage

Currently, the ZeppelinOS vouching mechanism can be used only by calling the Vouching.sol contract directly. The address of this deployed contract can be found in the zos.<network>.json files, that have just been installed to the node_modules/zos-vouching/ directory.

For example, open truffle console --network <network> and run:

truffle(<network>)> vouching = Vouching.at(<vouching-contract-address>)

Then create a dependency calling:

truffle(<network>)> vouching.create(name, owner, dependencyAddress, initialStake)

Where name is a string that will represent the dependency, owner is the address of the account that will own the dependency, dependencyAddress is the address of the EVM package and initialStake is the amount to be vouched.

After the dependency is created, the owner can vouch or unvouch tokens to the EVM package:

truffle(<network>)> vouching.vouch(name, amount)

or:

truffle(<network>)> vouching.unvouch(name, amount)

Security

If you find a security issue, please contact us at security@zeppelinos.org. We give rewards for reported issues, according to impact and severity.

Maintainers

Contribute

To contribute, join our community channel on Telegram where you can talk to all the ZeppelinOS developers, contributors, partners and users.

You can also follow the recent developments of the project in our blog and Twitter account.

License

MIT © Zeppelin

About

Vouching contracts and scripts for the OpenZeppelin SDK token

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 89.1%
  • Solidity 10.6%
  • Shell 0.3%