Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@energyweb/contracts

Package Overview
Dependencies
Maintainers
8
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@energyweb/contracts

Onchain module of the worker-contract core SDK of Energyweb Foundation.

  • 2.0.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
8
Created
Source

Green Proof blockchain contracts

Description


The present package is the onchain module of the Greenproof core SDK of Energyweb Foundation.

Architecture


The on-chain component of the greenProof core module is an upgradable proxied module, implementing the EIP-2535 standard, which is a standard recommended in the upgrades section of the EIP-1155 token standard documentation.

This upgradable pattern is called a Diamond standard architecture, where all smart contracts are organized as different facets of one single diamond. It ultimately allows users to trigger any on-chain function of any Greenroof component using one single and stable contract address.

As mentioned in the Ethereum documentation :

The diamond pattern can be considered an improvement on the proxy pattern. Diamond patterns differ from proxy patterns because the diamond proxy contract can delegates function calls to more than one logic contract.

The diamond upgrade pattern has some advantages over traditional proxy upgrade patterns:

  • It allows you to upgrade a small part of the contract without changing all of the code. Using the proxy pattern for upgrades requires creating an entirely new logic contract, even for minor upgrades.

  • All smart contracts (including logic contracts used in proxy patterns) have a 24KB size limit, which can be a limitation—especially for complex contracts requiring more functions. The diamond pattern makes it easy to solve this problem by splitting functions across multiple logic contracts.

  • Proxy patterns adopt a catch-all approach to access controls. An entity with access to upgrade functions can change the entire contract. But the diamond pattern enables a modular permissions approach, where you can restrict entities to upgrading certain functions within a smart contract.

Each smartcontract component provided in contracts/facets directory is then a facet of this greenproof Diamond.

  • Voting component : the voting logic is implemented in the VotingFacet.sol contract

  • NFT Issuer component : the issuance component is encapsulated inside the IssuerFacet.sol contract

Additional utility facets are provided by the Solidstate diamond implementation, which help conforming to the EIP-2535 standard specification


Quickstart


  • Install dependencies:
npm install

Running tests

  • end-to-end tests
npm run test:e2e

This command will run unit tests for the whole greenproof-contracts components. You can target one specific component to test inside the greenproof core module :

  • issuerFacet.spec.js handles unit tests for the Issuance component.
npm run issuer:test
  • test/voting handles unit tests for the Voting component
npm run voting:test
npm run greenproof:test

To run coverage test :

npm run coverage:test

Questions and Support

For questions and support please use Energy Web's Discord channel

Or reach out to us via email: 247enquiries@energyweb.org

EW-DOS

The Energy Web Decentralized Operating System is a blockchain-based, multi-layer digital infrastructure.

The purpose of EW-DOS is to develop and deploy an open and decentralized digital operating system for the energy sector in support of a low-carbon, customer-centric energy future.

We develop blockchain technology, full-stack applications and middleware packages that facilitate participation of Distributed Energy Resources on the grid and create open market places for transparent and efficient renewable energy trading.

  • To learn about more about the EW-DOS tech stack, see our documentation.

  • For an overview of the energy-sector challenges our use cases address, go here.

For a deep-dive into the motivation and methodology behind our technical solutions, we encourage you to read our White Papers:

Connect with Energy Web

FAQs

Package last updated on 29 Mar 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc