| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
What's included:
This includes a very simple sample ERC721 / ERC1155 for the purposes of demonstrating integration with the OpenSea marketplace. We include a script for minting the items.
Additionally, this contract whitelists the proxy accounts of OpenSea users so that they are automatically able to trade the ERC721 item on OpenSea (without having to pay gas for an additional approval). On OpenSea, each user has a "proxy" account that they control, and is ultimately called by the exchange contracts to trade their items. (Note that this addition does not mean that OpenSea itself has access to the items, simply that the users can list them more easily if they wish to do so)
In addition to these template 721/1155 contracts, we provide sample factory contracts for running gas-free presales of items that haven't been minted yet. See https://docs.opensea.io/docs/opensea-initial-item-sale-tutorial for more info.
Either make sure you're running a version of node compliant with the engines requirement in package.json, or install Node Version Manager nvm and run nvm use to use the correct version of node.
Run
yarnIf you run into an error while building the dependencies and you're on a Mac, run the code below, remove your node_modules folder, and do a fresh yarn install:
xcode-select --install # Install Command Line Tools if you haven't already.
sudo xcode-select --switch /Library/Developer/CommandLineTools # Enable command line tools
sudo npm explore npm -g -- npm install node-gyp@latest # Update node-gypexport ALCHEMY_KEY="<your_alchemy_project_id>" export MNEMONIC="<metmask_mnemonic>" export DEPLOY_CREATURES_SALE=0 yarn truffle deploy --network rinkeby
After deploying to the Rinkeby network, there will be a contract on Rinkeby that will be viewable on Rinkeby Etherscan. For example, here is a recently deployed contract. You should set this contract address and the address of your Metamask account as environment variables when running the minting script. If a CreatureFactory was deployed, which the sample deploy steps above do, you'll need to specify its address below as it will be the owner on the NFT contract, and only it will have mint permissions. In that case, you won't need NFT_CONTRACT_ADDRESS, as all we need is the contract with mint permissions here.
export OWNER_ADDRESS="<my_address>" export NFT_CONTRACT_ADDRESS="<deployed_contract_address>" export FACTORY_CONTRACT_ADDRESS="<deployed_factory_contract_address>" export NETWORK="rinkeby" node scripts/mint.js
If you're running a modified version of sell.js and not getting expected behavior, check the following:
Is the expirationTime in future? If no, change it to a time in the future.
Is the expirationTime a fractional second? If yes, round the listing time to the nearest second.
Are the input addresses all strings? If no, convert them to strings.
Are the input addresses checksummed? You might need to use the checksummed version of the address.
Is your computer's internal clock accurate? If no, try enabling automatic clock adjustment locally or following this tutorial to update an Amazon EC2 instance.
Do you have any conflicts that result from globally installed node packages? If yes, try yarn remove -g truffle; yarn
Are you running a version of node compliant with the engines requirement in package.json? If no, try nvm use; rm -rf node_modules; yarn
This is a sample ERC-1155 contract for the purposes of demonstrating integration with the OpenSea marketplace for crypto collectibles. We also include:
On top of the features from the OpenSea ERC721 sample contracts above, ERC1155
Open CreatureAccessoryLootbox.sol
This contract overrides the isApprovedForAll method in order to whitelist the proxy accounts of OpenSea users. This means that they are automatically able to trade your ERC-1155 items on OpenSea (without having to pay gas for an additional approval). On OpenSea, each user has a "proxy" account that they control, and is ultimately called by the exchange contracts to trade their items.
Note that this addition does not mean that OpenSea itself has access to the items, simply that the users can list them more easily if they wish to do so!
Either make sure you're running a version of node compliant with the engines requirement in package.json, or install Node Version Manager nvm and run nvm use to use the correct version of node.
Run
yarnexport ALCHEMY_KEY="<alchemy_project_id>" # or you can use INFURA_KEY export MNEMONIC="<metmask_mnemonic>" DEPLOY_ACCESSORIES_SALE=1 yarn truffle migrate --network rinkeby
Make sure your wallet has at least a few dollars worth of ETH in it. Then run:
yarn truffle migrate --network live
Look for your newly deployed contract address in the logs! 🥳
OpenSea will automatically pick up transfers on your contract. You can visit an asset by going to https://opensea.io/assets/CONTRACT_ADDRESS/TOKEN_ID.
To load all your metadata on your items at once, visit https://opensea.io/get-listed and enter your address to load the metadata into OpenSea! You can even do this for the Rinkeby test network if you deployed there, by going to https://rinkeby.opensea.io/get-listed.
Install truffle locally: yarn add truffle. Then run yarn truffle migrate ....
You can also debug just the compile step by running yarn truffle compile.
This is often due to the truffle-hdwallet provider not being able to connect. Go to your Alchemy Dashboard (or infura.io) and create a new project. Use your "project ID" as your new ALCHEMY_KEY and make sure you export that command-line variable above.
To implement the ERC1155 standard, these contracts use the Multi Token Standard by Horizon Games, available on npm and GitHub and also under the MIT License.
In one terminal window, run:
yarn run ganache-cli
Once Ganache has started, run the following in another terminal window:
yarn run test
| Back | FazBrowse Home | New Git URL |