-
Notifications
You must be signed in to change notification settings - Fork 5.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ERC: Ethereum Smart Contract Packaging Specification #190
Comments
What about ether.camp Studio IDE? |
They are welcome to implement this in their IDE as well. I believe that Tim Coulter has already started a generic JS library that should make integration in any JS based application a lot easier. |
Glad to see this coming into fruition, it will be a welcome improvement to our workflow. I'm not sure if it's outside the scope of this EIP, but have you considered extending the spec to somehow include a link to UI assets within a package? A simple link would allow the package to automatically show it's intended custom UI in a dapp browser - you could even have a config object with multiple build targets (for different dapp browsers like status.im, mist, spectrum, etc.) secured by their IPFS content hash. Maybe this is something for a different project that utilises epm. |
Outside of the spec for version 1. Welcome for discussion for version 2. |
Though i personally would feel thats outside of the standard scope and would best be implemented by the package manager. We were very careful to narrow the scope down to making it so contracts could interact and make it registry agnostic. |
As @VoR0220 said, out of scope for this version but this specification is one which we plan to continue to develop so worth discussing for the next version. I'd encourage you to open an issue in the ethpm/epm-spec](https://github.com/ethpm/epm-spec) repository with this idea. It would be helpful if you put some thought into the various use cases for this as well. |
I'm a bit unfamiliar with the ERC/EIP process. Wondering if someone can answer the following questions.
|
|
@VoR0220 @pipermerriam We are updating the EIP/ERC process and will have news on Monday :) |
@Souptacular thanks for the info. I'll keep an eye out. Appreciate you guys taking the time to improve this. |
PR opened (correct me if that was the wrong thing to do) #203 |
Dapple has also integrated support, you can deploy to ethpm with |
This comment has been minimized.
This comment has been minimized.
@pipermerriam this EIP doesn't have a copyright statement. Can you please add one? EIP-1 suggests CC0 - see the |
Package management with EthPM & NPM, using the ERC190 standard. |
There has been no activity on this issue for two months. It will be closed in a week if no further activity occurs. If you would like to move this EIP forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review. |
@pipermerriam just want to make sure you saw ☝️ |
This seems already FINAL, see https://eips.ethereum.org/EIPS/eip-190 |
Abstract
This ERC proposes a specification for Ethereum smart contract packages.
The specification was collaboratively developed by the following Ethereum development framework maintainers.
Motivation
Packaging is a core piece of modern software development which is missing from the Ethereum ecosystem. The lack of packaging limits the ability for developers to reuse code which negatively affects productivity and security.
A key example of this is the ERC20 standard. There are a few well audited reusable token contracts available but most developers end up writing their own because of the difficulty in finding and reusing existing code.
A packaging standard should have the following positive effects on the ecosystem:
Smart contract packaging should also have a direct positive effect on the end user. Wallet software will be able to consume a released package and generate an interface for interacting with any deployed contracts included within that package. With the advent of ENS all of the pieces will be in place for a wallet to take a human readable name and present the user with an interface for interacting with the underlying application.
Specification
The full specification for this standard is maintained separately in the repository epm/epm-spec.
This EIP refers to the
1.0.0
version of the specification: https://github.com/ethpm/epm-spec/tree/v1.0.0The specification contains details for a single document referred to as a "Release Lockfile".
Rationale
Use Cases
This specification covers the following types of smart contract packages.
owned
pattern.Full explanations and examples of these use cases can be found in the
README.md
from theepm/epm-spec
repository.Package Managers
The Release Lockfile is intended for consumption by package management software. Specific care was made to ensure that all of the following functionality can be implemented by package managers.
Deterministic builds
Ensures that a package will always resolve to the same set of dependencies and source files. Both source files and dependencies are content addressed to ensure that the referenced resources cannot change.
Bytecode verification
Contains the appropriate information for a package manager to inspect a deployed contract and verify that it's bytecode matches the bytecode that results from compilation and linking of the package source code.
Multi-chain deploys
Supports deployments across multiple chains, allowing a package to define addresses on both the public mainnet and testnet.
Trusted packages
Allows for packages which exclude source code or other elements which would be needed for verification of the contract bytecode. This allows for minimalistic packages to be created for special situations where the package manager will not be performing verification.
Implementation
Implementations are currently underway for the following frameworks.
Implementation has not yet begun in the following frameworks but is on the roadmap.
The text was updated successfully, but these errors were encountered: