如何将拍卖功能真正融入我的 daap?
Posted
技术标签:
【中文标题】如何将拍卖功能真正融入我的 daap?【英文标题】:how to actually make an auction functionality into my daap? 【发布时间】:2021-11-19 12:46:39 【问题描述】:我一直在尝试创建一个具有拍卖物品功能的 NFT 市场。但我不知道如何通过签署交易来实现这一点。
我尝试使用几乎所有来自 web3.js 的 签名 方法,但它需要用户的私钥。
但是有一个函数web3.eth.signTransaction
不需要任何私钥来签署交易,但它会在控制台上给出错误。说:Error: The method 'eth_signTransaction' does not exist / is not available
.
有人可以给我概述一下如何执行此签名和发送交易,以实现拍卖类似 nft 市场的 nft 的功能:opensea 或基金会。
【问题讨论】:
【参考方案1】:来自docs:
签署交易。此帐户需要解锁。
它不需要私钥,但需要在节点上解锁帐户(用于签署交易)。这意味着节点需要持有私钥才能解锁帐户。
通常允许在本地节点(例如 Ganache 或私有节点)上使用。
Infura 等公共节点通常禁用此功能(因此错误消息“eth_signTransaction
不可用”),因为它们不存储您的私钥。
您可以要求用户使用他们的钱包签署交易。例如使用 MetaMask(或任何其他实现 Ethereum provider API 的钱包):
const transactionParameters =
from: ethereum.selectedAddress, // must match user's active address
to: 'your address'
;
await ethereum.request(
method: 'eth_sendTransaction',
params: [transactionParameters],
);
【讨论】:
上面的函数实际上是执行交易的,但是我想签名以备后用。有没有其他方法可以做到这一点?以上是关于如何将拍卖功能真正融入我的 daap?的主要内容,如果未能解决你的问题,请参考以下文章