- Archived multiple non-EVM adapters (Algorand, Hedera, Tron, TON, Cosmos, Solana) and compliance contracts (IndyVerifier) to `archive/solidity/contracts/`. - Updated documentation to reflect the historical status of archived components. - Adjusted `foundry.toml` and `README.md` for clarity on historical dependencies and configurations. - Enhanced Makefile and package.json scripts for improved contract testing and building processes. - Removed obsolete contracts (AlltraCustomBridge, CommodityCCIPBridge, ISO4217WCCIPBridge, VaultBridgeAdapter) from the main directory. - Updated implementation reports to indicate archived status for various components.
1.8 KiB
1.8 KiB
GRU Formulas NFT
Contract: archive/solidity/contracts/nft/GRUFormulasNFT.sol
Standard: ERC-721
Overview
The GRU Formulas NFT mints up to three token types, each depicting a GRU-related monetary formula as an on-chain SVG graphic.
Token ID Mapping
| Token ID | Formula | Name / Description |
|---|---|---|
| 0 | Money Supply | GRU monetary layers: 1 M00 = 5 M0 = 25 M1 (base M00, collateral M0, credit M1). See GRUConstants.sol. |
| 1 | Money Velocity | Equation of exchange: M × V = P × Y (money supply × velocity = price level × output). |
| 2 | Money Multiplier | m = Reserve / Supply = 1.0 — no fractional reserve; enforced in ComplianceGuard and ISO4217W tokens. |
Minting
- Only addresses with
MINTER_ROLEcan mint. mint(to, tokenId)withtokenId0, 1, or 2.- There are exactly three NFTs: tokenId 0, 1, and 2 (one per formula). Each tokenId can be minted once; the recipient receives that formula’s graphic.
Metadata
tokenURI(tokenId)returns a data URI:data:application/json;base64,<base64(JSON)>.- The JSON includes
name,description, andimage. - The
imagefield is a data URI with an on-chain SVG:data:image/svg+xml;base64,<base64(SVG)>. - No off-chain or IPFS dependency; all graphics are on-chain.
Deployment
Deploy with an admin address (receives DEFAULT_ADMIN_ROLE and MINTER_ROLE). Grant MINTER_ROLE to any additional minters as needed.
forge create archive/solidity/contracts/nft/GRUFormulasNFT.sol:GRUFormulasNFT --constructor-args <ADMIN_ADDRESS> --rpc-url $RPC_URL --private-key $PRIVATE_KEY
References
- GRU layers:
contracts/vault/libraries/GRUConstants.sol - Money multiplier validation:
contracts/iso4217w/ComplianceGuard.sol,docs/OPERATIONS_RUNBOOK.md