1.0.2 • Published 11 months ago

@aurelianoa/metadataupdatable v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

Meta Data Updatable

This package will help ERC721 Smart contracts to easiliy handle metadata updates.

Overview:

This system register a variant per each tokenId each tokenId can update its own metadata to anew available variant.

Variant Metadata System Diagram

Setup:

yarn add aurelianoa/metadataupdatable
npm install aurelianoa/metadataupdatable
pnpm install aurelianoa/metadataupdatable

In your ERC721 Solitidy Smart Contract:

import { MetadataUpdatable } from "@aurelianoa/metadataupdatable/contracts/MetadataUpdatable.sol";

Override the middleware function to do the proper authorization to the admin functions

function middleware() internal view override returns (bool)  {
        return msg.sender == _authorized;
}

/// OR

function middleware() internal view override onlyOwner returns (bool)  {
        return true;
}

Usage:

function updateVariant(uint256 tokenId, string memory variant)

/// use getTokenURI on yous ERC721 tokenURI standar
function tokenURI(uint256 tokenId) public view override(ERC721A, IERC721A) returns (string memory) {
    require(_exists(tokenId), "Token does not exist");

    return getTokenURI(tokenId);
}

Then manage the variants and url metadata with the functions:

function setBaseURI(string calldata uri)
function setFileExtension(string memory _fileExtension)
function setVariant(string memory variant, string memory seed, uint256 price, bool active)
function setRevealedBaseURI(string calldata revealedBaseURI)
function setReveal(bool _isRevealed)

Note: you can add a price to each vartiant if you wan to ecourage "variant payable upgrades"

abbrevacornacorn-walkaddressaes-jsamdefineansi-colorsansi-regexansi-stylesantlr4tsanymatchargargparsearray-backarray-buffer-byte-lengtharray-unionarray.prototype.reduceassertion-errorasyncavailable-typed-arraysbalanced-matchbase-xbech32binary-extensionsblakejsbn.jsbrace-expansionbracesbrorandbrowser-stdoutbrowserify-aesbs58bs58checkbuffer-xorcall-bindcamelcasechalkcheck-errorchokidarcipher-basecliuicolor-convertcolor-namecommand-line-argscommand-line-usageconcat-mapcreate-hashcreate-hmaccreate-requiredeathdebugdecamelizedeep-eqldeep-extenddeep-isdefine-propertiesdetect-portdiffdifflibdir-globellipticemoji-regexes-abstractes-array-method-boxes-properlyes-set-tostringtages-to-primitiveescape-string-regexpescodegenesprimaestraverseesutilsethereum-bloom-filtersethereum-cryptographyethereumjs-utilethjs-unitevp_bytestokeyfast-globfast-levenshteinfastqfill-rangefind-replacefind-upflatfor-eachfs-extrafs.realpathfseventsfunction-bindfunction.prototype.namefunctions-have-namesget-caller-fileget-func-nameget-intrinsicget-symbol-descriptionghost-testrpcglobglob-parentglobal-modulesglobal-prefixglobalthisglobbygopdgraceful-fsgrowlhandlebarshashas-bigintshas-flaghas-property-descriptorshas-protohas-symbolshas-tostringtaghash-basehash.jsheheaphmac-drbgignoreinflightinheritsiniinternal-slotinterpretis-array-bufferis-bigintis-binary-pathis-boolean-objectis-bufferis-callableis-core-moduleis-date-objectis-extglobis-fullwidth-code-pointis-globis-hex-prefixedis-negative-zerois-numberis-number-objectis-regexis-shared-array-bufferis-stringis-symbolis-typed-arrayis-weakrefisarrayisexejs-sha3js-yamljsonfilejsonschemakeccakkind-oflevnlocate-pathlodashlodash.camelcaselog-symbolsloupelru-cachemake-errormd5.jsmerge2micromatchminimalistic-assertminimalistic-crypto-utilsminimatchminimistmkdirpmsneo-asyncnode-addon-apinode-emojinode-environment-flagsnode-gyp-buildnoptnormalize-pathnumber-to-bnobject-inspectobject-keysobject.assignobject.getownpropertydescriptorsonceoptionatorp-limitp-locatep-trypath-existspath-is-absolutepath-parsepath-typepathvalpbkdf2picomatchpifyprelude-lsprettierqueue-microtaskrandombytesreadable-streamreaddirprechoirrecursive-readdirreduce-flattenregexp.prototype.flagsrequire-directoryrequire-main-filenameresolvereusifyripemd160rlprun-parallelsafe-array-concatsafe-buffersafe-regex-testsc-istanbulscrypt-jssecp256k1semverset-blockingsetimmediatesha.jsshelljsside-channelslashsource-mapsprintf-jsstring-formatstring-widthstring.prototype.trimstring.prototype.trimendstring.prototype.trimstartstring_decoderstrip-ansistrip-hex-prefixstrip-json-commentssupports-colorsupports-preserve-symlinks-flagtable-layoutto-regex-rangets-command-line-argsts-essentialstype-checktype-detecttyped-array-lengthtypicaluglify-jsunbox-primitiveuniversalifyutf8util-deprecateuuidv8-compile-cache-libweb3-utilswhichwhich-boxed-primitivewhich-modulewhich-typed-arraywide-alignword-wrapwordwrapwordwrapjswrap-ansiwrappywsy18nyallistyargsyargs-parseryargs-unparseryn
1.0.2

11 months ago

1.0.1

12 months ago

1.0.0

12 months ago