opensea 协议升级导致旧包不能使用了
我使用的是 “opensea-js”: "^4.0.12” 版本当SDK。于2023年3月9日之后,不能使用了,需要升级到 Seaport v1.4 协议的包。
报错如下:
Error: API Error 400: Please provide an OPEN order type when using 0x004c00500000ad104d7dbd00e3ae0a5c00560c00 on Seaport v1.4 - you provided: PARTIAL_RESTRICTED (3), please set it to be FULL_OPEN (0) or PARTIAL_OPEN (1)
TypeError: Cannot read properties of null (reading 'toHexString')
opensea 升级公告
https://twitter.com/apiopensea/status/1631416147865382913?cxt=HHwWgsDR5fiV-qMtAAAA
“opensea-js”: “^4.0.16” 版本的问题:“Unsupported protocol”
按照公告,opensea-js 包升级到 4.0.16 版本,仍然出现问题,查找SDK源码,发现具体表现在,1、地址大小写不匹配,2、方法用错了。如下所示:
在 Node.js 中,使用 in 操作符来判断一个元素是否在一个对象的属性中存在,而不是用于判断一个元素是否在一个数组中存在。
如果要判断一个元素是否在一个数组中,可以使用数组的 includes 方法。
const arr = ["a", "b"];
if (arr.includes("a")) {
console.log("a is in the array.");
} else {
console.log("a is not in the array.");
}
“opensea-js”: “^4.0.23” 版本的问题: 导入包失败
升级到最新版本后,发现无法导入,检测SDK的package.json
和包结构后发现:
1、包结构的路径为 lib/src/index.js
,package.json
中路径为 lib/index.js
。
2、修复:将 package.json 修改为:
参考
https://github.com/ProjectOpenSea/opensea-js/blob/master/src/sdk.ts#L205
https://github.com/ProjectOpenSea/opensea-js/issues/869#issuecomment-1463045031