urbit / bridge

An application for interacting with Azimuth.
MIT License
96 stars 25 forks source link

L2 planet spawning: unable to spawn planets to address #957

Closed jamesacklin closed 2 years ago

jamesacklin commented 2 years ago

From a community member:

Successfully migrated spawn proxy of ~walpub to L2, but unable to spawn planets:

errors.js:28 Uncaught (in promise) Error: Returned error: The method personal_sign does not exist/is not available
    at Object.ErrorResponse (errors.js:28:19)
    at index.js:302:36
    at XMLHttpRequest.i.onreadystatechange (index.js:98:13)

Running on macOS in chrome, ~walpub lives on a Ledger Nano X.

image

tomholford commented 2 years ago

Could be related to the recent Ethereum Provider API updates

https://github.com/urbit/bridge/pull/950

see also: https://github.com/urbit/bridge/issues/596

jamesacklin commented 2 years ago

An additional point of failure is in accepting a transfer:

image

dolled-possum commented 2 years ago

I continued to try other cases, and I am unable to discern the logic behind the pattern, if any. All of the following was using metamask on-disk accounts, no hardware wallets (unlike the issue that opened this ticket).

0) A colleague imported the account in the "An additional point of failure is in accepting a transfer" comment above -- I'll refer to that as Account A. He saw the incoming transfer and successfully accepted it, although he mentioned seeing "weird characters in the message" for the transaction he had to sign. More on that shortly.

1) I installed chrome on macOS, installed metamask, and imported Account A. I asked my colleague to spawn another L2 planet to it. I could see the inbound transfer, but once again could not accept it.

2) I asked him to spawn another to the default account created when installing metamask, which I'll call Account B. He did, and again, I could see it the inbound transfer, but couldn't accept it. (Same "personal_sign" error as always.)

3) I installed Brave and added metamask, and imported Account A and Account B. I connected with Account A, could see the still-pending inbound transfer, and this time was able to accept it. I saw the same weird characters my colleague mentioned earlier: isitcursingatme

4) Then I switched to Account B in the metamask in the Brave browser, and saw its still-pending inbound transfer, and I thought I'd be able to accept it, but no luck, same error as before.

5) Finally, I asked for one more spawning to Account A, switched back to it, saw the transfer, tried to accept, but this time could not accept it, despite it being the exact same account and browser I used mere minutes earlier in step 3.

Every theory I had foundered on subsequent tests. Perhaps someone closer to the situation will be able to do more with these facts above than I am.

jamesacklin commented 2 years ago

@dolled-possum We just pushed an update to the beta site; you're welcome to give a cache clear + hard refresh and try again.

jamesacklin commented 2 years ago

@arthyn and @tomholford, this is still not resolved on Ropsten.

This is attempting to spawn an L2 planet directly to an Ethereum address with no Metamask intermediary.

image

Error.js:24 Uncaught (in promise) Error: Failed to parse
    at new t (Error.js:24:28)
    at Object.t.convertJSONToRPCError (Error.js:37:16)
    at e.processResult (TransportRequestManager.js:91:31)
    at e.resolveRes (TransportRequestManager.js:113:18)
    at e.resolveResponse (TransportRequestManager.js:53:25)
    at t.<anonymous> (HTTPTransport.js:107:68)
    at HTTPTransport.js:46:23
    at Object.next (HTTPTransport.js:27:53)
    at s (HTTPTransport.js:18:58)
dolled-possum commented 2 years ago

FWIW, now seeing the same on bridge-beta. against mainnet with planet acceptance (and also with spawn). Same convertJSONToRPC error. At least I’m being asked to sign something in metamask where I wasn’t previously, but after doing so, the UI doesn’t progress, and no evidence of any new transaction in the account’s transaction list.

jamesacklin commented 2 years ago

Glad to hear the Metamask issue is resolved. The L2 transaction not firing should be fixed by urbit/bridge#963; fix is on its way out to staging early tomorrow morning.

dolled-possum commented 2 years ago

Glad to hear the Metamask issue is resolved. The L2 transaction not firing should be fixed by #963; fix is on its way out to staging early tomorrow morning.

Confirmed this morning, was able to accept planets on a local metamask address and to spawn planets from a Ledger-hosted star's L2 spawn proxy via metamask.