tempo.ts 0.7.5 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/chains.d.ts +6 -20
  3. package/dist/chains.d.ts.map +1 -1
  4. package/dist/chains.js +14 -15
  5. package/dist/chains.js.map +1 -1
  6. package/dist/ox/KeyAuthorization.d.ts +356 -0
  7. package/dist/ox/KeyAuthorization.d.ts.map +1 -0
  8. package/dist/ox/KeyAuthorization.js +360 -0
  9. package/dist/ox/KeyAuthorization.js.map +1 -0
  10. package/dist/ox/SignatureEnvelope.d.ts +21 -6
  11. package/dist/ox/SignatureEnvelope.d.ts.map +1 -1
  12. package/dist/ox/SignatureEnvelope.js +43 -3
  13. package/dist/ox/SignatureEnvelope.js.map +1 -1
  14. package/dist/ox/Transaction.d.ts +5 -1
  15. package/dist/ox/Transaction.d.ts.map +1 -1
  16. package/dist/ox/Transaction.js +5 -0
  17. package/dist/ox/Transaction.js.map +1 -1
  18. package/dist/ox/TransactionEnvelopeAA.d.ts +9 -0
  19. package/dist/ox/TransactionEnvelopeAA.d.ts.map +1 -1
  20. package/dist/ox/TransactionEnvelopeAA.js +17 -4
  21. package/dist/ox/TransactionEnvelopeAA.js.map +1 -1
  22. package/dist/ox/TransactionRequest.d.ts +7 -1
  23. package/dist/ox/TransactionRequest.d.ts.map +1 -1
  24. package/dist/ox/TransactionRequest.js +12 -0
  25. package/dist/ox/TransactionRequest.js.map +1 -1
  26. package/dist/ox/index.d.ts +1 -0
  27. package/dist/ox/index.d.ts.map +1 -1
  28. package/dist/ox/index.js +1 -0
  29. package/dist/ox/index.js.map +1 -1
  30. package/dist/prool/Instance.js +1 -1
  31. package/dist/prool/Instance.js.map +1 -1
  32. package/{src/prool/internal → dist/prool}/chain.json +4 -2
  33. package/dist/viem/Abis.d.ts +319 -6
  34. package/dist/viem/Abis.d.ts.map +1 -1
  35. package/dist/viem/Abis.js +199 -7
  36. package/dist/viem/Abis.js.map +1 -1
  37. package/dist/viem/Account.d.ts +103 -14
  38. package/dist/viem/Account.d.ts.map +1 -1
  39. package/dist/viem/Account.js +177 -23
  40. package/dist/viem/Account.js.map +1 -1
  41. package/dist/viem/Actions/account.d.ts.map +1 -1
  42. package/dist/viem/Actions/account.js +4 -5
  43. package/dist/viem/Actions/account.js.map +1 -1
  44. package/dist/viem/Actions/amm.d.ts +84 -32
  45. package/dist/viem/Actions/amm.d.ts.map +1 -1
  46. package/dist/viem/Actions/amm.js +12 -32
  47. package/dist/viem/Actions/amm.js.map +1 -1
  48. package/dist/viem/Actions/dex.d.ts +156 -4
  49. package/dist/viem/Actions/dex.d.ts.map +1 -1
  50. package/dist/viem/Actions/fee.d.ts +4 -0
  51. package/dist/viem/Actions/fee.d.ts.map +1 -1
  52. package/dist/viem/Actions/reward.d.ts +78 -0
  53. package/dist/viem/Actions/reward.d.ts.map +1 -1
  54. package/dist/viem/Actions/token.d.ts +585 -0
  55. package/dist/viem/Actions/token.d.ts.map +1 -1
  56. package/dist/viem/Actions/token.js +2 -2
  57. package/dist/viem/Actions/token.js.map +1 -1
  58. package/dist/viem/Addresses.d.ts +1 -1
  59. package/dist/viem/Addresses.d.ts.map +1 -1
  60. package/dist/viem/Addresses.js +1 -1
  61. package/dist/viem/Addresses.js.map +1 -1
  62. package/dist/viem/Chain.d.ts +35 -0
  63. package/dist/viem/Chain.d.ts.map +1 -1
  64. package/dist/viem/Chain.js +37 -0
  65. package/dist/viem/Chain.js.map +1 -1
  66. package/dist/viem/Decorator.d.ts +193 -16
  67. package/dist/viem/Decorator.d.ts.map +1 -1
  68. package/dist/viem/Decorator.js +7 -0
  69. package/dist/viem/Decorator.js.map +1 -1
  70. package/dist/viem/Formatters.d.ts.map +1 -1
  71. package/dist/viem/Formatters.js +8 -7
  72. package/dist/viem/Formatters.js.map +1 -1
  73. package/dist/viem/Storage.d.ts +1 -0
  74. package/dist/viem/Storage.d.ts.map +1 -1
  75. package/dist/viem/Storage.js +21 -0
  76. package/dist/viem/Storage.js.map +1 -1
  77. package/dist/viem/TokenIds.d.ts +1 -1
  78. package/dist/viem/TokenIds.d.ts.map +1 -1
  79. package/dist/viem/TokenIds.js +1 -1
  80. package/dist/viem/TokenIds.js.map +1 -1
  81. package/dist/viem/Transaction.d.ts +9 -1
  82. package/dist/viem/Transaction.d.ts.map +1 -1
  83. package/dist/viem/Transaction.js +2 -1
  84. package/dist/viem/Transaction.js.map +1 -1
  85. package/dist/viem/WebAuthnP256.d.ts +4 -1
  86. package/dist/viem/WebAuthnP256.d.ts.map +1 -1
  87. package/dist/viem/WebAuthnP256.js +3 -1
  88. package/dist/viem/WebAuthnP256.js.map +1 -1
  89. package/dist/wagmi/Actions/amm.d.ts +6 -16
  90. package/dist/wagmi/Actions/amm.d.ts.map +1 -1
  91. package/dist/wagmi/Actions/amm.js +6 -16
  92. package/dist/wagmi/Actions/amm.js.map +1 -1
  93. package/dist/wagmi/Connector.d.ts +25 -8
  94. package/dist/wagmi/Connector.d.ts.map +1 -1
  95. package/dist/wagmi/Connector.js +120 -27
  96. package/dist/wagmi/Connector.js.map +1 -1
  97. package/dist/wagmi/Hooks/amm.d.ts +6 -16
  98. package/dist/wagmi/Hooks/amm.d.ts.map +1 -1
  99. package/dist/wagmi/Hooks/amm.js +6 -16
  100. package/dist/wagmi/Hooks/amm.js.map +1 -1
  101. package/package.json +3 -2
  102. package/src/chains.ts +14 -15
  103. package/src/ox/KeyAuthorization.test.ts +1332 -0
  104. package/src/ox/KeyAuthorization.ts +542 -0
  105. package/src/ox/SignatureEnvelope.test.ts +624 -0
  106. package/src/ox/SignatureEnvelope.ts +89 -9
  107. package/src/ox/Transaction.test.ts +214 -0
  108. package/src/ox/Transaction.ts +13 -1
  109. package/src/ox/TransactionEnvelopeAA.test.ts +164 -4
  110. package/src/ox/TransactionEnvelopeAA.ts +36 -3
  111. package/src/ox/TransactionRequest.ts +22 -1
  112. package/src/ox/e2e.test.ts +612 -5
  113. package/src/ox/index.ts +1 -0
  114. package/src/prool/Instance.ts +1 -1
  115. package/src/prool/chain.json +238 -0
  116. package/src/server/Handler.test.ts +20 -36
  117. package/src/viem/Abis.ts +200 -7
  118. package/src/viem/Account.test.ts +444 -0
  119. package/src/viem/Account.ts +355 -42
  120. package/src/viem/Actions/account.ts +3 -5
  121. package/src/viem/Actions/amm.test.ts +220 -1
  122. package/src/viem/Actions/amm.ts +12 -32
  123. package/src/viem/Actions/token.test.ts +8 -8
  124. package/src/viem/Actions/token.ts +2 -2
  125. package/src/viem/Addresses.ts +1 -1
  126. package/src/viem/Chain.test.ts +168 -0
  127. package/src/viem/Chain.ts +37 -1
  128. package/src/viem/Decorator.ts +214 -16
  129. package/src/viem/Formatters.ts +8 -7
  130. package/src/viem/Storage.ts +22 -0
  131. package/src/viem/TokenIds.ts +1 -1
  132. package/src/viem/Transaction.ts +14 -2
  133. package/src/viem/WebAuthnP256.ts +8 -2
  134. package/src/viem/e2e.test.ts +299 -96
  135. package/src/wagmi/Actions/amm.test.ts +93 -2
  136. package/src/wagmi/Actions/amm.ts +6 -16
  137. package/src/wagmi/Connector.test.ts +1 -1
  138. package/src/wagmi/Connector.ts +184 -54
  139. package/src/wagmi/Hooks/amm.test.ts +335 -0
  140. package/src/wagmi/Hooks/amm.ts +6 -16
  141. package/src/wagmi/Hooks/fee.test.ts +10 -4
  142. package/src/wagmi/Hooks/token.test.ts +0 -488
  143. package/dist/viem/internal/account.d.ts +0 -21
  144. package/dist/viem/internal/account.d.ts.map +0 -1
  145. package/dist/viem/internal/account.js +0 -61
  146. package/dist/viem/internal/account.js.map +0 -1
  147. package/src/viem/internal/account.ts +0 -89
