Socket
Socket
Sign inDemoInstall

@gooddollar/goodprotocol

Package Overview
Dependencies
Maintainers
3
Versions
178
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@gooddollar/goodprotocol

GoodDollar Protocol


Version published
Weekly downloads
817
increased by78.38%
Maintainers
3
Weekly downloads
 
Created
Source

GoodProtocol

Actions Status Coverage Status npm version

Versions 2+ of GoodDollar smart contracts

Submit bug bounties via Hats.Finance

SuperGoodDollar

SuperGoodDollar is an implementation of the GoodDollar token which adds functionality implemented by the Superfluid protocol, making it a Super Token.

SuperGoodDollar is implemented as a Pure Super Token - it has no underlying ERC20.
This is possible because Super Tokens are themselves ERC20 tokens.

The SuperGoodDollar contract is composed like this: GoodDollarProxy is a minimal base contract. It's responsible for state storage and for dispatching calls to the appropriate logic contract via delegatecall. Its initialize method connects the proxy to 2 logic contracts:

  1. the canonical SuperToken logic of the Superfluid framework
  2. the logic specific for the GoodDollar token (GoodDollarCustom) The proxy's initialize then invokes the initializer methods of both connected logic contracts. The contract GoodDollarCustom overrides some of the method already implemented by the SuperToken contract. Such overriding across different logic contracts can be done by making external calls to the base implementation. For convenience, this is handled by the base contract SuperTokenBase which wraps SuperToken methods to be overrided.

Dual upgradeability of the 2 connected logic contracts is achieved this way:

  1. upgrades of the SuperToken logic are handled by Superfluid governance, as is the case for other SuperTokens
  2. upgrades of the GoodDollar logic is handled by the configured owner(s). The interface is the same (UUPSProxy), but with changed method names in order to avoid naming clashes. See example test case.

The tests in SuperGoodDollar.ts aren't comprehensive (not ready for production), but sufficient to prove that the mechanism with 2 logic contracts works.

Keywords

FAQs

Package last updated on 06 Nov 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