Estoy tratando de usar la API de OpenSea con JS SDK. Recibo dos tipos de errores. Una es una advertencia obsoleta. Otro es un error 404. Este es el error que recibo sin importar qué solicitud se realice,
DEPRECATED: Please use providerUtils.standardizeOrThrow() instead DEPRECATED: Please use providerUtils.standardizeOrThrow() instead /home/sayeed/projects/SmartxNFT-main/node_modules/opensea-js/lib/api.js:509 throw new Error("API Error ".concat(response.status, ": ").concat(errorMessage)); ^ Error: API Error 404: Not found. Full message was '{"success":false}' at OpenSeaAPI.<anonymous> (/home/sayeed/projects/SmartxNFT-main/node_modules/opensea-js/lib/api.js:509:31) at step (/home/sayeed/projects/SmartxNFT-main/node_modules/opensea-js/lib/api.js:63:23) at Object.next (/home/sayeed/projects/SmartxNFT-main/node_modules/opensea-js/lib/api.js:44:53) at fulfilled (/home/sayeed/projects/SmartxNFT-main/node_modules/opensea-js/lib/api.js:35:58) at processTicksAndRejections (node:internal/process/task_queues:96:5)Aquí está mi código siguiendo la documentación,
const Web3 = require("web3"); const { OpenSeaPort, Network } = require("opensea-js"); const HDWalletProvider = require("@truffle/hdwallet-provider"); const privateKeys = [ "private key", ]; const provider = new HDWalletProvider( privateKeys, "https://polygon-mainnet.g.alchemy.com/v2/aclchemy - key", 0, 2 ); const seaport = new OpenSeaPort(provider, { networkName: Network.Main, apiKey: "api key", }); const getAsset = async () => { const asset = { tokenAddress: "0x0ee7d6519a475a35e5c65dd0193dd1b9800e4db0", // CryptoKitties tokenId: "129", // Token ID }; const listing = await seaport.api.getAsset(asset); console.log(listing); }; getAsset();La clave API de RPC es de Alchemy.
El problema radica en que opensea-js solo tiene dos opciones de red. La red principal de Ethereum y la red de prueba de rinkeby.
En la siguiente línea, puede ver que está configurando su puerto marítimo para usar Ethereum Mainnet.
nombre de la red: Red.Principal,
El valor de retorno de Network.Main es una cadena que contiene la palabra main y, aunque esto parezca implicar que simplemente puede cambiar Network.Main a "polygon" , el SDK simplemente arrojará un error.
En este momento, ni OpenSea API ni opensea-sdk son compatibles con Polygon, pero han anunciado que para V2 OpenSea API será compatible con Polygon.