
Security News
PodRocket Podcast: Inside the Recent npm Supply Chain Attacks
Socket CEO Feross Aboukhadijeh discusses the recent npm supply chain attacks on PodRocket, covering novel attack vectors and how developers can protect themselves.
@ericglau/wizard-test
Advanced tools
Interactively build a contract out of components from OpenZeppelin Contracts. Provide parameters and desired features for the kind of contract that you want, and the Wizard will generate all of the code necessary. The resulting code is ready to be compiled and deployed, or it can serve as a starting point and customized further with application specific logic.
This package provides a programmatic API. For a web interface, see https://wizard.openzeppelin.com
npm install @openzeppelin/wizard
The following contract types are supported:
erc20
erc721
erc1155
stablecoin
realWorldAsset
account
governor
custom
Note that stablecoin
, realWorldAsset
, and account
are experimental and may be subject to change.
Each contract type has functions/constants as defined below.
print
function print(opts?: ERC20Options): string
function print(opts?: ERC721Options): string
function print(opts?: ERC1155Options): string
function print(opts?: StablecoinOptions): string
function print(opts?: AccountOptions): string
function print(opts?: GovernorOptions): string
function print(opts?: CustomOptions): string
Returns a string representation of a contract generated using the provided options. If opts
is not provided, uses defaults
.
defaults
const defaults: Required<ERC20Options>
const defaults: Required<ERC721Options>
const defaults: Required<ERC1155Options>
const defaults: Required<StablecoinOptions>
const defaults: Required<AccountOptions>
const defaults: Required<GovernorOptions>
const defaults: Required<CustomOptions>
The default options that are used for print
.
isAccessControlRequired
function isAccessControlRequired(opts: Partial<ERC20Options>): boolean
function isAccessControlRequired(opts: Partial<ERC721Options>): boolean
function isAccessControlRequired(opts: Partial<ERC1155Options>): boolean
function isAccessControlRequired(opts: Partial<StablecoinOptions>): boolean
function isAccessControlRequired(opts: Partial<GovernorOptions>): boolean
function isAccessControlRequired(opts: Partial<CustomOptions>): boolean
Whether any of the provided options require access control to be enabled. If this returns true
, then calling print
with the same options would cause the access
option to default to 'ownable'
if it was undefined
or false
.
Note that contracts such as
account
, have its own way of handling permissions and do not support theaccess
option. Thus, that type does not includeisAccessControlRequired
.
Import the contract type(s) that you want to use from the @openzeppelin/wizard
package:
import { erc20 } from '@openzeppelin/wizard';
To generate the source code for an ERC20 contract with all of the default settings:
const contract = erc20.print();
To generate the source code for an ERC20 contract with a custom name and symbol, along with some custom settings:
const contract = erc20.print({
name: 'ExampleToken',
symbol: 'ETK',
burnable: true,
premint: '1000000',
});
To generate the source code for an ERC20 contract with all of the defaults but is upgradeable using the UUPS proxy pattern:
const contract = erc20.print({
...erc20.defaults,
upgradeable: 'uups',
});
FAQs
TEST PACKAGE, DO NOT USE
We found that @ericglau/wizard-test demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
Socket CEO Feross Aboukhadijeh discusses the recent npm supply chain attacks on PodRocket, covering novel attack vectors and how developers can protect themselves.
Security News
Maintainers back GitHub’s npm security overhaul but raise concerns about CI/CD workflows, enterprise support, and token management.
Product
Socket Firewall is a free tool that blocks malicious packages at install time, giving developers proactive protection against rising supply chain attacks.