很多朋友在Opensea上购买NFT时,会发现自己的钱包正在调用一个名为Atomic Match_的方法,正好这段时间做的项目需要和Opensea交互,研究了一下Opensea的合约,今天就从
atomicMatch_开始,分析一下Opensea的合约源码,希望能够帮到大家。
Opensea交互流程简介
1.NFT拥有者上架NFT
当用户初次使用opensea上架NFT时,会被要求初始化钱包(”lnitialize your wallet”),其本质是创建一个代理合约,做为下一步授权(”Approve this item for sale”)的目标。最后一步为签名(签名的信息为配对参数信息,且保存到Opensea的中心化服务器中)。
2.购买NFT
2.1 buy now 模式
当buyer点击buy now 对已经list的订单进行购买时,首先在前端获取order.buy部分,同时在Opnesea数据库获取order.sell部分并将其加入缓存,封装后作为参数调用atomicMatch_方法,在方法内部确认订单可用且匹配后,通过调用代理合约来实现transferfrom方法。
2.2 make offer 模式
make offer同理
atomicMatch_详解
可以看到,atomicMatch_在其