Hi folks,
I’m very new at developing smart contract, but very exciting to learn more because I’ve just got involved into the team for develop our own NFT Smart Contract based on EIP 721. And after reading some documents, I decided to create the contract upgradeable. But when I tried to do truffle migrate
, it failed when deploying TransparentUpgradeableProxy
, with the following error :
Deploying 'TransparentUpgradeableProxy'
---------------------------------------
Error: *** Deployment Failed ***
"TransparentUpgradeableProxy" hit a require or revert statement with the following reason given:
* Address: low-level delegate call failed
at <my-project>/node_modules/truffle/build/webpack:/packages/deployer/src/deployment.js:365:1
Is there any compatibility issue or anything? I’m kinda confused with this error message, and couldn’t find any solutions right now.
Code to reproduce
I’m writing the contract with extending ERC721URIStorageUpgradeable
, and OwnableUpgradeable
contract MyAwesomeContract is ERC721URIStorageUpgradeable, OwnableUpgradeable {}
Environment
I’m using node node 16 on Mac M1
"dependencies": {
"@openzeppelin/contracts-upgradeable": "^4.1.0"
},
"devDependencies": {
"@openzeppelin/truffle-upgrades": "^1.7.1",
"truffle": "^5.3.12"
},
I’m deploying to my local ganache GUI network, here’s some of my truffle-config.js
networks: {
// Useful for testing. The `development` name is special - truffle uses it by default
// if it's defined here and no other network is specified at the command line.
// You should run a client (like ganache-cli, geth or parity) in a separate terminal
// tab if you use this network and you must also set the `host`, `port` and `network_id`
// options below to some value.
//
development: {
host: "127.0.0.1", // Localhost (default: none)
port: 7545, // Standard Ethereum port (default: none)
network_id: "*", // Any network (default: none)
},
...
}