@0xsequence/provider 0.0.0-20240829183049 → 0.0.0-20240903183150

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.
@@ -1461,7 +1461,7 @@ class UnrealMessageProvider extends BaseProviderTransport {
1461
1461
  // all lowercase is an annoying limitation of Unreal CEF BindUObject
1462
1462
  sendMessage(message) {
1463
1463
  var _window$ue3;
1464
- const postedMessage = typeof message !== 'string' ? JSON.stringify(message, utils.bigintReplacer) : message;
1464
+ const postedMessage = typeof message !== 'string' ? JSON.stringify(message) : message;
1465
1465
  console.log('Sending message to wallet:', postedMessage);
1466
1466
  (_window$ue3 = window.ue) == null || (_window$ue3 = _window$ue3.sequencewallettransport) == null || _window$ue3.sendmessagetowallet(postedMessage);
1467
1467
  }
@@ -1560,7 +1560,7 @@ class UnrealMessageHandler extends BaseWalletTransport {
1560
1560
  return;
1561
1561
  }
1562
1562
  // prepare payload
1563
- const payload = JSON.stringify(message, utils.bigintReplacer);
1563
+ const payload = JSON.stringify(message);
1564
1564
 
1565
1565
  // post-message to app.
1566
1566
  (_window$ue3 = window.ue) == null || (_window$ue3 = _window$ue3.sequencewallettransport) == null || _window$ue3.sendmessagetosequencejs(payload);
@@ -1835,7 +1835,7 @@ class WindowMessageProvider extends BaseProviderTransport {
1835
1835
  }
1836
1836
  let message;
1837
1837
  try {
1838
- message = JSON.parse(event.data, utils.bigintReviver);
1838
+ message = JSON.parse(event.data);
1839
1839
  } catch (err) {
1840
1840
  // event is not a ProviderMessage JSON object, skip
1841
1841
  return;
@@ -1859,7 +1859,7 @@ class WindowMessageProvider extends BaseProviderTransport {
1859
1859
  utils.logger.warn('WindowMessageProvider: sendMessage failed as walletWindow is unavailable');
1860
1860
  return;
1861
1861
  }
1862
- const postedMessage = typeof message !== 'string' ? JSON.stringify(message, utils.bigintReplacer) : message;
1862
+ const postedMessage = typeof message !== 'string' ? JSON.stringify(message) : message;
1863
1863
  this.walletWindow.postMessage(postedMessage, this.walletURL.origin);
1864
1864
  }
1865
1865
  }
