首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过opensea-js向开放资产报价。

通过opensea-js向开放资产报价。
EN

Ethereum用户
提问于 2021-10-17 12:27:12
回答 2查看 3.8K关注 0票数 3

我使用opensea-js与nodejs一起提供开放测试网络资产。守则如下:

代码语言:javascript
复制
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';

const Web3 = require('web3')
const opensea = require('opensea-js')

const provider = new Web3.providers.HttpProvider('https://rinkeby.infura.io')

const seaport = new opensea.OpenSeaPort(provider, {
  networkName: opensea.Network.Main
})

const call = async () => {
  const accountAddress = "my_metamask_wallet_address_on_rinkeby_network"
  const tokenId = 12
  const tokenAddress = "0x7dca125b1e805dc88814aed7ccc810f677d3e1db"
  const offer = await seaport.createBuyOrder({
    asset: {
      tokenAddress: tokenAddress,
      tokenId: tokenId,
    },
    accountAddress: accountAddress,
    startAmount: 1
  })
  console.log(offer.expirationTime)
}

call()

但是它抛出一个404没有找到的错误,我做错了什么?响应是{"success": false}

EN

回答 2

Ethereum用户

发布于 2021-10-29 11:06:00

很少的事情

  1. 您不能使用HttpProvider,因为opensea-js库应该能够代表您签署事务。尝试使用HDWalletProvider或与您的助记符或私钥类似的东西,以允许签署购买订单。
代码语言:javascript
复制
const HDWalletProvider = require("@truffle/hdwallet-provider");

const provider = new HDWalletProvider({
    mnemonic: "<your wallet mnemonic>",
    providerOrUrl: "rinkeby infura link",
    addressIndex: 1
});
  1. 您需要将OpenSeaPort连接到Rinkeby网络。
代码语言:javascript
复制
const seaport = new opensea.OpenSeaPort(provider, {
  networkName: opensea.Network.Rinkeby
})

最后的代码应该类似于

代码语言:javascript
复制
const Web3 = require('web3')
const opensea = require('opensea-js')
const HDWalletProvider = require("@truffle/hdwallet-provider");

const provider = new HDWalletProvider({
    mnemonic: "<your wallet mnemonic>",
    providerOrUrl: "https://rinkeby.infura.io",
    addressIndex: 0
});

const seaport = new opensea.OpenSeaPort(provider, {
  networkName: opensea.Network.Rinkeby
})

const call = async () => {
  const accountAddress = "my_metamask_wallet_address_on_rinkeby_network"
  const tokenId = 12
  const tokenAddress = "0x7dca125b1e805dc88814aed7ccc810f677d3e1db"
  const offer = await seaport.createBuyOrder({
    asset: {
      tokenAddress: tokenAddress,
      tokenId: tokenId,
    },
    accountAddress: accountAddress,
    startAmount: 1
  })
  console.log(offer.expirationTime)
}

call()
    .then(() => process.exit(0))
    .catch((error) => {
        console.error(error);
        process.exit(1);
    });
票数 5
EN

Ethereum用户

发布于 2022-03-09 02:52:55

同样的事情也发生在我身上。事实证明,我试图找回的资产是在孟买测试网上,而不是在林克比上。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/111716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档