Add Feral File ERC-7730 calldata descriptors#2599
Conversation
🧪 Clear Signing Tests
This PR is from a fork. A maintainer needs to add the Once approved, the tests will run automatically and post screenshots here. |
|
Hey there :)
Thank you! We will have a look at the PR afterwards. |
Clear Signing Tests
✅ pass · ❌ fail · |
Covers exhibition versions V2 through V4.5 plus vault, auction, and airdrop infrastructure on Ethereum mainnet.
Refresh exhibition address lists after removing stale entries and adding V4.2–V4.5 deployments.
Sync descriptors from ff-evm-contracts so wallets resolve artwork metadata names for transfers, purchases, burns, and batch operations.
One test case per descriptor covering the primary user-facing function: - Vaults (x2): withdrawFund — 0.5 ETH withdrawal - English Auction: placeBid — 0.1 ETH bid on auction 42 - Airdrop V1: setApprovalForAll — grant operator approval - Exhibition V2–V4.5 (10 files): setApprovalForAll — grant operator approval All tests use synthetic unsigned EIP-1559 transactions with controlled addresses in dataProvider.addressNames for deterministic expected output.
c2cd607 to
d49fc23
Compare
175 test cases across 14 descriptors covering every function defined in the display.formats section of each descriptor file: - Airdrop V1: 11 tests (ERC-1155 transfers, approvals, burn, mint, airdrop, end, setURI, setContractURI, burnRemaining) - Vault / Vault V2: 2 tests each (payForSale / payForSaleV2, withdrawFund) - English Auction: 5 tests (placeBid, placeSignedBid, registerAuctions, settleAuction, settleAuctionFund) - Exhibition V2: 9 tests (transfers, approve, setApprovalForAll, createArtworks, setRoyaltyPayoutAddress, setTokenBaseURI, updateArtworkEditionIPFSCid) - Exhibition V3 / V3.2: 11 tests each (adds burnEditions, authorizedTransfer, batchMint over V2 base) - Exhibition V3.3: 13 tests (adds mintArtworkEdition, updateArtworkCIDs) - Exhibition V4: 16 tests (V4 lifecycle + buyArtworks, mintArtworks, admin) - Exhibition V4.1: 18 tests (adds setAdvanceSetting, replaceAdvanceAddresses) - Exhibition V4.2: 19 tests (buyBulkArtworks instead of buyArtworks, setVaultV2) - Exhibition V4.3: 19 tests (adds mergeArtworks) - Exhibition V4.4: 21 tests (adds setSeriesRenderer, setSeriesNames, setRendererTokenData) - Exhibition V4.5: 18 tests (same as V4.1 shape) All tests use synthetic unsigned EIP-1559 transactions with controlled addresses in dataProvider for deterministic expected output. Generation script saved at tools/scripts/gen-feralfile-tests.js.
Keep only the generated testsv2 fixtures; test generation should use the repo's standard generate-tests.js workflow.
Validated all 175 cases with cs-test (llbartekll/clear-signing). Updates include array bracket formatting, ISO date timestamps, correct field labels from descriptors, and proper struct field counts. Also fixes exhibition v2 createArtwork rawTx to use selector 0x3afb021a instead of createArtworks.
Use .[] array paths and remove NFT separators so Rust and Sourcify renderers decode calldata consistently, then sync testsv2 expected values from the official runners.
|
Hi @manuelwedler — thanks for the guidance on the v2 test format. We've addressed your feedback:
A few small descriptor tweaks were needed for dual-runner compatibility ( Happy to adjust anything — otherwise this should be ready for your review. |
Summary
Adds ERC-7730 calldata descriptors for Feral File smart contracts on Ethereum mainnet (chain ID 1):
User-facing flows include ERC-721/1155 transfers and approvals, artwork purchase (
buyArtworks), authorized trustee transfers, burns, vault payments, auction bids, and airdrop operations. Admin/ops functions (sale lifecycle, minting, URI updates, etc.) are also described.Testing
erc7730 lint registry/feral-file/calldata-*.json— 14/14 pass (warnings only, no errors)Notes
erc7730 lintare limited to omitted signature fields (r_,s_,v_), undocument admin ownership helpers, and optional revenue-share array paths — consistent with other registry entries.