合约状态 只读
加载中…
合约地址与区块浏览器
我的 NFT ERC721Enumerable
未授权
连接钱包后显示
挂单 / 撤单 / 改价 卖家 · 需授权
挂单只登记价格,NFT 仍留在你钱包;成交时合约凭授权代转移。
尚未查询
购买 买家 · 自动预估分账
下单前先按 quoteWithRoyalty 算出平台费与版税,多付的部分会原额退回。
尚未预估
市场在售一览 只读 · 逐个 getListing
挂单存在 mapping 里,合约无法把它枚举出来,所以这里遍历 tokenId 0 … nextTokenId-1 逐个查 getListing,只留下在售的。这是「给合约补一个列表页」最直接的做法。
未刷新
每次刷新会发 nextTokenId 次只读请求(不上链、不花 gas)
连接钱包后点「刷新在售」
规模变大之后怎么办
tokenId 上千之后逐个查询就不现实了。届时的标准做法是监听
Listed / PriceUpdated / Canceled / Sold 事件,在链下(数据库或前端内存)维护一份索引,
再用 getListing 做交叉校验。项目里的 scripts/market-board.js
就是这个思路的完整实现,可以直接 npx hardhat run 跑。
EIP-712 签名挂单 卖家 · 零 gas
离线签名即可挂牌,全程不上链、不花 gas;把生成的 JSON 发给买家去成交。
用签名成交 买家 · 付 gas
粘贴卖家给你的签名 JSON,按其中的价格发起成交。
尚未解析
出价 买家 · ETH 进合约代管
出价按出价人分桶,同一枚 NFT 可多人同时出价;重复出价是累加(加价)。
尚未查询
处置出价 持有者
拒绝时若对方拒收 ETH,退款会进待领池(不 revert),保证你永远能拒绝。
资金 Pull Payment
合约从不主动转账,所有款项记账后由收款人自取。
加载中…