@@ -165,6 +165,246 @@ describe('useMintSync', () => {
165
165
  })
166
166
  })
167
167
 
168
+ describe.skip('useBurnSync', () => {
169
+ test('default', async () => {
170
+ const { result } = await renderHook(() => ({
171
+ connect: useConnect(),
172
+ createSync: tokenHooks.useCreateSync(),
173
+ grantRolesSync: tokenHooks.useGrantRolesSync(),
174
+ mintTokenSync: tokenHooks.useMintSync(),
175
+ mintSync: hooks.useMintSync(),
176
+ burnSync: hooks.useBurnSync(),
177
+ transferSync: tokenHooks.useTransferSync(),
178
+ getLiquidityBalance: hooks.useLiquidityBalance,
179
+ }))
180
+
181
+ await result.current.connect.connectAsync({
182
+ connector: config.connectors[0]!,
183
+ })
184
+
185
+ // Create a new token for testing
186
+ const { token } = await result.current.createSync.mutateAsync({
187
+ name: 'Test Token 5',
188
+ symbol: 'TEST5',
189
+ currency: 'USD',
190
+ })
191
+
192
+ // Grant issuer role to mint tokens
193
+ await result.current.grantRolesSync.mutateAsync({
194
+ token,
195
+ roles: ['issuer'],
196
+ to: account.address,
197
+ })
198
+
199
+ // Mint some tokens to account
200
+ await result.current.mintTokenSync.mutateAsync({
201
+ to: account.address,
202
+ amount: parseUnits('1000', 6),
203
+ token,
204
+ })
205
+
206
+ // Add liquidity to pool
207
+ await result.current.mintSync.mutateAsync({
208
+ userTokenAddress: token,
209
+ validatorTokenAddress: addresses.alphaUsd,
210
+ validatorTokenAmount: parseUnits('100', 6),
211
+ to: account.address,
212
+ })
213
+
214
+ // TODO(TEMPO-1183): Remove this janky fix to get some user token in the pool
215
+ await result.current.transferSync.mutateAsync({
216
+ to: '0x30D861999070Ae03B9548501DBd573E11A9f59Ee',
217
+ amount: 600n,
218
+ token: token,
219
+ feeToken: token,
220
+ })
221
+
222
+ // Get LP balance before burn
223
+ const { result: balanceResult } = await renderHook(() =>
224
+ result.current.getLiquidityBalance({
225
+ userToken: token,
226
+ validatorToken: addresses.alphaUsd,
227
+ address: account.address,
228
+ }),
229
+ )
230
+
231
+ await vi.waitFor(() => expect(balanceResult.current.isSuccess).toBeTruthy())
232
+
233
+ const lpBalanceBefore = balanceResult.current.data!
234
+
235
+ // Burn half of LP tokens
236
+ const data = await result.current.burnSync.mutateAsync({
237
+ userToken: token,
238
+ validatorToken: addresses.alphaUsd,
239
+ liquidity: lpBalanceBefore / 2n,
240
+ to: account.address,
241
+ })
242
+
243
+ await vi.waitFor(() =>
244
+ expect(result.current.burnSync.isSuccess).toBeTruthy(),
245
+ )
246
+
247
+ expect(data.receipt).toBeDefined()
248
+ expect(data.liquidity).toBe(lpBalanceBefore / 2n)
249
+ })
250
+ })
251
+
252
+ describe.skip('useRebalanceSwapSync', () => {
253
+ test('default', async () => {
254
+ const { result } = await renderHook(() => ({
255
+ connect: useConnect(),
256
+ createSync: tokenHooks.useCreateSync(),
257
+ grantRolesSync: tokenHooks.useGrantRolesSync(),
258
+ mintTokenSync: tokenHooks.useMintSync(),
259
+ mintSync: hooks.useMintSync(),
260
+ transferSync: tokenHooks.useTransferSync(),
261
+ rebalanceSwapSync: hooks.useRebalanceSwapSync(),
262
+ }))
263
+
264
+ await result.current.connect.connectAsync({
265
+ connector: config.connectors[0]!,
266
+ })
267
+
268
+ // Create a new token for testing
269
+ const { token } = await result.current.createSync.mutateAsync({
270
+ name: 'Test Token 6',
271
+ symbol: 'TEST6',
272
+ currency: 'USD',
273
+ })
274
+
275
+ // Grant issuer role to mint tokens
276
+ await result.current.grantRolesSync.mutateAsync({
277
+ token,
278
+ roles: ['issuer'],
279
+ to: account.address,
280
+ })
281
+
282
+ // Mint some tokens to account
283
+ await result.current.mintTokenSync.mutateAsync({
284
+ to: account.address,
285
+ amount: parseUnits('1000', 6),
286
+ token,
287
+ })
288
+
289
+ // Add liquidity to pool
290
+ await result.current.mintSync.mutateAsync({
291
+ userTokenAddress: token,
292
+ validatorTokenAddress: addresses.alphaUsd,
293
+ validatorTokenAmount: parseUnits('100', 6),
294
+ to: account.address,
295
+ })
296
+
297
+ // TODO(TEMPO-1183): Remove this janky fix to get some user token in the pool
298
+ await result.current.transferSync.mutateAsync({
299
+ to: '0x30D861999070Ae03B9548501DBd573E11A9f59Ee',
300
+ amount: 600n,
301
+ token: token,
302
+ feeToken: token,
303
+ })
304
+
305
+ const account2 = accounts[1]
306
+
307
+ // Perform rebalance swap
308
+ const data = await result.current.rebalanceSwapSync.mutateAsync({
309
+ userToken: token,
310
+ validatorToken: addresses.alphaUsd,
311
+ amountOut: 100n,
312
+ to: account2.address,
313
+ })
314
+
315
+ await vi.waitFor(() =>
316
+ expect(result.current.rebalanceSwapSync.isSuccess).toBeTruthy(),
317
+ )
318
+
319
+ expect(data.receipt).toBeDefined()
320
+ expect(data.amountOut).toBe(100n)
321
+ expect(data.swapper).toBe(account.address)
322
+ })
323
+ })
324
+
325
+ describe.skip('useWatchRebalanceSwap', () => {
326
+ test('default', async () => {
327
+ const { result: connectResult } = await renderHook(() => ({
328
+ connect: useConnect(),
329
+ createSync: tokenHooks.useCreateSync(),
330
+ grantRolesSync: tokenHooks.useGrantRolesSync(),
331
+ mintTokenSync: tokenHooks.useMintSync(),
332
+ mintSync: hooks.useMintSync(),
333
+ transferSync: tokenHooks.useTransferSync(),
334
+ rebalanceSwapSync: hooks.useRebalanceSwapSync(),
335
+ }))
336
+
337
+ await connectResult.current.connect.connectAsync({
338
+ connector: config.connectors[0]!,
339
+ })
340
+
341
+ // Create a new token for testing
342
+ const { token } = await connectResult.current.createSync.mutateAsync({
343
+ name: 'Test Token 3',
344
+ symbol: 'TEST3',
345
+ currency: 'USD',
346
+ })
347
+
348
+ // Grant issuer role to mint tokens
349
+ await connectResult.current.grantRolesSync.mutateAsync({
350
+ token,
351
+ roles: ['issuer'],
352
+ to: account.address,
353
+ })
354
+
355
+ // Mint some tokens to account
356
+ await connectResult.current.mintTokenSync.mutateAsync({
357
+ to: account.address,
358
+ amount: parseUnits('1000', 6),
359
+ token,
360
+ })
361
+
362
+ // Add liquidity to pool
363
+ await connectResult.current.mintSync.mutateAsync({
364
+ userTokenAddress: token,
365
+ validatorTokenAddress: addresses.alphaUsd,
366
+ validatorTokenAmount: parseUnits('100', 6),
367
+ to: account.address,
368
+ })
369
+
370
+ // TODO(TEMPO-1183): Remove this janky fix to get some user token in the pool
371
+ await connectResult.current.transferSync.mutateAsync({
372
+ to: '0x30D861999070Ae03B9548501DBd573E11A9f59Ee',
373
+ amount: 600n,
374
+ token: token,
375
+ feeToken: token,
376
+ })
377
+
378
+ const events: any[] = []
379
+ await renderHook(() =>
380
+ hooks.useWatchRebalanceSwap({
381
+ onRebalanceSwap(args) {
382
+ events.push(args)
383
+ },
384
+ }),
385
+ )
386
+
387
+ const account2 = accounts[1]
388
+
389
+ // Perform rebalance swap
390
+ await connectResult.current.rebalanceSwapSync.mutateAsync({
391
+ userToken: token,
392
+ validatorToken: addresses.alphaUsd,
393
+ amountOut: 100n,
394
+ to: account2.address,
395
+ })
396
+
397
+ await vi.waitUntil(() => events.length >= 1)
398
+
399
+ expect(events.length).toBeGreaterThanOrEqual(1)
400
+ expect(events[0]?.userToken.toLowerCase()).toBe(token.toLowerCase())
401
+ expect(events[0]?.validatorToken.toLowerCase()).toBe(
402
+ addresses.alphaUsd.toLowerCase(),
403
+ )
404
+ expect(events[0]?.amountOut).toBe(100n)
405
+ })
406
+ })
407
+
168
408
  describe('useWatchMint', () => {
169
409
  test('default', async () => {
170
410
  const { result: connectResult } = await renderHook(() => ({
@@ -227,3 +467,98 @@ describe('useWatchMint', () => {
227
467
  expect(events[0]?.validatorToken.amount).toBe(parseUnits('100', 6))
228
468
  })
229
469
  })
470
+
471
+ describe.skip('useWatchBurn', () => {
472
+ test('default', async () => {
473
+ const { result: connectResult } = await renderHook(() => ({
474
+ connect: useConnect(),
475
+ createSync: tokenHooks.useCreateSync(),
476
+ grantRolesSync: tokenHooks.useGrantRolesSync(),
477
+ mintTokenSync: tokenHooks.useMintSync(),
478
+ mintSync: hooks.useMintSync(),
479
+ burnSync: hooks.useBurnSync(),
480
+ transferSync: tokenHooks.useTransferSync(),
481
+ getLiquidityBalance: hooks.useLiquidityBalance,
482
+ }))
483
+
484
+ await connectResult.current.connect.connectAsync({
485
+ connector: config.connectors[0]!,
486
+ })
487
+
488
+ // Create a new token for testing
489
+ const { token } = await connectResult.current.createSync.mutateAsync({
490
+ name: 'Test Token 4',
491
+ symbol: 'TEST4',
492
+ currency: 'USD',
493
+ })
494
+
495
+ // Grant issuer role to mint tokens
496
+ await connectResult.current.grantRolesSync.mutateAsync({
497
+ token,
498
+ roles: ['issuer'],
499
+ to: account.address,
500
+ })
501
+
502
+ // Mint some tokens to account
503
+ await connectResult.current.mintTokenSync.mutateAsync({
504
+ to: account.address,
505
+ amount: parseUnits('1000', 6),
506
+ token,
507
+ })
508
+
509
+ // Add liquidity to pool
510
+ await connectResult.current.mintSync.mutateAsync({
511
+ userTokenAddress: token,
512
+ validatorTokenAddress: addresses.alphaUsd,
513
+ validatorTokenAmount: parseUnits('100', 6),
514
+ to: account.address,
515
+ })
516
+
517
+ // TODO(TEMPO-1183): Remove this janky fix to get some user token in the pool
518
+ await connectResult.current.transferSync.mutateAsync({
519
+ to: '0x30D861999070Ae03B9548501DBd573E11A9f59Ee',
520
+ amount: 600n,
521
+ token: token,
522
+ feeToken: token,
523
+ })
524
+
525
+ // Get LP balance
526
+ const { result: balanceResult } = await renderHook(() =>
527
+ connectResult.current.getLiquidityBalance({
528
+ userToken: token,
529
+ validatorToken: addresses.alphaUsd,
530
+ address: account.address,
531
+ }),
532
+ )
533
+
534
+ await vi.waitFor(() => expect(balanceResult.current.isSuccess).toBeTruthy())
535
+
536
+ const lpBalance = balanceResult.current.data!
537
+
538
+ const events: any[] = []
539
+ await renderHook(() =>
540
+ hooks.useWatchBurn({
541
+ onBurn(args) {
542
+ events.push(args)
543
+ },
544
+ }),
545
+ )
546
+
547
+ // Burn LP tokens
548
+ await connectResult.current.burnSync.mutateAsync({
549
+ userToken: token,
550
+ validatorToken: addresses.alphaUsd,
551
+ liquidity: lpBalance / 2n,
552
+ to: account.address,
553
+ })
554
+
555
+ await vi.waitUntil(() => events.length >= 1)
556
+
557
+ expect(events.length).toBeGreaterThanOrEqual(1)
558
+ expect(events[0]?.userToken.toLowerCase()).toBe(token.toLowerCase())
559
+ expect(events[0]?.validatorToken.toLowerCase()).toBe(
560
+ addresses.alphaUsd.toLowerCase(),
561
+ )
562
+ expect(events[0]?.liquidity).toBe(lpBalance / 2n)
563
+ })
564
+ })
@@ -319,14 +319,9 @@ export declare namespace useRebalanceSwapSync {
319
319
  * <button
320
320
  * onClick={() =>
321
321
  * mutate({
322
- * userToken: {
323
- * address: '0x20c0...beef',
324
- * amount: 100n,
325
- * },
326
- * validatorToken: {
327
- * address: '0x20c0...babe',
328
- * amount: 100n,
329
- * },
322
+ * userTokenAddress: '0x20c0...beef',
323
+ * validatorTokenAddress: '0x20c0...babe',
324
+ * validatorTokenAmount: 100n,
330
325
  * to: '0xfeed...fede',
331
326
  * })
332
327
  * }
@@ -401,14 +396,9 @@ export declare namespace useMint {
401
396
  * <button
402
397
  * onClick={() =>
403
398
  * mutate({
404
- * userToken: {
405
- * address: '0x20c0...beef',
406
- * amount: 100n,
407
- * },
408
- * validatorToken: {
409
- * address: '0x20c0...babe',
410
- * amount: 100n,
411
- * },
399
+ * userTokenAddress: '0x20c0...beef',
400
+ * validatorTokenAddress: '0x20c0...babe',
401
+ * validatorTokenAmount: 100n,
412
402
  * to: '0xfeed...fede',
413
403
  * })
414
404
  * }
@@ -100,15 +100,21 @@ describe('useUserToken', () => {
100
100
  {
101
101
  "account": {
102
102
  "address": "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266",
103
- "getHdKey": [Function],
104
- "nonceManager": undefined,
105
- "publicKey": "0x048318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5",
103
+ "assignKeyAuthorization": [Function],
104
+ "keyType": "secp256k1",
105
+ "publicKey": "0x8318535b54105d4a7aae60c08fc45f9687181b4fdfc625bd1a753fa7397fed753547f11ca8696646f2f3acb08e31016afac23e630c5d11f59f61fef57b0d2aa5",
106
106
  "sign": [Function],
107
107
  "signAuthorization": [Function],
108
+ "signKeyAuthorization": [Function],
108
109
  "signMessage": [Function],
109
110
  "signTransaction": [Function],
110
111
  "signTypedData": [Function],
111
- "source": "hd",
112
+ "source": "root",
113
+ "storage": {
114
+ "getItem": [Function],
115
+ "removeItem": [Function],
116
+ "setItem": [Function],
117
+ },
112
118
  "type": "local",
113
119
  },
114
120
  "chainId": 1337,