@solana-mobile/mobile-wallet-adapter-protocol 2.2.4 → 2.2.5

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.
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var walletStandardUtil = require('@solana/wallet-standard-util');
6
+ var codecsStrings = require('@solana/codecs-strings');
6
7
 
7
8
  // Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/
8
9
  const SolanaMobileWalletAdapterErrorCode = {
@@ -74,7 +75,7 @@ function __awaiter(thisArg, _arguments, P, generator) {
74
75
  function encode(input) {
75
76
  return window.btoa(input);
76
77
  }
77
- function fromUint8Array(byteArray, urlsafe) {
78
+ function fromUint8Array$1(byteArray, urlsafe) {
78
79
  const base64 = window.btoa(String.fromCharCode.call(null, ...byteArray));
79
80
  if (urlsafe) {
80
81
  return base64
@@ -106,8 +107,11 @@ function createHelloReq(ecdhPublicKey, associationKeypairPrivateKey) {
106
107
  function createSIWSMessage(payload) {
107
108
  return walletStandardUtil.createSignInMessageText(payload);
108
109
  }
109
- function createSIWSMessageBase64(payload) {
110
- return encode(createSIWSMessage(payload));
110
+ function createSIWSMessageBase64Url(payload) {
111
+ return encode(createSIWSMessage(payload))
112
+ .replace(/\+/g, '-')
113
+ .replace(/\//g, '_')
114
+ .replace(/=+$/, ''); // convert to base64url encoding;
111
115
  }
112
116
 
113
117
  // optional features
@@ -115,6 +119,13 @@ const SolanaSignTransactions = 'solana:signTransactions';
115
119
  const SolanaCloneAuthorization = 'solana:cloneAuthorization';
116
120
  const SolanaSignInWithSolana = 'solana:signInWithSolana';
117
121
 
122
+ function fromUint8Array(byteArray) {
123
+ return codecsStrings.getBase58Decoder().decode(byteArray);
124
+ }
125
+ function base64ToBase58(base64EncodedString) {
126
+ return fromUint8Array(toUint8Array(base64EncodedString));
127
+ }
128
+
118
129
  /**
119
130
  * Creates a {@link MobileWallet} proxy that handles backwards compatibility and API to RPC conversion.
120
131
  *
@@ -261,15 +272,21 @@ function signInFallback(signInPayload, authorizationResult, protocolRequestHandl
261
272
  return __awaiter(this, void 0, void 0, function* () {
262
273
  const domain = (_a = signInPayload.domain) !== null && _a !== void 0 ? _a : window.location.host;
263
274
  const address = authorizationResult.accounts[0].address;
264
- const siwsMessage = createSIWSMessageBase64(Object.assign(Object.assign({}, signInPayload), { domain, address }));
275
+ const siwsMessage = createSIWSMessageBase64Url(Object.assign(Object.assign({}, signInPayload), { domain, address: base64ToBase58(address) }));
265
276
  const signMessageResult = yield protocolRequestHandler('sign_messages', {
266
277
  addresses: [address],
267
278
  payloads: [siwsMessage]
268
279
  });
280
+ const signedPayload = toUint8Array(signMessageResult.signed_payloads[0]);
281
+ const signedMessage = fromUint8Array$1(signedPayload.slice(0, signedPayload.length - 64));
282
+ const signature = fromUint8Array$1(signedPayload.slice(signedPayload.length - 64));
269
283
  const signInResult = {
270
284
  address: address,
271
- signed_message: siwsMessage,
272
- signature: signMessageResult.signed_payloads[0].slice(siwsMessage.length)
285
+ // Workaround: some wallets have been observed to only reply with the message signature.
286
+ // This is non-compliant with the spec, but in the interest of maximizing compatibility,
287
+ // detect this case and reuse the original message.
288
+ signed_message: signedMessage.length == 0 ? siwsMessage : signedMessage,
289
+ signature
273
290
  };
274
291
  return signInResult;
275
292
  });
@@ -422,7 +439,7 @@ function getRemoteAssociateAndroidIntentURL(associationPublicKey, hostAuthority,
422
439
  const url = getIntentURL('v1/associate/remote', associationURLBase);
423
440
  url.searchParams.set('association', getStringWithURLUnsafeCharactersReplaced(encodedKey));
424
441
  url.searchParams.set('reflector', `${hostAuthority}`);
425
- url.searchParams.set('id', `${fromUint8Array(reflectorId, true)}`);
442
+ url.searchParams.set('id', `${fromUint8Array$1(reflectorId, true)}`);
426
443
  protocolVersions.forEach((version) => {
427
444
  url.searchParams.set('v', version);
428
445
  });
@@ -953,7 +970,7 @@ function startRemoteScenario(config) {
953
970
  const ecdhKeypair = yield generateECDHKeypair();
954
971
  const binaryMsg = yield createHelloReq(ecdhKeypair.publicKey, associationKeypair.privateKey);
955
972
  if (encoding == 'base64') {
956
- socket.send(fromUint8Array(binaryMsg));
973
+ socket.send(fromUint8Array$1(binaryMsg));
957
974
  }
958
975
  else {
959
976
  socket.send(binaryMsg);
@@ -1011,7 +1028,7 @@ function startRemoteScenario(config) {
1011
1028
  params: params !== null && params !== void 0 ? params : {},
1012
1029
  }, sharedSecret);
1013
1030
  if (encoding == 'base64') {
1014
- socket.send(fromUint8Array(binaryMsg));
1031
+ socket.send(fromUint8Array$1(binaryMsg));
1015
1032
  }
1016
1033
  else {
1017
1034
  socket.send(binaryMsg);
package/lib/cjs/index.js CHANGED
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var walletStandardUtil = require('@solana/wallet-standard-util');
6
+ var codecsStrings = require('@solana/codecs-strings');
6
7
 
7
8
  // Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/
8
9
  const SolanaMobileWalletAdapterErrorCode = {
@@ -74,7 +75,7 @@ function __awaiter(thisArg, _arguments, P, generator) {
74
75
  function encode(input) {
75
76
  return window.btoa(input);
76
77
  }
77
- function fromUint8Array(byteArray, urlsafe) {
78
+ function fromUint8Array$1(byteArray, urlsafe) {
78
79
  const base64 = window.btoa(String.fromCharCode.call(null, ...byteArray));
79
80
  if (urlsafe) {
80
81
  return base64
@@ -106,8 +107,11 @@ function createHelloReq(ecdhPublicKey, associationKeypairPrivateKey) {
106
107
  function createSIWSMessage(payload) {
107
108
  return walletStandardUtil.createSignInMessageText(payload);
108
109
  }
109
- function createSIWSMessageBase64(payload) {
110
- return encode(createSIWSMessage(payload));
110
+ function createSIWSMessageBase64Url(payload) {
111
+ return encode(createSIWSMessage(payload))
112
+ .replace(/\+/g, '-')
113
+ .replace(/\//g, '_')
114
+ .replace(/=+$/, ''); // convert to base64url encoding;
111
115
  }
112
116
 
113
117
  // optional features
@@ -115,6 +119,13 @@ const SolanaSignTransactions = 'solana:signTransactions';
115
119
  const SolanaCloneAuthorization = 'solana:cloneAuthorization';
116
120
  const SolanaSignInWithSolana = 'solana:signInWithSolana';
117
121
 
122
+ function fromUint8Array(byteArray) {
123
+ return codecsStrings.getBase58Decoder().decode(byteArray);
124
+ }
125
+ function base64ToBase58(base64EncodedString) {
126
+ return fromUint8Array(toUint8Array(base64EncodedString));
127
+ }
128
+
118
129
  /**
119
130
  * Creates a {@link MobileWallet} proxy that handles backwards compatibility and API to RPC conversion.
120
131
  *
@@ -261,15 +272,21 @@ function signInFallback(signInPayload, authorizationResult, protocolRequestHandl
261
272
  return __awaiter(this, void 0, void 0, function* () {
262
273
  const domain = (_a = signInPayload.domain) !== null && _a !== void 0 ? _a : window.location.host;
263
274
  const address = authorizationResult.accounts[0].address;
264
- const siwsMessage = createSIWSMessageBase64(Object.assign(Object.assign({}, signInPayload), { domain, address }));
275
+ const siwsMessage = createSIWSMessageBase64Url(Object.assign(Object.assign({}, signInPayload), { domain, address: base64ToBase58(address) }));
265
276
  const signMessageResult = yield protocolRequestHandler('sign_messages', {
266
277
  addresses: [address],
267
278
  payloads: [siwsMessage]
268
279
  });
280
+ const signedPayload = toUint8Array(signMessageResult.signed_payloads[0]);
281
+ const signedMessage = fromUint8Array$1(signedPayload.slice(0, signedPayload.length - 64));
282
+ const signature = fromUint8Array$1(signedPayload.slice(signedPayload.length - 64));
269
283
  const signInResult = {
270
284
  address: address,
271
- signed_message: siwsMessage,
272
- signature: signMessageResult.signed_payloads[0].slice(siwsMessage.length)
285
+ // Workaround: some wallets have been observed to only reply with the message signature.
286
+ // This is non-compliant with the spec, but in the interest of maximizing compatibility,
287
+ // detect this case and reuse the original message.
288
+ signed_message: signedMessage.length == 0 ? siwsMessage : signedMessage,
289
+ signature
273
290
  };
274
291
  return signInResult;
275
292
  });
@@ -422,7 +439,7 @@ function getRemoteAssociateAndroidIntentURL(associationPublicKey, hostAuthority,
422
439
  const url = getIntentURL('v1/associate/remote', associationURLBase);
423
440
  url.searchParams.set('association', getStringWithURLUnsafeCharactersReplaced(encodedKey));
424
441
  url.searchParams.set('reflector', `${hostAuthority}`);
425
- url.searchParams.set('id', `${fromUint8Array(reflectorId, true)}`);
442
+ url.searchParams.set('id', `${fromUint8Array$1(reflectorId, true)}`);
426
443
  protocolVersions.forEach((version) => {
427
444
  url.searchParams.set('v', version);
428
445
  });
@@ -953,7 +970,7 @@ function startRemoteScenario(config) {
953
970
  const ecdhKeypair = yield generateECDHKeypair();
954
971
  const binaryMsg = yield createHelloReq(ecdhKeypair.publicKey, associationKeypair.privateKey);
955
972
  if (encoding == 'base64') {
956
- socket.send(fromUint8Array(binaryMsg));
973
+ socket.send(fromUint8Array$1(binaryMsg));
957
974
  }
958
975
  else {
959
976
  socket.send(binaryMsg);
@@ -1011,7 +1028,7 @@ function startRemoteScenario(config) {
1011
1028
  params: params !== null && params !== void 0 ? params : {},
1012
1029
  }, sharedSecret);
1013
1030
  if (encoding == 'base64') {
1014
- socket.send(fromUint8Array(binaryMsg));
1031
+ socket.send(fromUint8Array$1(binaryMsg));
1015
1032
  }
1016
1033
  else {
1017
1034
  socket.send(binaryMsg);
@@ -3,8 +3,9 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var reactNative = require('react-native');
6
- var walletStandardUtil = require('@solana/wallet-standard-util');
7
6
  var jsBase64 = require('js-base64');
7
+ var walletStandardUtil = require('@solana/wallet-standard-util');
8
+ var codecsStrings = require('@solana/codecs-strings');
8
9
 
9
10
  // Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/
10
11
  const SolanaMobileWalletAdapterErrorCode = {
@@ -78,8 +79,11 @@ var NativeSolanaMobileWalletAdapter = reactNative.TurboModuleRegistry.getEnforci
78
79
  function createSIWSMessage(payload) {
79
80
  return walletStandardUtil.createSignInMessageText(payload);
80
81
  }
81
- function createSIWSMessageBase64(payload) {
82
- return jsBase64.encode(createSIWSMessage(payload));
82
+ function createSIWSMessageBase64Url(payload) {
83
+ return jsBase64.encode(createSIWSMessage(payload))
84
+ .replace(/\+/g, '-')
85
+ .replace(/\//g, '_')
86
+ .replace(/=+$/, ''); // convert to base64url encoding;
83
87
  }
84
88
 
85
89
  // optional features
@@ -87,6 +91,13 @@ const SolanaSignTransactions = 'solana:signTransactions';
87
91
  const SolanaCloneAuthorization = 'solana:cloneAuthorization';
88
92
  const SolanaSignInWithSolana = 'solana:signInWithSolana';
89
93
 
94
+ function fromUint8Array(byteArray) {
95
+ return codecsStrings.getBase58Decoder().decode(byteArray);
96
+ }
97
+ function base64ToBase58(base64EncodedString) {
98
+ return fromUint8Array(jsBase64.toUint8Array(base64EncodedString));
99
+ }
100
+
90
101
  /**
91
102
  * Creates a {@link MobileWallet} proxy that handles backwards compatibility and API to RPC conversion.
92
103
  *
@@ -233,15 +244,21 @@ function signInFallback(signInPayload, authorizationResult, protocolRequestHandl
233
244
  return __awaiter(this, void 0, void 0, function* () {
234
245
  const domain = (_a = signInPayload.domain) !== null && _a !== void 0 ? _a : window.location.host;
235
246
  const address = authorizationResult.accounts[0].address;
236
- const siwsMessage = createSIWSMessageBase64(Object.assign(Object.assign({}, signInPayload), { domain, address }));
247
+ const siwsMessage = createSIWSMessageBase64Url(Object.assign(Object.assign({}, signInPayload), { domain, address: base64ToBase58(address) }));
237
248
  const signMessageResult = yield protocolRequestHandler('sign_messages', {
238
249
  addresses: [address],
239
250
  payloads: [siwsMessage]
240
251
  });
252
+ const signedPayload = jsBase64.toUint8Array(signMessageResult.signed_payloads[0]);
253
+ const signedMessage = jsBase64.fromUint8Array(signedPayload.slice(0, signedPayload.length - 64));
254
+ const signature = jsBase64.fromUint8Array(signedPayload.slice(signedPayload.length - 64));
241
255
  const signInResult = {
242
256
  address: address,
243
- signed_message: siwsMessage,
244
- signature: signMessageResult.signed_payloads[0].slice(siwsMessage.length)
257
+ // Workaround: some wallets have been observed to only reply with the message signature.
258
+ // This is non-compliant with the spec, but in the interest of maximizing compatibility,
259
+ // detect this case and reuse the original message.
260
+ signed_message: signedMessage.length == 0 ? siwsMessage : signedMessage,
261
+ signature
245
262
  };
246
263
  return signInResult;
247
264
  });
@@ -1,4 +1,5 @@
1
1
  import { createSignInMessageText } from '@solana/wallet-standard-util';
2
+ import { getBase58Decoder } from '@solana/codecs-strings';
2
3
 
3
4
  // Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/
4
5
  const SolanaMobileWalletAdapterErrorCode = {
@@ -70,7 +71,7 @@ function __awaiter(thisArg, _arguments, P, generator) {
70
71
  function encode(input) {
71
72
  return window.btoa(input);
72
73
  }
73
- function fromUint8Array(byteArray, urlsafe) {
74
+ function fromUint8Array$1(byteArray, urlsafe) {
74
75
  const base64 = window.btoa(String.fromCharCode.call(null, ...byteArray));
75
76
  if (urlsafe) {
76
77
  return base64
@@ -102,8 +103,11 @@ function createHelloReq(ecdhPublicKey, associationKeypairPrivateKey) {
102
103
  function createSIWSMessage(payload) {
103
104
  return createSignInMessageText(payload);
104
105
  }
105
- function createSIWSMessageBase64(payload) {
106
- return encode(createSIWSMessage(payload));
106
+ function createSIWSMessageBase64Url(payload) {
107
+ return encode(createSIWSMessage(payload))
108
+ .replace(/\+/g, '-')
109
+ .replace(/\//g, '_')
110
+ .replace(/=+$/, ''); // convert to base64url encoding;
107
111
  }
108
112
 
109
113
  // optional features
@@ -111,6 +115,13 @@ const SolanaSignTransactions = 'solana:signTransactions';
111
115
  const SolanaCloneAuthorization = 'solana:cloneAuthorization';
112
116
  const SolanaSignInWithSolana = 'solana:signInWithSolana';
113
117
 
118
+ function fromUint8Array(byteArray) {
119
+ return getBase58Decoder().decode(byteArray);
120
+ }
121
+ function base64ToBase58(base64EncodedString) {
122
+ return fromUint8Array(toUint8Array(base64EncodedString));
123
+ }
124
+
114
125
  /**
115
126
  * Creates a {@link MobileWallet} proxy that handles backwards compatibility and API to RPC conversion.
116
127
  *
@@ -257,15 +268,21 @@ function signInFallback(signInPayload, authorizationResult, protocolRequestHandl
257
268
  return __awaiter(this, void 0, void 0, function* () {
258
269
  const domain = (_a = signInPayload.domain) !== null && _a !== void 0 ? _a : window.location.host;
259
270
  const address = authorizationResult.accounts[0].address;
260
- const siwsMessage = createSIWSMessageBase64(Object.assign(Object.assign({}, signInPayload), { domain, address }));
271
+ const siwsMessage = createSIWSMessageBase64Url(Object.assign(Object.assign({}, signInPayload), { domain, address: base64ToBase58(address) }));
261
272
  const signMessageResult = yield protocolRequestHandler('sign_messages', {
262
273
  addresses: [address],
263
274
  payloads: [siwsMessage]
264
275
  });
276
+ const signedPayload = toUint8Array(signMessageResult.signed_payloads[0]);
277
+ const signedMessage = fromUint8Array$1(signedPayload.slice(0, signedPayload.length - 64));
278
+ const signature = fromUint8Array$1(signedPayload.slice(signedPayload.length - 64));
265
279
  const signInResult = {
266
280
  address: address,
267
- signed_message: siwsMessage,
268
- signature: signMessageResult.signed_payloads[0].slice(siwsMessage.length)
281
+ // Workaround: some wallets have been observed to only reply with the message signature.
282
+ // This is non-compliant with the spec, but in the interest of maximizing compatibility,
283
+ // detect this case and reuse the original message.
284
+ signed_message: signedMessage.length == 0 ? siwsMessage : signedMessage,
285
+ signature
269
286
  };
270
287
  return signInResult;
271
288
  });
@@ -418,7 +435,7 @@ function getRemoteAssociateAndroidIntentURL(associationPublicKey, hostAuthority,
418
435
  const url = getIntentURL('v1/associate/remote', associationURLBase);
419
436
  url.searchParams.set('association', getStringWithURLUnsafeCharactersReplaced(encodedKey));
420
437
  url.searchParams.set('reflector', `${hostAuthority}`);
421
- url.searchParams.set('id', `${fromUint8Array(reflectorId, true)}`);
438
+ url.searchParams.set('id', `${fromUint8Array$1(reflectorId, true)}`);
422
439
  protocolVersions.forEach((version) => {
423
440
  url.searchParams.set('v', version);
424
441
  });
@@ -949,7 +966,7 @@ function startRemoteScenario(config) {
949
966
  const ecdhKeypair = yield generateECDHKeypair();
950
967
  const binaryMsg = yield createHelloReq(ecdhKeypair.publicKey, associationKeypair.privateKey);
951
968
  if (encoding == 'base64') {
952
- socket.send(fromUint8Array(binaryMsg));
969
+ socket.send(fromUint8Array$1(binaryMsg));
953
970
  }
954
971
  else {
955
972
  socket.send(binaryMsg);
@@ -1007,7 +1024,7 @@ function startRemoteScenario(config) {
1007
1024
  params: params !== null && params !== void 0 ? params : {},
1008
1025
  }, sharedSecret);
1009
1026
  if (encoding == 'base64') {
1010
- socket.send(fromUint8Array(binaryMsg));
1027
+ socket.send(fromUint8Array$1(binaryMsg));
1011
1028
  }
1012
1029
  else {
1013
1030
  socket.send(binaryMsg);
package/lib/esm/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { createSignInMessageText } from '@solana/wallet-standard-util';
2
+ import { getBase58Decoder } from '@solana/codecs-strings';
2
3
 
3
4
  // Typescript `enums` thwart tree-shaking. See https://bargsten.org/jsts/enums/
4
5
  const SolanaMobileWalletAdapterErrorCode = {
@@ -70,7 +71,7 @@ function __awaiter(thisArg, _arguments, P, generator) {
70
71
  function encode(input) {
71
72
  return window.btoa(input);
72
73
  }
73
- function fromUint8Array(byteArray, urlsafe) {
74
+ function fromUint8Array$1(byteArray, urlsafe) {
74
75
  const base64 = window.btoa(String.fromCharCode.call(null, ...byteArray));
75
76
  if (urlsafe) {
76
77
  return base64
@@ -102,8 +103,11 @@ function createHelloReq(ecdhPublicKey, associationKeypairPrivateKey) {
102
103
  function createSIWSMessage(payload) {
103
104
  return createSignInMessageText(payload);
104
105
  }
105
- function createSIWSMessageBase64(payload) {
106
- return encode(createSIWSMessage(payload));
106
+ function createSIWSMessageBase64Url(payload) {
107
+ return encode(createSIWSMessage(payload))
108
+ .replace(/\+/g, '-')
109
+ .replace(/\//g, '_')
110
+ .replace(/=+$/, ''); // convert to base64url encoding;
107
111
  }
108
112
 
109
113
  // optional features
@@ -111,6 +115,13 @@ const SolanaSignTransactions = 'solana:signTransactions';
111
115
  const SolanaCloneAuthorization = 'solana:cloneAuthorization';
112
116
  const SolanaSignInWithSolana = 'solana:signInWithSolana';
113
117
 
118
+ function fromUint8Array(byteArray) {
119
+ return getBase58Decoder().decode(byteArray);
120
+ }
121
+ function base64ToBase58(base64EncodedString) {
122
+ return fromUint8Array(toUint8Array(base64EncodedString));
123
+ }
124
+
114
125
  /**
115
126
  * Creates a {@link MobileWallet} proxy that handles backwards compatibility and API to RPC conversion.
116
127
  *
@@ -257,15 +268,21 @@ function signInFallback(signInPayload, authorizationResult, protocolRequestHandl
257
268
  return __awaiter(this, void 0, void 0, function* () {
258
269
  const domain = (_a = signInPayload.domain) !== null && _a !== void 0 ? _a : window.location.host;
259
270
  const address = authorizationResult.accounts[0].address;
260
- const siwsMessage = createSIWSMessageBase64(Object.assign(Object.assign({}, signInPayload), { domain, address }));
271
+ const siwsMessage = createSIWSMessageBase64Url(Object.assign(Object.assign({}, signInPayload), { domain, address: base64ToBase58(address) }));
261
272
  const signMessageResult = yield protocolRequestHandler('sign_messages', {
262
273
  addresses: [address],
263
274
  payloads: [siwsMessage]
264
275
  });
276
+ const signedPayload = toUint8Array(signMessageResult.signed_payloads[0]);
277
+ const signedMessage = fromUint8Array$1(signedPayload.slice(0, signedPayload.length - 64));
278
+ const signature = fromUint8Array$1(signedPayload.slice(signedPayload.length - 64));
265
279
  const signInResult = {
266
280
  address: address,
267
- signed_message: siwsMessage,
268
- signature: signMessageResult.signed_payloads[0].slice(siwsMessage.length)
281
+ // Workaround: some wallets have been observed to only reply with the message signature.
282
+ // This is non-compliant with the spec, but in the interest of maximizing compatibility,
283
+ // detect this case and reuse the original message.
284
+ signed_message: signedMessage.length == 0 ? siwsMessage : signedMessage,
285
+ signature
269
286
  };
270
287
  return signInResult;
271
288
  });
@@ -418,7 +435,7 @@ function getRemoteAssociateAndroidIntentURL(associationPublicKey, hostAuthority,
418
435
  const url = getIntentURL('v1/associate/remote', associationURLBase);
419
436
  url.searchParams.set('association', getStringWithURLUnsafeCharactersReplaced(encodedKey));
420
437
  url.searchParams.set('reflector', `${hostAuthority}`);
421
- url.searchParams.set('id', `${fromUint8Array(reflectorId, true)}`);
438
+ url.searchParams.set('id', `${fromUint8Array$1(reflectorId, true)}`);
422
439
  protocolVersions.forEach((version) => {
423
440
  url.searchParams.set('v', version);
424
441
  });
@@ -949,7 +966,7 @@ function startRemoteScenario(config) {
949
966
  const ecdhKeypair = yield generateECDHKeypair();
950
967
  const binaryMsg = yield createHelloReq(ecdhKeypair.publicKey, associationKeypair.privateKey);
951
968
  if (encoding == 'base64') {
952
- socket.send(fromUint8Array(binaryMsg));
969
+ socket.send(fromUint8Array$1(binaryMsg));
953
970
  }
954
971
  else {
955
972
  socket.send(binaryMsg);
@@ -1007,7 +1024,7 @@ function startRemoteScenario(config) {
1007
1024
  params: params !== null && params !== void 0 ? params : {},
1008
1025
  }, sharedSecret);
1009
1026
  if (encoding == 'base64') {
1010
- socket.send(fromUint8Array(binaryMsg));
1027
+ socket.send(fromUint8Array$1(binaryMsg));
1011
1028
  }
1012
1029
  else {
1013
1030
  socket.send(binaryMsg);
@@ -1 +1 @@
1
- {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../../src/index.ts","../../src/errors.ts","../../src/base64Utils.ts","../../src/createHelloReq.ts","../../src/types.ts","../../src/createSIWSMessage.ts","../../src/createMobileWalletProxy.ts","../../src/createSequenceNumberVector.ts","../../src/parseHelloRsp.ts","../../src/encryptedMessage.ts","../../src/generateAssociationKeypair.ts","../../src/generateECDHKeypair.ts","../../src/arrayBufferToBase64String.ts","../../src/associationPort.ts","../../src/getStringWithURLUnsafeBase64CharactersReplaced.ts","../../src/getAssociateAndroidIntentURL.ts","../../src/jsonRpcMessage.ts","../../src/parseSessionProps.ts","../../src/startSession.ts","../../src/transact.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../../src/index.ts","../../src/errors.ts","../../src/base64Utils.ts","../../src/createHelloReq.ts","../../src/types.ts","../../src/createSIWSMessage.ts","../../src/base58Utils.ts","../../src/createMobileWalletProxy.ts","../../src/createSequenceNumberVector.ts","../../src/parseHelloRsp.ts","../../src/encryptedMessage.ts","../../src/generateAssociationKeypair.ts","../../src/generateECDHKeypair.ts","../../src/arrayBufferToBase64String.ts","../../src/associationPort.ts","../../src/getStringWithURLUnsafeBase64CharactersReplaced.ts","../../src/getAssociateAndroidIntentURL.ts","../../src/jsonRpcMessage.ts","../../src/parseSessionProps.ts","../../src/startSession.ts","../../src/transact.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts","../../src/errors.ts","../../src/base64Utils.ts","../../src/createHelloReq.ts","../../src/types.ts","../../src/createSIWSMessage.ts","../../src/createMobileWalletProxy.ts","../../src/createSequenceNumberVector.ts","../../src/parseHelloRsp.ts","../../src/encryptedMessage.ts","../../src/generateAssociationKeypair.ts","../../src/generateECDHKeypair.ts","../../src/arrayBufferToBase64String.ts","../../src/associationPort.ts","../../src/getStringWithURLUnsafeBase64CharactersReplaced.ts","../../src/getAssociateAndroidIntentURL.ts","../../src/jsonRpcMessage.ts","../../src/parseSessionProps.ts","../../src/startSession.ts","../../src/transact.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts","../../src/errors.ts","../../src/base64Utils.ts","../../src/createHelloReq.ts","../../src/types.ts","../../src/createSIWSMessage.ts","../../src/base58Utils.ts","../../src/createMobileWalletProxy.ts","../../src/createSequenceNumberVector.ts","../../src/parseHelloRsp.ts","../../src/encryptedMessage.ts","../../src/generateAssociationKeypair.ts","../../src/generateECDHKeypair.ts","../../src/arrayBufferToBase64String.ts","../../src/associationPort.ts","../../src/getStringWithURLUnsafeBase64CharactersReplaced.ts","../../src/getAssociateAndroidIntentURL.ts","../../src/jsonRpcMessage.ts","../../src/parseSessionProps.ts","../../src/startSession.ts","../../src/transact.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../src/index.ts","../../src/errors.ts","../../src/base64Utils.ts","../../src/createHelloReq.ts","../../src/types.ts","../../src/createSIWSMessage.ts","../../src/createMobileWalletProxy.ts","../../src/createSequenceNumberVector.ts","../../src/parseHelloRsp.ts","../../src/encryptedMessage.ts","../../src/generateAssociationKeypair.ts","../../src/generateECDHKeypair.ts","../../src/arrayBufferToBase64String.ts","../../src/associationPort.ts","../../src/getStringWithURLUnsafeBase64CharactersReplaced.ts","../../src/getAssociateAndroidIntentURL.ts","../../src/jsonRpcMessage.ts","../../src/parseSessionProps.ts","../../src/startSession.ts","../../src/transact.ts","../../src/codegenSpec/NativeSolanaMobileWalletAdapter.ts","../../src/__forks__/react-native/transact.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../src/index.ts","../../src/errors.ts","../../src/base64Utils.ts","../../src/createHelloReq.ts","../../src/types.ts","../../src/createSIWSMessage.ts","../../src/base58Utils.ts","../../src/createMobileWalletProxy.ts","../../src/createSequenceNumberVector.ts","../../src/parseHelloRsp.ts","../../src/encryptedMessage.ts","../../src/generateAssociationKeypair.ts","../../src/generateECDHKeypair.ts","../../src/arrayBufferToBase64String.ts","../../src/associationPort.ts","../../src/getStringWithURLUnsafeBase64CharactersReplaced.ts","../../src/getAssociateAndroidIntentURL.ts","../../src/jsonRpcMessage.ts","../../src/parseSessionProps.ts","../../src/startSession.ts","../../src/transact.ts","../../src/codegenSpec/NativeSolanaMobileWalletAdapter.ts","../../src/__forks__/react-native/transact.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@solana-mobile/mobile-wallet-adapter-protocol",
3
3
  "description": "An implementation of the Solana Mobile Mobile Wallet Adapter protocol. Use this to open a session with a mobile wallet app, and to issue API calls to it.",
4
- "version": "2.2.4",
4
+ "version": "2.2.5",
5
5
  "author": "Steven Luscher <steven.luscher@solanamobile.com>",
6
6
  "repository": {
7
7
  "type": "git",
@@ -56,6 +56,7 @@
56
56
  "prepublishOnly": "agadoo"
57
57
  },
58
58
  "dependencies": {
59
+ "@solana/codecs-strings": "^4.0.0",
59
60
  "@solana/wallet-standard": "^1.1.2",
60
61
  "@solana/wallet-standard-util": "^1.1.1",
61
62
  "@wallet-standard/core": "^1.0.3",