@0xsequence/provider 0.36.5 → 0.36.6
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.
- package/dist/0xsequence-provider.cjs.dev.js +37 -7
- package/dist/0xsequence-provider.cjs.prod.js +37 -7
- package/dist/0xsequence-provider.esm.js +37 -7
- package/package.json +8 -8
- package/src/transports/mux-transport/mux-message-provider.ts +4 -0
- package/src/transports/wallet-request-handler.ts +16 -0
- package/src/wallet.ts +9 -0
|
@@ -796,6 +796,25 @@ class WalletRequestHandler {
|
|
|
796
796
|
response.result = gasPrice.toHexString();
|
|
797
797
|
break;
|
|
798
798
|
}
|
|
799
|
+
|
|
800
|
+
case 'wallet_switchEthereumChain':
|
|
801
|
+
{
|
|
802
|
+
const [switchParams] = request.params;
|
|
803
|
+
|
|
804
|
+
if (!switchParams.chainId || switchParams.chainId.length === 0) {
|
|
805
|
+
throw new Error('invalid chainId');
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
const _chainId = ethers.ethers.BigNumber.from(switchParams.chainId);
|
|
809
|
+
|
|
810
|
+
const ok = await _this.setDefaultNetwork(_chainId.toString(), true);
|
|
811
|
+
|
|
812
|
+
if (!ok) {
|
|
813
|
+
throw new Error(`unable to set chainId ${_chainId}`);
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
response.result = null; // success
|
|
817
|
+
}
|
|
799
818
|
// smart wallet method
|
|
800
819
|
|
|
801
820
|
case 'sequence_getWalletContext':
|
|
@@ -807,16 +826,16 @@ class WalletRequestHandler {
|
|
|
807
826
|
|
|
808
827
|
case 'sequence_getWalletConfig':
|
|
809
828
|
{
|
|
810
|
-
const [
|
|
811
|
-
response.result = await signer.getWalletConfig(
|
|
829
|
+
const [_chainId2] = request.params;
|
|
830
|
+
response.result = await signer.getWalletConfig(_chainId2);
|
|
812
831
|
break;
|
|
813
832
|
}
|
|
814
833
|
// smart wallet method
|
|
815
834
|
|
|
816
835
|
case 'sequence_getWalletState':
|
|
817
836
|
{
|
|
818
|
-
const [
|
|
819
|
-
response.result = await signer.getWalletState(
|
|
837
|
+
const [_chainId3] = request.params;
|
|
838
|
+
response.result = await signer.getWalletState(_chainId3);
|
|
820
839
|
break;
|
|
821
840
|
}
|
|
822
841
|
// smart wallet method
|
|
@@ -2431,7 +2450,11 @@ class MuxMessageProvider {
|
|
|
2431
2450
|
this.provider = this.messageProviders[0];
|
|
2432
2451
|
this.provider.register();
|
|
2433
2452
|
return;
|
|
2434
|
-
}
|
|
2453
|
+
} // REVIEW/NOTE: ........ this method does not work for the chrome-extension. The issue becomes
|
|
2454
|
+
// when the browser quits or restarts, the "open" event is never triggered. Perhaps the code here is fine,
|
|
2455
|
+
// or maybe its not. What should happen is when a dapp makes a request, it will call openWallet
|
|
2456
|
+
// below, in which case one of the events will register. So perhaps this is fine.
|
|
2457
|
+
|
|
2435
2458
|
|
|
2436
2459
|
this.messageProviders.forEach(m => {
|
|
2437
2460
|
m.register();
|
|
@@ -3195,8 +3218,15 @@ class Wallet {
|
|
|
3195
3218
|
}
|
|
3196
3219
|
|
|
3197
3220
|
if ((_this$config$transpor5 = this.config.transports) != null && (_this$config$transpor6 = _this$config$transpor5.extensionTransport) != null && _this$config$transpor6.enabled) {
|
|
3198
|
-
this.transport.extensionMessageProvider = new ExtensionMessageProvider(this.config.transports.extensionTransport.runtime);
|
|
3199
|
-
|
|
3221
|
+
this.transport.extensionMessageProvider = new ExtensionMessageProvider(this.config.transports.extensionTransport.runtime); // this.transport.extensionMessageProvider.register()
|
|
3222
|
+
|
|
3223
|
+
this.transport.messageProvider.add(this.transport.extensionMessageProvider); // NOTE/REVIEW: see note in mux-message-provider
|
|
3224
|
+
//
|
|
3225
|
+
// We don't add the extensionMessageProvider here because we don't send requests to it anyways, we seem to
|
|
3226
|
+
// send all requests to the WindowMessageProvider anyways. By allowing it, if browser restarts, it will break
|
|
3227
|
+
// the entire extension because messageProvider.provider will be undefined. So this is a hack to fix it.
|
|
3228
|
+
//
|
|
3229
|
+
// this.transport.messageProvider.add(this.transport.extensionMessageProvider)
|
|
3200
3230
|
}
|
|
3201
3231
|
|
|
3202
3232
|
this.transport.messageProvider.register(); // .....
|
|
@@ -796,6 +796,25 @@ class WalletRequestHandler {
|
|
|
796
796
|
response.result = gasPrice.toHexString();
|
|
797
797
|
break;
|
|
798
798
|
}
|
|
799
|
+
|
|
800
|
+
case 'wallet_switchEthereumChain':
|
|
801
|
+
{
|
|
802
|
+
const [switchParams] = request.params;
|
|
803
|
+
|
|
804
|
+
if (!switchParams.chainId || switchParams.chainId.length === 0) {
|
|
805
|
+
throw new Error('invalid chainId');
|
|
806
|
+
}
|
|
807
|
+
|
|
808
|
+
const _chainId = ethers.ethers.BigNumber.from(switchParams.chainId);
|
|
809
|
+
|
|
810
|
+
const ok = await _this.setDefaultNetwork(_chainId.toString(), true);
|
|
811
|
+
|
|
812
|
+
if (!ok) {
|
|
813
|
+
throw new Error(`unable to set chainId ${_chainId}`);
|
|
814
|
+
}
|
|
815
|
+
|
|
816
|
+
response.result = null; // success
|
|
817
|
+
}
|
|
799
818
|
// smart wallet method
|
|
800
819
|
|
|
801
820
|
case 'sequence_getWalletContext':
|
|
@@ -807,16 +826,16 @@ class WalletRequestHandler {
|
|
|
807
826
|
|
|
808
827
|
case 'sequence_getWalletConfig':
|
|
809
828
|
{
|
|
810
|
-
const [
|
|
811
|
-
response.result = await signer.getWalletConfig(
|
|
829
|
+
const [_chainId2] = request.params;
|
|
830
|
+
response.result = await signer.getWalletConfig(_chainId2);
|
|
812
831
|
break;
|
|
813
832
|
}
|
|
814
833
|
// smart wallet method
|
|
815
834
|
|
|
816
835
|
case 'sequence_getWalletState':
|
|
817
836
|
{
|
|
818
|
-
const [
|
|
819
|
-
response.result = await signer.getWalletState(
|
|
837
|
+
const [_chainId3] = request.params;
|
|
838
|
+
response.result = await signer.getWalletState(_chainId3);
|
|
820
839
|
break;
|
|
821
840
|
}
|
|
822
841
|
// smart wallet method
|
|
@@ -2431,7 +2450,11 @@ class MuxMessageProvider {
|
|
|
2431
2450
|
this.provider = this.messageProviders[0];
|
|
2432
2451
|
this.provider.register();
|
|
2433
2452
|
return;
|
|
2434
|
-
}
|
|
2453
|
+
} // REVIEW/NOTE: ........ this method does not work for the chrome-extension. The issue becomes
|
|
2454
|
+
// when the browser quits or restarts, the "open" event is never triggered. Perhaps the code here is fine,
|
|
2455
|
+
// or maybe its not. What should happen is when a dapp makes a request, it will call openWallet
|
|
2456
|
+
// below, in which case one of the events will register. So perhaps this is fine.
|
|
2457
|
+
|
|
2435
2458
|
|
|
2436
2459
|
this.messageProviders.forEach(m => {
|
|
2437
2460
|
m.register();
|
|
@@ -3195,8 +3218,15 @@ class Wallet {
|
|
|
3195
3218
|
}
|
|
3196
3219
|
|
|
3197
3220
|
if ((_this$config$transpor5 = this.config.transports) != null && (_this$config$transpor6 = _this$config$transpor5.extensionTransport) != null && _this$config$transpor6.enabled) {
|
|
3198
|
-
this.transport.extensionMessageProvider = new ExtensionMessageProvider(this.config.transports.extensionTransport.runtime);
|
|
3199
|
-
|
|
3221
|
+
this.transport.extensionMessageProvider = new ExtensionMessageProvider(this.config.transports.extensionTransport.runtime); // this.transport.extensionMessageProvider.register()
|
|
3222
|
+
|
|
3223
|
+
this.transport.messageProvider.add(this.transport.extensionMessageProvider); // NOTE/REVIEW: see note in mux-message-provider
|
|
3224
|
+
//
|
|
3225
|
+
// We don't add the extensionMessageProvider here because we don't send requests to it anyways, we seem to
|
|
3226
|
+
// send all requests to the WindowMessageProvider anyways. By allowing it, if browser restarts, it will break
|
|
3227
|
+
// the entire extension because messageProvider.provider will be undefined. So this is a hack to fix it.
|
|
3228
|
+
//
|
|
3229
|
+
// this.transport.messageProvider.add(this.transport.extensionMessageProvider)
|
|
3200
3230
|
}
|
|
3201
3231
|
|
|
3202
3232
|
this.transport.messageProvider.register(); // .....
|
|
@@ -792,6 +792,25 @@ class WalletRequestHandler {
|
|
|
792
792
|
response.result = gasPrice.toHexString();
|
|
793
793
|
break;
|
|
794
794
|
}
|
|
795
|
+
|
|
796
|
+
case 'wallet_switchEthereumChain':
|
|
797
|
+
{
|
|
798
|
+
const [switchParams] = request.params;
|
|
799
|
+
|
|
800
|
+
if (!switchParams.chainId || switchParams.chainId.length === 0) {
|
|
801
|
+
throw new Error('invalid chainId');
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
const _chainId = ethers.BigNumber.from(switchParams.chainId);
|
|
805
|
+
|
|
806
|
+
const ok = await _this.setDefaultNetwork(_chainId.toString(), true);
|
|
807
|
+
|
|
808
|
+
if (!ok) {
|
|
809
|
+
throw new Error(`unable to set chainId ${_chainId}`);
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
response.result = null; // success
|
|
813
|
+
}
|
|
795
814
|
// smart wallet method
|
|
796
815
|
|
|
797
816
|
case 'sequence_getWalletContext':
|
|
@@ -803,16 +822,16 @@ class WalletRequestHandler {
|
|
|
803
822
|
|
|
804
823
|
case 'sequence_getWalletConfig':
|
|
805
824
|
{
|
|
806
|
-
const [
|
|
807
|
-
response.result = await signer.getWalletConfig(
|
|
825
|
+
const [_chainId2] = request.params;
|
|
826
|
+
response.result = await signer.getWalletConfig(_chainId2);
|
|
808
827
|
break;
|
|
809
828
|
}
|
|
810
829
|
// smart wallet method
|
|
811
830
|
|
|
812
831
|
case 'sequence_getWalletState':
|
|
813
832
|
{
|
|
814
|
-
const [
|
|
815
|
-
response.result = await signer.getWalletState(
|
|
833
|
+
const [_chainId3] = request.params;
|
|
834
|
+
response.result = await signer.getWalletState(_chainId3);
|
|
816
835
|
break;
|
|
817
836
|
}
|
|
818
837
|
// smart wallet method
|
|
@@ -2427,7 +2446,11 @@ class MuxMessageProvider {
|
|
|
2427
2446
|
this.provider = this.messageProviders[0];
|
|
2428
2447
|
this.provider.register();
|
|
2429
2448
|
return;
|
|
2430
|
-
}
|
|
2449
|
+
} // REVIEW/NOTE: ........ this method does not work for the chrome-extension. The issue becomes
|
|
2450
|
+
// when the browser quits or restarts, the "open" event is never triggered. Perhaps the code here is fine,
|
|
2451
|
+
// or maybe its not. What should happen is when a dapp makes a request, it will call openWallet
|
|
2452
|
+
// below, in which case one of the events will register. So perhaps this is fine.
|
|
2453
|
+
|
|
2431
2454
|
|
|
2432
2455
|
this.messageProviders.forEach(m => {
|
|
2433
2456
|
m.register();
|
|
@@ -3191,8 +3214,15 @@ class Wallet {
|
|
|
3191
3214
|
}
|
|
3192
3215
|
|
|
3193
3216
|
if ((_this$config$transpor5 = this.config.transports) != null && (_this$config$transpor6 = _this$config$transpor5.extensionTransport) != null && _this$config$transpor6.enabled) {
|
|
3194
|
-
this.transport.extensionMessageProvider = new ExtensionMessageProvider(this.config.transports.extensionTransport.runtime);
|
|
3195
|
-
|
|
3217
|
+
this.transport.extensionMessageProvider = new ExtensionMessageProvider(this.config.transports.extensionTransport.runtime); // this.transport.extensionMessageProvider.register()
|
|
3218
|
+
|
|
3219
|
+
this.transport.messageProvider.add(this.transport.extensionMessageProvider); // NOTE/REVIEW: see note in mux-message-provider
|
|
3220
|
+
//
|
|
3221
|
+
// We don't add the extensionMessageProvider here because we don't send requests to it anyways, we seem to
|
|
3222
|
+
// send all requests to the WindowMessageProvider anyways. By allowing it, if browser restarts, it will break
|
|
3223
|
+
// the entire extension because messageProvider.provider will be undefined. So this is a hack to fix it.
|
|
3224
|
+
//
|
|
3225
|
+
// this.transport.messageProvider.add(this.transport.extensionMessageProvider)
|
|
3196
3226
|
}
|
|
3197
3227
|
|
|
3198
3228
|
this.transport.messageProvider.register(); // .....
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@0xsequence/provider",
|
|
3
|
-
"version": "0.36.
|
|
3
|
+
"version": "0.36.6",
|
|
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",
|
|
@@ -13,13 +13,13 @@
|
|
|
13
13
|
"typecheck": "tsc --noEmit"
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
|
-
"@0xsequence/abi": "^0.36.
|
|
17
|
-
"@0xsequence/auth": "^0.36.
|
|
18
|
-
"@0xsequence/config": "^0.36.
|
|
19
|
-
"@0xsequence/network": "^0.36.
|
|
20
|
-
"@0xsequence/transactions": "^0.36.
|
|
21
|
-
"@0xsequence/utils": "^0.36.
|
|
22
|
-
"@0xsequence/wallet": "^0.36.
|
|
16
|
+
"@0xsequence/abi": "^0.36.6",
|
|
17
|
+
"@0xsequence/auth": "^0.36.6",
|
|
18
|
+
"@0xsequence/config": "^0.36.6",
|
|
19
|
+
"@0xsequence/network": "^0.36.6",
|
|
20
|
+
"@0xsequence/transactions": "^0.36.6",
|
|
21
|
+
"@0xsequence/utils": "^0.36.6",
|
|
22
|
+
"@0xsequence/wallet": "^0.36.6",
|
|
23
23
|
"@ethersproject/abstract-signer": "^5.5.0",
|
|
24
24
|
"@ethersproject/hash": "^5.5.0",
|
|
25
25
|
"@ethersproject/providers": "^5.5.1",
|
|
@@ -26,6 +26,10 @@ export class MuxMessageProvider implements ProviderTransport {
|
|
|
26
26
|
return
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
+
// REVIEW/NOTE: ........ this method does not work for the chrome-extension. The issue becomes
|
|
30
|
+
// when the browser quits or restarts, the "open" event is never triggered. Perhaps the code here is fine,
|
|
31
|
+
// or maybe its not. What should happen is when a dapp makes a request, it will call openWallet
|
|
32
|
+
// below, in which case one of the events will register. So perhaps this is fine.
|
|
29
33
|
this.messageProviders.forEach(m => {
|
|
30
34
|
m.register()
|
|
31
35
|
|
|
@@ -488,6 +488,22 @@ export class WalletRequestHandler implements ExternalProvider, JsonRpcHandler, P
|
|
|
488
488
|
break
|
|
489
489
|
}
|
|
490
490
|
|
|
491
|
+
case 'wallet_switchEthereumChain': {
|
|
492
|
+
const [switchParams] = request.params!
|
|
493
|
+
if (!switchParams.chainId || switchParams.chainId.length === 0) {
|
|
494
|
+
throw new Error('invalid chainId')
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
const chainId = ethers.BigNumber.from(switchParams.chainId)
|
|
498
|
+
|
|
499
|
+
const ok = await this.setDefaultNetwork(chainId.toString(), true)
|
|
500
|
+
if (!ok) {
|
|
501
|
+
throw new Error(`unable to set chainId ${chainId}`)
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
response.result = null // success
|
|
505
|
+
}
|
|
506
|
+
|
|
491
507
|
// smart wallet method
|
|
492
508
|
case 'sequence_getWalletContext': {
|
|
493
509
|
response.result = await signer.getWalletContext()
|
package/src/wallet.ts
CHANGED
|
@@ -141,7 +141,16 @@ export class Wallet implements WalletProvider {
|
|
|
141
141
|
}
|
|
142
142
|
if (this.config.transports?.extensionTransport?.enabled) {
|
|
143
143
|
this.transport.extensionMessageProvider = new ExtensionMessageProvider(this.config.transports.extensionTransport.runtime)
|
|
144
|
+
// this.transport.extensionMessageProvider.register()
|
|
144
145
|
this.transport.messageProvider.add(this.transport.extensionMessageProvider)
|
|
146
|
+
|
|
147
|
+
// NOTE/REVIEW: see note in mux-message-provider
|
|
148
|
+
//
|
|
149
|
+
// We don't add the extensionMessageProvider here because we don't send requests to it anyways, we seem to
|
|
150
|
+
// send all requests to the WindowMessageProvider anyways. By allowing it, if browser restarts, it will break
|
|
151
|
+
// the entire extension because messageProvider.provider will be undefined. So this is a hack to fix it.
|
|
152
|
+
//
|
|
153
|
+
// this.transport.messageProvider.add(this.transport.extensionMessageProvider)
|
|
145
154
|
}
|
|
146
155
|
this.transport.messageProvider.register()
|
|
147
156
|
|