Skip to content

Commit e23d92f

Browse files
1.33.0-0.2.2: [fix] keystone bugs (#657)
* fix keystone bugs * Version bump Co-authored-by: Soralit <soralitria@gmail.com>
1 parent ba92a2b commit e23d92f

File tree

3 files changed

+113
-85
lines changed

3 files changed

+113
-85
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "bnc-onboard",
3-
"version": "1.33.0-0.2.1",
3+
"version": "1.33.0-0.2.2",
44
"description": "Onboard users to web3 by allowing them to select a wallet, get that wallet ready to transact and have access to synced wallet state.",
55
"keywords": [
66
"ethereum",
@@ -59,7 +59,7 @@
5959
"@ethereumjs/tx": "^3.0.0",
6060
"@gnosis.pm/safe-apps-provider": "^0.5.0",
6161
"@gnosis.pm/safe-apps-sdk": "^3.0.0",
62-
"@keystonehq/eth-keyring": "0.7.2",
62+
"@keystonehq/eth-keyring": "0.7.7",
6363
"@ledgerhq/hw-app-eth": "^5.49.0",
6464
"@ledgerhq/hw-transport-u2f": "^5.21.0",
6565
"@ledgerhq/hw-transport-webusb": "5.53.0",

src/modules/select/wallets/keystone.ts

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,11 @@ async function keystoneProvider(options: {
128128
.then((res: string) => callback(null, res))
129129
.catch(err => callback(err, null))
130130
},
131+
signTypedMessage: (messageData: any, callback: any) => {
132+
signTypedMessage(messageData)
133+
.then((res: string) => callback(null, res))
134+
.catch(err => callback(err, null))
135+
},
131136
rpcUrl
132137
})
133138

@@ -147,6 +152,7 @@ async function keystoneProvider(options: {
147152
function disconnect() {
148153
dPath = ''
149154
enabled = false
155+
addressList = []
150156
provider.stop()
151157
}
152158

@@ -173,9 +179,11 @@ async function keystoneProvider(options: {
173179
}
174180

175181
function setPrimaryAccount(address: string) {
176-
return keyring.setCurrentAccount(
177-
addressList.findIndex(addr => addr === address) || 0
178-
)
182+
const index = addressList.findIndex(addr => addr === address) || 0
183+
keyring.setCurrentAccount(index)
184+
const accounts = [...addressList]
185+
accounts.unshift(accounts.splice(index, 1)[0])
186+
addressList = accounts
179187
}
180188

181189
function getPrimaryAddress() {
@@ -192,12 +200,14 @@ async function keystoneProvider(options: {
192200
return []
193201
}
194202

195-
if (keyring.getAccounts().length > 0 && !getMore) {
196-
return keyring.getAccounts()
203+
if (addressList.length > 0 && !getMore) {
204+
return addressList
197205
}
198206

199207
try {
200208
addressList = await keyring.addAccounts(keyring.getAccounts().length + 5)
209+
const currentPrimary = getPrimaryAddress()
210+
setPrimaryAccount(currentPrimary)
201211
} catch (error) {
202212
throw error
203213
}
@@ -279,6 +289,24 @@ async function keystoneProvider(options: {
279289
}
280290
}
281291

292+
async function signTypedMessage({ data }: { data: any }) {
293+
if (addressList.length === 0) {
294+
await enable()
295+
}
296+
297+
try {
298+
if (typeof data === 'string') {
299+
return keyring.signTypedData(getPrimaryAddress(), JSON.parse(data))
300+
}
301+
if (typeof data === 'object') {
302+
return keyring.signTypedData(getPrimaryAddress(), data)
303+
}
304+
throw new Error('invalid typed data')
305+
} catch (err) {
306+
throw err
307+
}
308+
}
309+
282310
return provider
283311
}
284312

yarn.lock

Lines changed: 78 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1740,10 +1740,10 @@
17401740
google-protobuf "^3.7.0-rc.2"
17411741
pbjs "^0.0.5"
17421742

1743-
"@keystonehq/bc-ur-registry-eth@^0.6.3":
1744-
version "0.6.3"
1745-
resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry-eth/-/bc-ur-registry-eth-0.6.3.tgz#0b96ac698d262910207e4718e7e1a96a6786142a"
1746-
integrity sha512-Ywo4nsL5Y+AUgsoiZbcCu/XoipmFk+aPLOweXWg+J0necWJZxDBNCvk73zU6XxljGddGW/psXzpcaAxn9uPZlQ==
1743+
"@keystonehq/bc-ur-registry-eth@^0.6.8":
1744+
version "0.6.8"
1745+
resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry-eth/-/bc-ur-registry-eth-0.6.8.tgz#1cbb661a25a27f3b0d68ad0644883c2521b4bbc1"
1746+
integrity sha512-JluftBw7BbK2v/Lv3j9nwr5QWqXnDbIGB/7FLKwrniKpMCihbA/Lpr0lK6vOqo2+7bReJ7yXMm2LOaXSEdQ+hw==
17471747
dependencies:
17481748
"@keystonehq/bc-ur-registry" "^0.4.4"
17491749
ethereumjs-util "^7.0.8"
@@ -1759,23 +1759,23 @@
17591759
base58check "^2.0.0"
17601760
tslib "^2.3.0"
17611761

1762-
"@keystonehq/eth-keyring@0.7.2":
1763-
version "0.7.2"
1764-
resolved "https://registry.yarnpkg.com/@keystonehq/eth-keyring/-/eth-keyring-0.7.2.tgz#07eb88fdb3085aa7066e881244f691b0e3ecf02d"
1765-
integrity sha512-YFgLGu2y/NdyM12/kSwx6ZqSNTjWkC//bh3LW0L1lzbzzRqYRjfzJW6HGG20lL6K+DpxkuMFlo67KYPAoxm3sg==
1762+
"@keystonehq/eth-keyring@0.7.7":
1763+
version "0.7.7"
1764+
resolved "https://registry.yarnpkg.com/@keystonehq/eth-keyring/-/eth-keyring-0.7.7.tgz#c22612e40dbf45fee875c09bf0ee332b3d580cb0"
1765+
integrity sha512-BAfiUKu7vc8GlUpA+ZUA4nVOXGFx3CyO3sOrRdv5/wtTLE0SbcOYSQKrYUop2ERHbhcOilGOtuJfu/vwkOk1cA==
17661766
dependencies:
17671767
"@ethereumjs/tx" "3.0.0"
1768-
"@keystonehq/bc-ur-registry-eth" "^0.6.3"
1769-
"@keystonehq/sdk" "^0.7.3"
1768+
"@keystonehq/bc-ur-registry-eth" "^0.6.8"
1769+
"@keystonehq/sdk" "^0.7.8"
17701770
bs58check "^2.1.2"
17711771
ethereumjs-util "^7.0.8"
17721772
hdkey "^2.0.1"
17731773
uuid "^8.3.2"
17741774

1775-
"@keystonehq/sdk@^0.7.3":
1776-
version "0.7.3"
1777-
resolved "https://registry.yarnpkg.com/@keystonehq/sdk/-/sdk-0.7.3.tgz#d1860742f715bde1609031ec1a7ec0e76b85711b"
1778-
integrity sha512-JaGykgGFvQJfMQhZG5iFTB1/YueHNbTCUaF6CM/rxaP7o08npuNZCrAKZWUwdUxrqaQijMO1H9GFvtd+voRGkg==
1775+
"@keystonehq/sdk@^0.7.8":
1776+
version "0.7.8"
1777+
resolved "https://registry.yarnpkg.com/@keystonehq/sdk/-/sdk-0.7.8.tgz#1d808c4c59bd7a58d29c3f7fb2df10beb38a4c3f"
1778+
integrity sha512-WlrKftKYsdNopKqMwP+FZRFX2VBfkUC0T3NeaNg9f8RsFokeYXqYd/E4TSbv1dYY9R+jAvRqSzz44g5H2RPIlg==
17791779
dependencies:
17801780
"@ngraveio/bc-ur" "^1.0.0"
17811781
"@types/qrcode.react" "^1.0.1"
@@ -2224,35 +2224,35 @@
22242224
semver "^7.3.2"
22252225
tsutils "^3.17.1"
22262226

2227-
"@walletconnect/browser-utils@^1.5.2":
2228-
version "1.5.2"
2229-
resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.5.2.tgz#6fe7fad96328f156b052e196a5399277d0f6ebc6"
2230-
integrity sha512-nP7ktHwYmvHfXIbq7lGPoig8nO7HYi2dWE8UDxBlgNMs4mvzm2jyN6cm0JZ4xh5gO90/gQwbyuU33zLcZGUPhw==
2227+
"@walletconnect/browser-utils@^1.5.4":
2228+
version "1.5.4"
2229+
resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.5.4.tgz#7f23d3bca0d1e9b64f59b3847f9fc83434547253"
2230+
integrity sha512-09yRcfQRQiDpwf6JY57UQOzFfSOunszcSFDFekV+hz8VdShdKmq02w0hp5c4i9T0dAX+eCHNUtOun+jN6CPIDw==
22312231
dependencies:
22322232
"@walletconnect/safe-json" "1.0.0"
2233-
"@walletconnect/types" "^1.5.2"
2233+
"@walletconnect/types" "^1.5.4"
22342234
"@walletconnect/window-getters" "1.0.0"
22352235
"@walletconnect/window-metadata" "1.0.0"
22362236
detect-browser "5.2.0"
22372237

2238-
"@walletconnect/client@^1.5.2":
2239-
version "1.5.2"
2240-
resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.5.2.tgz#6be8f04b274e116f9c53a4e55fc4fe24a0424a3b"
2241-
integrity sha512-dAMK4zqNBZ88YpUQxTMt3RCS2ThTwecPmlq3MK76liLwrsGYRfnQ104GHZGI93rZEdcDWX04p5e3NsCXWMXcNw==
2238+
"@walletconnect/client@^1.5.4":
2239+
version "1.5.4"
2240+
resolved "https://registry.yarnpkg.com/@walletconnect/client/-/client-1.5.4.tgz#ee5db6876d83272ab8d6cdf61bd409aa10e40212"
2241+
integrity sha512-NGslp4HfSBC/pf6QNpH49RQKW0IznqzR4Ooarr23yEcyO8XzOZDfra+Y7mKQkarXAN2O1HHBY3h3VF/C0mlwCw==
22422242
dependencies:
2243-
"@walletconnect/core" "^1.5.2"
2244-
"@walletconnect/iso-crypto" "^1.5.2"
2245-
"@walletconnect/types" "^1.5.2"
2246-
"@walletconnect/utils" "^1.5.2"
2243+
"@walletconnect/core" "^1.5.4"
2244+
"@walletconnect/iso-crypto" "^1.5.4"
2245+
"@walletconnect/types" "^1.5.4"
2246+
"@walletconnect/utils" "^1.5.4"
22472247

2248-
"@walletconnect/core@^1.5.2":
2249-
version "1.5.2"
2250-
resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.5.2.tgz#a4ddb150444d9607d0f9f43577f6783d1dc17c92"
2251-
integrity sha512-uzrIbjzSHdPPeFSqwPYhp/VhyJKUODDc0STt+5R1A2orE1nh9Rb6XqSkBfLkOlf8pdKUObI95Lr0LH9TbSzF/A==
2248+
"@walletconnect/core@^1.5.4":
2249+
version "1.5.4"
2250+
resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-1.5.4.tgz#bde2e95583f1a6112d03f27d6709a124e8efca35"
2251+
integrity sha512-jJWKA4fnrjcWaOK/d4ct130Ic8Ycf0ZSgaNMm/9Uh+t6CAFJmY2M3WTUf3UagGZ3+7vAGJwMYVR7NN4k86mfqg==
22522252
dependencies:
2253-
"@walletconnect/socket-transport" "^1.5.2"
2254-
"@walletconnect/types" "^1.5.2"
2255-
"@walletconnect/utils" "^1.5.2"
2253+
"@walletconnect/socket-transport" "^1.5.4"
2254+
"@walletconnect/types" "^1.5.4"
2255+
"@walletconnect/utils" "^1.5.4"
22562256

22572257
"@walletconnect/crypto@^1.0.1":
22582258
version "1.0.1"
@@ -2278,24 +2278,24 @@
22782278
resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.0.tgz#c4545869fa9c389ec88c364e1a5f8178e8ab5034"
22792279
integrity sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ==
22802280

2281-
"@walletconnect/http-connection@^1.5.2":
2282-
version "1.5.2"
2283-
resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.5.2.tgz#586c7af9c00c1c7ab0bed160753a8fd680f052f5"
2284-
integrity sha512-drBwFzCHb+A/YAvMYGHs9DglL4NHQn079/dJzJPOC4kG9DA9WPw24CSeOUrqbP+370NwnaHbYtg4cbDgJQRy6g==
2281+
"@walletconnect/http-connection@^1.5.4":
2282+
version "1.5.4"
2283+
resolved "https://registry.yarnpkg.com/@walletconnect/http-connection/-/http-connection-1.5.4.tgz#9671ef1aa165b71e5ff2b13e8b6f356a261b7b02"
2284+
integrity sha512-xiCiQzw4W4nuTQNqDuM/4Dwtf3/wX5CsGbR56RmUUgbxs4WRN7w4W3pXyogOX77zGGk3AUHxWEawppYNIq7sgQ==
22852285
dependencies:
2286-
"@walletconnect/types" "^1.5.2"
2287-
"@walletconnect/utils" "^1.5.2"
2286+
"@walletconnect/types" "^1.5.4"
2287+
"@walletconnect/utils" "^1.5.4"
22882288
eventemitter3 "4.0.7"
22892289
xhr2-cookies "1.1.0"
22902290

2291-
"@walletconnect/iso-crypto@^1.5.2":
2292-
version "1.5.2"
2293-
resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.5.2.tgz#70f08ff58b22de14d9967fa55bfb9f6bf0c6b513"
2294-
integrity sha512-tRd0+AfmOy0nwCqLx7oR3DyrsahgoyOAm/KqKzKu2eawnfG4dSaluUa/PxMjoC5r93K+ka7qmCq4k4m53qYiog==
2291+
"@walletconnect/iso-crypto@^1.5.4":
2292+
version "1.5.4"
2293+
resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.5.4.tgz#59c4bbf7337cf1868cb204b14c7dccee4b37c307"
2294+
integrity sha512-mwYyuPzWEvjkVi5DkgAu6aTjf2KMPmlXaIrqBPvGVeuhFrlxf3pYOjunBoxHm/Lnm9a9FQPwkGf6s9DQEl2r1A==
22952295
dependencies:
22962296
"@walletconnect/crypto" "^1.0.1"
2297-
"@walletconnect/types" "^1.5.2"
2298-
"@walletconnect/utils" "^1.5.2"
2297+
"@walletconnect/types" "^1.5.4"
2298+
"@walletconnect/utils" "^1.5.4"
22992299

23002300
"@walletconnect/jsonrpc-types@^1.0.0":
23012301
version "1.0.0"
@@ -2317,14 +2317,14 @@
23172317
resolved "https://registry.yarnpkg.com/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz#502cf8ab87330841d794819081e748ebdef7aee5"
23182318
integrity sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw==
23192319

2320-
"@walletconnect/qrcode-modal@^1.5.2":
2321-
version "1.5.2"
2322-
resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.5.2.tgz#3fbe7f6e390eb3c0654337e88d5c0663d747209f"
2323-
integrity sha512-ciWh7kfZQ4qX+YYfF6+qVqw1Z0kyITGnzH7K2jEIxgCI5jsKeKoMcIfucSGIODGrM7OWshB/oA19UFTRdj4GFg==
2320+
"@walletconnect/qrcode-modal@^1.5.4":
2321+
version "1.5.4"
2322+
resolved "https://registry.yarnpkg.com/@walletconnect/qrcode-modal/-/qrcode-modal-1.5.4.tgz#a6efdb19dac6f7fe53e1a778ffb7de0838f29dd5"
2323+
integrity sha512-8i/2ruMSHsWvkg7xOgSJSty/iMPiZ5MFdC8XxqxebdvYUDPB5/nyDihQFExpqBxeKk2QAOqtav3/38HbBinoLA==
23242324
dependencies:
2325-
"@walletconnect/browser-utils" "^1.5.2"
2325+
"@walletconnect/browser-utils" "^1.5.4"
23262326
"@walletconnect/mobile-registry" "^1.4.0"
2327-
"@walletconnect/types" "^1.5.2"
2327+
"@walletconnect/types" "^1.5.4"
23282328
copy-to-clipboard "^3.3.1"
23292329
preact "10.4.1"
23302330
qrcode "1.4.4"
@@ -2343,43 +2343,43 @@
23432343
resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2"
23442344
integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg==
23452345

2346-
"@walletconnect/socket-transport@^1.5.2":
2347-
version "1.5.2"
2348-
resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.5.2.tgz#ceca07c8adb07de090d5a14090399d40ea23a114"
2349-
integrity sha512-eXafL2STkPocpYo0lDTpsQFIQ5ggCw78dXri9kqNhiSwRdLpjswGxt745V37enOXuFumz18MRXp3Og8yc+HIFQ==
2346+
"@walletconnect/socket-transport@^1.5.4":
2347+
version "1.5.4"
2348+
resolved "https://registry.yarnpkg.com/@walletconnect/socket-transport/-/socket-transport-1.5.4.tgz#ac52fa1940036950418c9f2e702e861a9993afaf"
2349+
integrity sha512-9xPpN2QvRc8i65wIaDEiFLPWdgKY/S+0ba5zSTqKAyjQVWPBH+/wr4xcoOF1lLdMKanFiyEpH1z25+6ndp7cAw==
23502350
dependencies:
2351-
"@walletconnect/types" "^1.5.2"
2352-
"@walletconnect/utils" "^1.5.2"
2351+
"@walletconnect/types" "^1.5.4"
2352+
"@walletconnect/utils" "^1.5.4"
23532353
ws "7.3.0"
23542354

2355-
"@walletconnect/types@^1.5.2":
2356-
version "1.5.2"
2357-
resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.5.2.tgz#f9f35a58c0229ee002272f289cf4deb6b57e2e48"
2358-
integrity sha512-ygUIqrn+IyANuA3OKLX2GzVB18zUvoRTWX0llKeM0unSlrF7oEs8m5+H5NHLB9sDs00Jae7Eb+JvUaGa/VKIPw==
2355+
"@walletconnect/types@^1.5.4":
2356+
version "1.5.4"
2357+
resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-1.5.4.tgz#2dc6240b8779c0e5ad5b086a32c9d59bb8d488ed"
2358+
integrity sha512-K3XQA5y2dfVfLObjrj4YPVcqxw3qZVpUan/UvsuC0e06vP+Gk6J6u2Xs196Or9/gLDSu05S/R69SukuWEtaHNA==
23592359

2360-
"@walletconnect/utils@^1.5.2":
2361-
version "1.5.2"
2362-
resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.5.2.tgz#27911856f8d75e9aa07149d82750d2e5865a44fe"
2363-
integrity sha512-3m7Ty7oe/jb2NbYj7IAli+cyqlpg4XZG1xGrzCcQEEG6bkijCyc4qd51amimyh38wPsXp+kq7C4I+WAPBd9TkA==
2360+
"@walletconnect/utils@^1.5.4":
2361+
version "1.5.4"
2362+
resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-1.5.4.tgz#9fdf57169bca8006625e53e8acdb08346fa4746b"
2363+
integrity sha512-M/Wbm+kuaAo4dmfNY3UHsXnLpW0XpnoMChKlmPO56SqN0xK0GEUn4UGWxKTsR9WuhMcqajbjOnsI5m9PzIfMoQ==
23642364
dependencies:
2365-
"@walletconnect/browser-utils" "^1.5.2"
2365+
"@walletconnect/browser-utils" "^1.5.4"
23662366
"@walletconnect/encoding" "^1.0.0"
23672367
"@walletconnect/jsonrpc-utils" "^1.0.0"
2368-
"@walletconnect/types" "^1.5.2"
2368+
"@walletconnect/types" "^1.5.4"
23692369
bn.js "4.11.8"
23702370
js-sha3 "0.8.0"
23712371
query-string "6.13.5"
23722372

2373-
"@walletconnect/web3-provider@1.5.2":
2374-
version "1.5.2"
2375-
resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.5.2.tgz#87f946ad5ab287ba4f76bb5ac2396b0604a30d53"
2376-
integrity sha512-y60fAgobe4SwlVZYU0JQFHD8K3kXLCanGV+j998necBFppY3Ki+0szyROc08ok+PWpC1RbvFbRPibMrfHjnF6g==
2377-
dependencies:
2378-
"@walletconnect/client" "^1.5.2"
2379-
"@walletconnect/http-connection" "^1.5.2"
2380-
"@walletconnect/qrcode-modal" "^1.5.2"
2381-
"@walletconnect/types" "^1.5.2"
2382-
"@walletconnect/utils" "^1.5.2"
2373+
"@walletconnect/web3-provider@^1.5.2":
2374+
version "1.5.4"
2375+
resolved "https://registry.yarnpkg.com/@walletconnect/web3-provider/-/web3-provider-1.5.4.tgz#f99bea54b237e884fa7d06fc822e0140300f0059"
2376+
integrity sha512-ArHHo5fscwG75YTlmvks+8GGgyDqA/mvFab1D/7EZzPPh/guJB6bjpn5db59g6eudyi+VybTRcNGnPSJVZGJvQ==
2377+
dependencies:
2378+
"@walletconnect/client" "^1.5.4"
2379+
"@walletconnect/http-connection" "^1.5.4"
2380+
"@walletconnect/qrcode-modal" "^1.5.4"
2381+
"@walletconnect/types" "^1.5.4"
2382+
"@walletconnect/utils" "^1.5.4"
23832383
web3-provider-engine "16.0.1"
23842384

23852385
"@walletconnect/window-getters@1.0.0", "@walletconnect/window-getters@^1.0.0":

0 commit comments

Comments
 (0)