Skip to content

Conversation

@magent-cryptograss
Copy link
Contributor

Summary

  • Complete pending submissions dashboard with per-submission mint pages
  • Video URL resolution fix for MediaWiki hash-based file paths
  • Bundled mint submission module (replaces CDN imports)
  • Progress messages during IPFS pinning for better UX
  • Link to PickiPedia for updating submission status after mint

Commits

  1. Video pinning integration - Initial mint-tony page
  2. Pages manifest registration - Wire up new page
  3. Pending submissions dashboard - List view of submissions
  4. PickiPedia integration - Fetch submissions at build time
  5. Multi-recipient minting - Support minting to multiple wallets
  6. Build metadata footer - Show build info on admin pages
  7. Per-submission mint pages - Individual pages with wallet auth
  8. Video URL fix - Query MediaWiki API for actual file URLs
  9. Bundled module - Replace CDN imports with bundled JS

Test plan

  • Navigate to pending submissions dashboard
  • Open a per-submission mint page
  • Connect wallet
  • Pin video to IPFS (check progress messages appear)
  • Mint token
  • Verify transaction on Etherscan

MediaWiki stores files in hash-based subdirectories, so we need to
query the imageinfo API to get the actual URL rather than constructing
it from the filename. This fixes 404s when fetching video files from
PickiPedia submissions.
Moves wallet connection and minting logic from inline CDN imports to
a proper bundled module. Benefits:
- Better build-time error checking
- Consistent dependency management via npm
- Progress messages during pinning for better UX
- Link to PickiPedia for updating submission status after mint

Updates @wagmi/core and viem to current versions, and adds
@reown/appkit dependencies for the wallet modal.
When the pinning service returns alreadyPinned: true, the UI now shows
"Already pinned:" prefix with a success indicator instead of just the CID.
Also updates progress messaging and extends the timer before showing the
upload message to better reflect the download+check flow.
The issueTony contract call requires raw hex addresses, but recipients
from PickiPedia may be ENS names like "justinholmes.eth". Now resolves
ENS names via mainnet before calling the contract on Optimism.
Fetches additional token metadata for PickiPedia integration:
- songId from tokenIdToSongId mapping
- date from tokenIdToDate mapping (YYYYMMDD format)
- ownerDisplay with ENS resolution (falls back to raw address)
Introduces enumerable_contracts.json as the source of truth for which
contracts should be iterated during chain data fetch. Each contract
specifies name, chainId, address, and can be disabled.

The fetch_chaindata() function now:
- Checks contract config before fetching each contract type
- Includes list of fetched contracts in output for consumers
- Logs which contracts are being fetched

This allows PickiPedia and other consumers to know what chain data
is available without hardcoding contract knowledge.
Changed 'assert { type: json }' to 'with { type: json }' for
enumerable contracts JSON import. Node.js 23.x deprecated
the assert syntax in favor of the with keyword.
The getBlueRailroads() function performs ENS name resolution on mainnet
(chainId 1), but fetch_video_metadata.js was only configuring the
Optimism chain. This caused ChainNotConfiguredError when wagmi tried
to resolve ENS names for token owners.

Added mainnet to the chains array and its transport configuration.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants