签署交易而不用元掩码广播它(不使用私钥)
Sign transaction without broadcasting it with metamask (not using private key)
我正在尝试使用元掩码在不广播的情况下签署交易。我已经尝试过 web3js 和 etherjs (eth_signTransaction) 但都没有用。如何做到这一点?
我认为 opensea 正在对消息进行签名,然后将其用于交易。他们是怎么做到的?
- 使用 web3js。我试过这个。但是我得到
MetaMask - RPC Error: Method not supported
const signedTx = await web3.eth.signTransaction(tx, accounts[0])
- 使用 etherjs。我试过这个。但是我得到
Error: signing transactions is unsupported (operation="signTransaction", code=UNSUPPORTED_OPERATION
const signedTx = await signer.signTransaction(tx)
Metamask 目前不支持用于签署交易的 RPC 方法。请参阅 GitHub 讨论他们为何选择不实施它的问题:https://github.com/MetaMask/metamask-extension/issues/3475
编辑:
I think opensea is signing message and then using it for transaction. How did they do this?
OpenSea 允许以无气体方式铸造的方式实际上非常简单:他们不会铸造 NFT,直到有人购买它。然后,OpenSea 使用其部署的合约中存在的所有者 'bypass' 自己铸造 NFT。
我正在尝试使用元掩码在不广播的情况下签署交易。我已经尝试过 web3js 和 etherjs (eth_signTransaction) 但都没有用。如何做到这一点?
我认为 opensea 正在对消息进行签名,然后将其用于交易。他们是怎么做到的?
- 使用 web3js。我试过这个。但是我得到
MetaMask - RPC Error: Method not supported
const signedTx = await web3.eth.signTransaction(tx, accounts[0])
- 使用 etherjs。我试过这个。但是我得到
Error: signing transactions is unsupported (operation="signTransaction", code=UNSUPPORTED_OPERATION
const signedTx = await signer.signTransaction(tx)
Metamask 目前不支持用于签署交易的 RPC 方法。请参阅 GitHub 讨论他们为何选择不实施它的问题:https://github.com/MetaMask/metamask-extension/issues/3475
编辑:
I think opensea is signing message and then using it for transaction. How did they do this?
OpenSea 允许以无气体方式铸造的方式实际上非常简单:他们不会铸造 NFT,直到有人购买它。然后,OpenSea 使用其部署的合约中存在的所有者 'bypass' 自己铸造 NFT。