Zos install fails

:computer: Environment

:memo:Details

:1234: Code to reproduce

unable to install npm install zos fails with the error npm ERR! scrypt@6.0.3 install: node-gyp rebuild
npm version 6.14.11

1 Like

Hi @mpraturi,

Welcome to the community :wave:

We’ve decided it’s best to focus our upgradeability efforts on the Upgrades Plugins exclusively, and have halted development on the OpenZeppelin CLI (formerly known as zos). See: Building for interoperability: why we’re focusing on Upgrades Plugins

If you are creating upgradeable contracts I suggest using OpenZeppelin Upgrades Plugins for Truffle and Hardhat: https://docs.openzeppelin.com/upgrades-plugins/1.x/

If you are creating non-upgradeable contracts then you can use Truffle or Hardhat: See: https://docs.openzeppelin.com/learn/developing-smart-contracts

Out of interest, why were you trying to install zos?

I was trying to install zos for upgrades of smart contracts. Now I will stop thinking of zos and proceed in the way you suggested

1 Like

But I don’t want to use gnosis, an extra layer of complication for me. Can you send me something like https://forum.openzeppelin.com/t/openzeppelin-upgrades-step-by-step-tutorial-for-truffle/3579 without gnosis

1 Like

And more frustrating than anything else is, how come there are no imports in Box2.sol. The only thing I understand from that tutorial is that it cannot have a constructor, but what about initilizable?
Also, how come I can’t employ Remix in such matters? Can’t Remix come into openzeppelin framework? Is openzeppelin only until we send up the stuff using proxy on to ropsten. After that it works on its own without imports?

Please seya link to something which does not use gnosis.

Hi @mpraturi,

See the documentation for doing an upgrade using deployProxy

It is recommended to use a multisig for the upgrades admin as an attacker who gets hold of your upgrade admin account can change any contract in your system!:

For an example of what can happen when an upgrades account is compromised see the recent attack on PAID Network

There are no imports because it is a simple example.

For an example using an initialize function see the documentation: https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable#initializers

See the documentation for using with OpenZeppelin Contracts Upgradeable:

OpenZeppelin Upgrades Plugins for Truffle and Hardhat are used to test, deploy and upgrade upgradeable contracts. The Plugins also check for upgrade safety of implementation contracts.

There isn't an Upgrades Plugin for Remix.

OpenZeppelin Upgrades Plugins are for deployment, test and upgrade. You can interact with the contract using the proxy address and the ABI of the implementation contract.