@@ -1886,7 +1886,13 @@ class WindowMessageHandler extends BaseWalletTransport {
1886
1886
  // Wallet always expects json-rpc request messages from a dapp
1887
1887
  let request;
1888
1888
  try {
1889
- request = JSON.parse(event.data, utils.bigintReviver);
1889
+ request = JSON.parse(event.data, (key, value) => {
1890
+ // BigNumber compatibility with older versions of sequence.js
1891
+ if (isBigNumberSerialized(value)) {
1892
+ return BigInt(value.hex);
1893
+ }
1894
+ return value;
1895
+ });
1890
1896
  } catch (err) {
1891
1897
  // event is not a ProviderMessage JSON object, skip
1892
1898
  return;
@@ -1976,7 +1982,7 @@ class WindowMessageHandler extends BaseWalletTransport {
1976
1982
  // postMessage sends message to the dapp window
1977
1983
  sendMessage(message) {
1978
1984
  // prepare payload
1979
- const payload = JSON.stringify(message, utils.bigintReplacer);
1985
+ const payload = JSON.stringify(message);
1980
1986
 
1981
1987
  // post-message to app.
1982
1988
  // only for init requests, we send to '*' origin
@@ -2008,6 +2014,9 @@ class WindowMessageHandler extends BaseWalletTransport {
2008
2014
  }
2009
2015
  }
2010
2016
  }
2017
+ const isBigNumberSerialized = value => {
2018
+ return typeof value === 'object' && value.type === 'BigNumber' && ethers.ethers.isHexString(value.hex);
2019
+ };
2011
2020
 
2012
2021
  function isMuxTransportTemplate(obj) {
2013
2022
  return obj && typeof obj === 'object' && (obj.windowTransport && typeof obj.windowTransport === 'object' || obj.proxyTransport && typeof obj.proxyTransport === 'object' || obj.extensionTransport && typeof obj.extensionTransport === 'object' || obj.unrealTransport && typeof obj.unrealTransport === 'object') && (
@@ -1461,7 +1461,7 @@ class UnrealMessageProvider extends BaseProviderTransport {
1461
1461
  // all lowercase is an annoying limitation of Unreal CEF BindUObject
1462
1462
  sendMessage(message) {
1463
1463
  var _window$ue3;
1464
- const postedMessage = typeof message !== 'string' ? JSON.stringify(message, utils.bigintReplacer) : message;
1464
+ const postedMessage = typeof message !== 'string' ? JSON.stringify(message) : message;
1465
1465
  console.log('Sending message to wallet:', postedMessage);
1466
1466
  (_window$ue3 = window.ue) == null || (_window$ue3 = _window$ue3.sequencewallettransport) == null || _window$ue3.sendmessagetowallet(postedMessage);
1467
1467
  }
@@ -1560,7 +1560,7 @@ class UnrealMessageHandler extends BaseWalletTransport {
1560
1560
  return;
1561
1561
  }
1562
1562
  // prepare payload
1563
- const payload = JSON.stringify(message, utils.bigintReplacer);
1563
+ const payload = JSON.stringify(message);
1564
1564
 
1565
1565
  // post-message to app.
1566
1566
  (_window$ue3 = window.ue) == null || (_window$ue3 = _window$ue3.sequencewallettransport) == null || _window$ue3.sendmessagetosequencejs(payload);
@@ -1835,7 +1835,7 @@ class WindowMessageProvider extends BaseProviderTransport {
1835
1835
  }
1836
1836
  let message;
1837
1837
  try {
1838
- message = JSON.parse(event.data, utils.bigintReviver);
1838
+ message = JSON.parse(event.data);
1839
1839
  } catch (err) {
1840
1840
  // event is not a ProviderMessage JSON object, skip
1841
1841
  return;
@@ -1859,7 +1859,7 @@ class WindowMessageProvider extends BaseProviderTransport {
1859
1859
  utils.logger.warn('WindowMessageProvider: sendMessage failed as walletWindow is unavailable');
1860
1860
  return;
1861
1861
  }
1862
- const postedMessage = typeof message !== 'string' ? JSON.stringify(message, utils.bigintReplacer) : message;
1862
+ const postedMessage = typeof message !== 'string' ? JSON.stringify(message) : message;
1863
1863
  this.walletWindow.postMessage(postedMessage, this.walletURL.origin);
1864
1864
  }
1865
1865
  }
@@ -1886,7 +1886,13 @@ class WindowMessageHandler extends BaseWalletTransport {
1886
1886
  // Wallet always expects json-rpc request messages from a dapp
1887
1887
  let request;
1888
1888
  try {
1889
- request = JSON.parse(event.data, utils.bigintReviver);
1889
+ request = JSON.parse(event.data, (key, value) => {
1890
+ // BigNumber compatibility with older versions of sequence.js
1891
+ if (isBigNumberSerialized(value)) {
1892
+ return BigInt(value.hex);
1893
+ }
1894
+ return value;
1895
+ });
1890
1896
  } catch (err) {
1891
1897
  // event is not a ProviderMessage JSON object, skip
1892
1898
  return;
@@ -1976,7 +1982,7 @@ class WindowMessageHandler extends BaseWalletTransport {
1976
1982
  // postMessage sends message to the dapp window
1977
1983
  sendMessage(message) {
1978
1984
  // prepare payload
1979
- const payload = JSON.stringify(message, utils.bigintReplacer);
1985
+ const payload = JSON.stringify(message);
1980
1986
 
1981
1987
  // post-message to app.
1982
1988
  // only for init requests, we send to '*' origin
@@ -2008,6 +2014,9 @@ class WindowMessageHandler extends BaseWalletTransport {
2008
2014
  }
2009
2015
  }
2010
2016
  }
2017
+ const isBigNumberSerialized = value => {
2018
+ return typeof value === 'object' && value.type === 'BigNumber' && ethers.ethers.isHexString(value.hex);
2019
+ };
2011
2020
 
2012
2021
  function isMuxTransportTemplate(obj) {
2013
2022
  return obj && typeof obj === 'object' && (obj.windowTransport && typeof obj.windowTransport === 'object' || obj.proxyTransport && typeof obj.proxyTransport === 'object' || obj.extensionTransport && typeof obj.extensionTransport === 'object' || obj.unrealTransport && typeof obj.unrealTransport === 'object') && (
@@ -2,7 +2,7 @@ import { walletContracts } from '@0xsequence/abi';
2
2
  import { commons, VERSION } from '@0xsequence/core';
3
3
  import { ethers } from 'ethers';
4
4
  import { EventEmitter2 } from 'eventemitter2';
5
- import { logger, encodeMessageDigest, encodeTypedDataDigest, sanitizeNumberString, sanitizeHost, sanitizeAlphanumeric, base64EncodeObject, bigintReplacer, base64DecodeObject, bigintReviver, toHexString } from '@0xsequence/utils';
5
+ import { logger, encodeMessageDigest, encodeTypedDataDigest, sanitizeNumberString, sanitizeHost, sanitizeAlphanumeric, base64EncodeObject, base64DecodeObject, toHexString } from '@0xsequence/utils';
6
6
  import { findSupportedNetwork, ChainId, findNetworkConfig, allNetworks, JsonRpcProvider, loggingProviderMiddleware, exceptionProviderMiddleware, CachedProvider } from '@0xsequence/network';
7
7
  import { signAuthorization } from '@0xsequence/auth';
8
8
  import { isBrowser, Databeat } from '@databeat/tracker';
@@ -1457,7 +1457,7 @@ class UnrealMessageProvider extends BaseProviderTransport {
1457
1457
  // all lowercase is an annoying limitation of Unreal CEF BindUObject
1458
1458
  sendMessage(message) {
1459
1459
  var _window$ue3;
1460
- const postedMessage = typeof message !== 'string' ? JSON.stringify(message, bigintReplacer) : message;
1460
+ const postedMessage = typeof message !== 'string' ? JSON.stringify(message) : message;
1461
1461
  console.log('Sending message to wallet:', postedMessage);
1462
1462
  (_window$ue3 = window.ue) == null || (_window$ue3 = _window$ue3.sequencewallettransport) == null || _window$ue3.sendmessagetowallet(postedMessage);
1463
1463
  }
@@ -1556,7 +1556,7 @@ class UnrealMessageHandler extends BaseWalletTransport {
1556
1556
  return;
1557
1557
  }
1558
1558
  // prepare payload
1559
- const payload = JSON.stringify(message, bigintReplacer);
1559
+ const payload = JSON.stringify(message);
1560
1560
 
1561
1561
  // post-message to app.
1562
1562
  (_window$ue3 = window.ue) == null || (_window$ue3 = _window$ue3.sequencewallettransport) == null || _window$ue3.sendmessagetosequencejs(payload);
@@ -1831,7 +1831,7 @@ class WindowMessageProvider extends BaseProviderTransport {
1831
1831
  }
1832
1832
  let message;
1833
1833
  try {
1834
- message = JSON.parse(event.data, bigintReviver);
1834
+ message = JSON.parse(event.data);
1835
1835
  } catch (err) {
1836
1836
  // event is not a ProviderMessage JSON object, skip
1837
1837
  return;
@@ -1855,7 +1855,7 @@ class WindowMessageProvider extends BaseProviderTransport {
1855
1855
  logger.warn('WindowMessageProvider: sendMessage failed as walletWindow is unavailable');
1856
1856
  return;
1857
1857
  }
1858
- const postedMessage = typeof message !== 'string' ? JSON.stringify(message, bigintReplacer) : message;
1858
+ const postedMessage = typeof message !== 'string' ? JSON.stringify(message) : message;
1859
1859
  this.walletWindow.postMessage(postedMessage, this.walletURL.origin);
1860
1860
  }
1861
1861
  }
@@ -1882,7 +1882,13 @@ class WindowMessageHandler extends BaseWalletTransport {
1882
1882
  // Wallet always expects json-rpc request messages from a dapp
1883
1883
  let request;
1884
1884
  try {
1885
- request = JSON.parse(event.data, bigintReviver);
1885
+ request = JSON.parse(event.data, (key, value) => {
1886
+ // BigNumber compatibility with older versions of sequence.js
1887
+ if (isBigNumberSerialized(value)) {
1888
+ return BigInt(value.hex);
1889
+ }
1890
+ return value;
1891
+ });
1886
1892
  } catch (err) {
1887
1893
  // event is not a ProviderMessage JSON object, skip
1888
1894
  return;
@@ -1972,7 +1978,7 @@ class WindowMessageHandler extends BaseWalletTransport {
1972
1978
  // postMessage sends message to the dapp window
1973
1979
  sendMessage(message) {
1974
1980
  // prepare payload
1975
- const payload = JSON.stringify(message, bigintReplacer);
1981
+ const payload = JSON.stringify(message);
1976
1982
 
1977
1983
  // post-message to app.
1978
1984
  // only for init requests, we send to '*' origin
@@ -2004,6 +2010,9 @@ class WindowMessageHandler extends BaseWalletTransport {
2004
2010
  }
2005
2011
  }
2006
2012
  }
2013
+ const isBigNumberSerialized = value => {
2014
+ return typeof value === 'object' && value.type === 'BigNumber' && ethers.isHexString(value.hex);
2015
+ };
2007
2016
 
2008
2017
  function isMuxTransportTemplate(obj) {
2009
2018
  return obj && typeof obj === 'object' && (obj.windowTransport && typeof obj.windowTransport === 'object' || obj.proxyTransport && typeof obj.proxyTransport === 'object' || obj.extensionTransport && typeof obj.extensionTransport === 'object' || obj.unrealTransport && typeof obj.unrealTransport === 'object') && (
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xsequence/provider",
3
- "version": "0.0.0-20240829183049",
3
+ "version": "0.0.0-20240903183150",
4
4
  "description": "provider sub-package for Sequence",
5
5
  "repository": "https://github.com/0xsequence/sequence.js/tree/master/packages/provider",
6
6
  "source": "src/index.ts",
@@ -12,15 +12,15 @@
12
12
  "@databeat/tracker": "^0.9.1",
13
13
  "eventemitter2": "^6.4.5",
14
14
  "webextension-polyfill": "^0.10.0",
15
- "@0xsequence/abi": "0.0.0-20240829183049",
16
- "@0xsequence/account": "0.0.0-20240829183049",
17
- "@0xsequence/auth": "0.0.0-20240829183049",
18
- "@0xsequence/core": "0.0.0-20240829183049",
19
- "@0xsequence/migration": "0.0.0-20240829183049",
20
- "@0xsequence/network": "0.0.0-20240829183049",
21
- "@0xsequence/relayer": "0.0.0-20240829183049",
22
- "@0xsequence/utils": "0.0.0-20240829183049",
23
- "@0xsequence/wallet": "0.0.0-20240829183049"
15
+ "@0xsequence/abi": "0.0.0-20240903183150",
16
+ "@0xsequence/account": "0.0.0-20240903183150",
17
+ "@0xsequence/auth": "0.0.0-20240903183150",
18
+ "@0xsequence/core": "0.0.0-20240903183150",
19
+ "@0xsequence/network": "0.0.0-20240903183150",
20
+ "@0xsequence/migration": "0.0.0-20240903183150",
21
+ "@0xsequence/relayer": "0.0.0-20240903183150",
22
+ "@0xsequence/utils": "0.0.0-20240903183150",
23
+ "@0xsequence/wallet": "0.0.0-20240903183150"
24
24
  },
25
25
  "peerDependencies": {
26
26
  "ethers": ">=6"
@@ -10,7 +10,7 @@ import {
10
10
  } from '../../types'
11
11
  import { WalletRequestHandler } from '../wallet-request-handler'
12
12
  import { BaseWalletTransport } from '../base-wallet-transport'
13
- import { logger, base64DecodeObject, bigintReplacer } from '@0xsequence/utils'
13
+ import { logger, base64DecodeObject } from '@0xsequence/utils'
14
14
  import { overrideLogs } from './overridelogs'
15
15
 
16
16
  // all lowercase is an annoying limitation of Unreal CEF BindUObject
@@ -104,7 +104,7 @@ export class UnrealMessageHandler extends BaseWalletTransport {
104
104
  return
105
105
  }
106
106
  // prepare payload
107
- const payload = JSON.stringify(message, bigintReplacer)
107
+ const payload = JSON.stringify(message)
108
108
 
109
109
  // post-message to app.
110
110
  window.ue?.sequencewallettransport?.sendmessagetosequencejs(payload)
@@ -1,6 +1,6 @@
1
1
  import { OpenWalletIntent, ProviderMessage, InitState, WindowSessionParams } from '../../types'
2
2
  import { BaseProviderTransport } from '../base-provider-transport'
3
- import { base64EncodeObject, bigintReplacer } from '@0xsequence/utils'
3
+ import { base64EncodeObject } from '@0xsequence/utils'
4
4
  import { overrideLogs } from './overridelogs'
5
5
 
6
6
  let registeredUnrealMessageProvider: UnrealMessageProvider | undefined
@@ -114,7 +114,7 @@ export class UnrealMessageProvider extends BaseProviderTransport {
114
114
 
115
115
  // all lowercase is an annoying limitation of Unreal CEF BindUObject
116
116
  sendMessage(message: ProviderMessage<unknown>) {
117
- const postedMessage = typeof message !== 'string' ? JSON.stringify(message, bigintReplacer) : message
117
+ const postedMessage = typeof message !== 'string' ? JSON.stringify(message) : message
118
118
  console.log('Sending message to wallet:', postedMessage)
119
119
  window.ue?.sequencewallettransport?.sendmessagetowallet(postedMessage)
120
120
  }
@@ -10,7 +10,7 @@ import {
10
10
  } from '../../types'
11
11
  import { WalletRequestHandler } from '../wallet-request-handler'
12
12
  import { BaseWalletTransport } from '../base-wallet-transport'
13
- import { logger, base64DecodeObject, bigintReviver, bigintReplacer } from '@0xsequence/utils'
13
+ import { logger, base64DecodeObject } from '@0xsequence/utils'
14
14
  import { ethers } from 'ethers'
15
15
 
16
16
  export class WindowMessageHandler extends BaseWalletTransport {
@@ -93,7 +93,14 @@ export class WindowMessageHandler extends BaseWalletTransport {
93
93
  // Wallet always expects json-rpc request messages from a dapp
94
94
  let request: ProviderMessageRequest
95
95
  try {
96
- request = JSON.parse(event.data, bigintReviver)
96
+ request = JSON.parse(event.data, (key, value) => {
97
+ // BigNumber compatibility with older versions of sequence.js
98
+ if (isBigNumberSerialized(value)) {
99
+ return BigInt(value.hex)
100
+ }
101
+
102
+ return value
103
+ })
97
104
  } catch (err) {
98
105
  // event is not a ProviderMessage JSON object, skip
99
106
  return
@@ -118,7 +125,7 @@ export class WindowMessageHandler extends BaseWalletTransport {
118
125
  // postMessage sends message to the dapp window
119
126
  sendMessage(message: ProviderMessage<any>) {
120
127
  // prepare payload
121
- const payload = JSON.stringify(message, bigintReplacer)
128
+ const payload = JSON.stringify(message)
122
129
 
123
130
  // post-message to app.
124
131
  // only for init requests, we send to '*' origin
@@ -162,3 +169,7 @@ export class WindowMessageHandler extends BaseWalletTransport {
162
169
  }
163
170
  }
164
171
  }
172
+
173
+ const isBigNumberSerialized = (value: any): boolean => {
174
+ return typeof value === 'object' && value.type === 'BigNumber' && ethers.isHexString(value.hex)
175
+ }
@@ -1,6 +1,6 @@
1
1
  import { OpenWalletIntent, ProviderMessage, InitState, WindowSessionParams } from '../../types'
2
2
  import { BaseProviderTransport } from '../base-provider-transport'
3
- import { logger, base64EncodeObject, bigintReplacer, bigintReviver } from '@0xsequence/utils'
3
+ import { logger, base64EncodeObject } from '@0xsequence/utils'
4
4
  import { isBrowserExtension, isUnityPlugin } from '../../utils'
5
5
 
6
6
  // ..
@@ -172,7 +172,7 @@ export class WindowMessageProvider extends BaseProviderTransport {
172
172
 
173
173
  let message: ProviderMessage<any>
174
174
  try {
175
- message = JSON.parse(event.data, bigintReviver)
175
+ message = JSON.parse(event.data)
176
176
  } catch (err) {
177
177
  // event is not a ProviderMessage JSON object, skip
178
178
  return
@@ -191,7 +191,7 @@ export class WindowMessageProvider extends BaseProviderTransport {
191
191
  logger.warn('WindowMessageProvider: sendMessage failed as walletWindow is unavailable')
192
192
  return
193
193
  }
194
- const postedMessage = typeof message !== 'string' ? JSON.stringify(message, bigintReplacer) : message
194
+ const postedMessage = typeof message !== 'string' ? JSON.stringify(message) : message
195
195
  this.walletWindow.postMessage(postedMessage, this.walletURL.origin)
196
196
  }
197
197
  }