I’m connecting to MetaMask using:
await window.ethereum.enable()
let gsnProvider = await RelayProvider.newProvider({
provider: window.ethereum,
config: gsnConfig
}).init()
const provider = new ethers.providers.Web3Provider(gsnProvider)
const signer = provider.getSigner()
which successfully connects and allows arbitrary message signing. When I call a contract function MM pulls up the “GSN” view, as expected.
contract = contract.connect(signer)
await contract.claimEscrow(owner)
But when I hit send I get the error:
MetaMask - RPC Error: already known
The GSN tx info in MM is:
o: 0xded0deacb9d0083377c4b5215a79a885d1c773a4
data: 0xa54c35db00000000000000000000000000...
from: 0x9eb83cd76caba00fcd30ec7927a4f9f67c8be55a
value: 0
nonce: 0
gas: 500000
relayData:
pctRelayFee: 90
baseRelayFee: 0
gasPrice: 1200000000
paymaster: 0x43d66E6Dce20264F6511A0e8EEa3f570980341a2
paymasterData: 0x
clientId: 1
forwarder: 0x956868751Cc565507B3B58E53a6f9f41B56bed74
relayWorker: 0x33315c80dc2359b500...
I’ve tried making the transactions with multiple fresh accounts which shouldn’t have any nonce to start out with. Has anyone ran into this before?
Additionally, when I set the RelayProviders log level to debug:
"message":"Etherscan API URL is not set on this server!Returned error: execution reverted: Legal relay transaction