@aptos-labs/wallet-adapter-core 3.1.1 → 3.2.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @aptos-labs/wallet-adapter-core
2
2
 
3
+ ## 3.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 3f38c51: Return false from areBCSArguments function if array is empty
8
+
9
+ ## 3.2.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 12163ca: Updated SDK dependencies
14
+
15
+ ### Patch Changes
16
+
17
+ - a6f0e46: Fix is bcs argument types check
18
+
3
19
  ## 3.1.1
4
20
 
5
21
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Types } from 'aptos';
2
2
  export { TxnBuilderTypes, Types } from 'aptos';
3
- import { Network, InputGenerateTransactionData, InputGenerateTransactionOptions, PendingTransactionResponse, InputSubmitTransactionData, AccountAddressInput, InputGenerateTransactionPayloadData, AnyRawTransaction, AccountAuthenticator } from '@aptos-labs/ts-sdk';
3
+ import { Network, InputGenerateTransactionData, InputGenerateTransactionOptions, PendingTransactionResponse, InputSubmitTransactionData, AccountAddressInput, InputGenerateTransactionPayloadData, AnyRawTransaction, AccountAuthenticator, EntryFunctionArgumentTypes, SimpleEntryFunctionArgumentTypes } from '@aptos-labs/ts-sdk';
4
4
  export { AccountAuthenticator, AnyRawTransaction, InputGenerateTransactionData, InputGenerateTransactionOptions, InputSubmitTransactionData, PendingTransactionResponse } from '@aptos-labs/ts-sdk';
5
5
  import EventEmitter from 'eventemitter3';
6
6
 
@@ -237,5 +237,6 @@ declare function isMobile(): boolean;
237
237
  declare function isInAppBrowser(): boolean;
238
238
  declare function isRedirectable(): boolean;
239
239
  declare function generalizedErrorMessage(error: any): string;
240
+ declare const areBCSArguments: (args: Array<EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes>) => boolean;
240
241
 
241
- export { AccountInfo, AdapterPlugin, AdapterPluginEvents, AdapterPluginProps, AptosWalletErrorResult, InputTransactionData, NetworkInfo, NetworkName, OnAccountChange, OnNetworkChange, SignMessagePayload, SignMessageResponse, TransactionOptions, Wallet, WalletCore, WalletCoreEvents, WalletInfo, WalletName, WalletReadyState, generalizedErrorMessage, getLocalStorage, isInAppBrowser, isMobile, isRedirectable, removeLocalStorage, scopePollingDetectionStrategy, setLocalStorage };
242
+ export { AccountInfo, AdapterPlugin, AdapterPluginEvents, AdapterPluginProps, AptosWalletErrorResult, InputTransactionData, NetworkInfo, NetworkName, OnAccountChange, OnNetworkChange, SignMessagePayload, SignMessageResponse, TransactionOptions, Wallet, WalletCore, WalletCoreEvents, WalletInfo, WalletName, WalletReadyState, areBCSArguments, generalizedErrorMessage, getLocalStorage, isInAppBrowser, isMobile, isRedirectable, removeLocalStorage, scopePollingDetectionStrategy, setLocalStorage };
package/dist/index.js CHANGED
@@ -31,6 +31,7 @@ __export(src_exports, {
31
31
  Types: () => import_aptos3.Types,
32
32
  WalletCore: () => WalletCore,
33
33
  WalletReadyState: () => WalletReadyState,
34
+ areBCSArguments: () => areBCSArguments,
34
35
  generalizedErrorMessage: () => generalizedErrorMessage,
35
36
  getLocalStorage: () => getLocalStorage,
36
37
  isInAppBrowser: () => isInAppBrowser,
@@ -44,7 +45,7 @@ module.exports = __toCommonJS(src_exports);
44
45
 
45
46
  // src/WalletCore.ts
46
47
  var import_aptos2 = require("aptos");
47
- var import_ts_sdk2 = require("@aptos-labs/ts-sdk");
48
+ var import_ts_sdk3 = require("@aptos-labs/ts-sdk");
48
49
  var import_eventemitter32 = __toESM(require("eventemitter3"));
49
50
  var import_tweetnacl = __toESM(require("tweetnacl"));
50
51
  var import_buffer = require("buffer");
@@ -199,6 +200,7 @@ function getLocalStorage() {
199
200
  }
200
201
 
201
202
  // src/utils/helpers.ts
203
+ var import_ts_sdk = require("@aptos-labs/ts-sdk");
202
204
  function isMobile() {
203
205
  return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(
204
206
  navigator.userAgent
@@ -221,6 +223,13 @@ function isRedirectable() {
221
223
  function generalizedErrorMessage(error) {
222
224
  return typeof error === "object" && "message" in error ? error.message : error;
223
225
  }
226
+ var areBCSArguments = (args) => {
227
+ if (args.length === 0)
228
+ return false;
229
+ return args.every(
230
+ (arg) => arg instanceof import_ts_sdk.Serializable
231
+ );
232
+ };
224
233
 
225
234
  // src/ans.ts
226
235
  var ChainIdToAnsContractAddressMap = {
@@ -243,16 +252,16 @@ var getNameByAddress = async (chainId, address) => {
243
252
  };
244
253
 
245
254
  // src/conversion.ts
246
- var import_ts_sdk = require("@aptos-labs/ts-sdk");
255
+ var import_ts_sdk2 = require("@aptos-labs/ts-sdk");
247
256
  var import_aptos = require("aptos");
248
257
  function convertNetwork(networkInfo) {
249
258
  switch (networkInfo == null ? void 0 : networkInfo.name.toLowerCase()) {
250
259
  case "mainnet":
251
- return import_ts_sdk.Network.MAINNET;
260
+ return import_ts_sdk2.Network.MAINNET;
252
261
  case "testnet":
253
- return import_ts_sdk.Network.TESTNET;
262
+ return import_ts_sdk2.Network.TESTNET;
254
263
  case "devnet":
255
- return import_ts_sdk.Network.DEVNET;
264
+ return import_ts_sdk2.Network.DEVNET;
256
265
  default:
257
266
  throw new Error("Invalid network name");
258
267
  }
@@ -268,7 +277,7 @@ function convertV2PayloadToV1JSONPayload(payload) {
268
277
  } else {
269
278
  const stringTypeTags = (_a = payload.typeArguments) == null ? void 0 : _a.map(
270
279
  (typeTag) => {
271
- if (typeTag instanceof import_ts_sdk.TypeTag) {
280
+ if (typeTag instanceof import_ts_sdk2.TypeTag) {
272
281
  return typeTag.toString();
273
282
  }
274
283
  return typeTag;
@@ -494,11 +503,11 @@ var WalletCore = class extends import_eventemitter32.default {
494
503
  return response2;
495
504
  }
496
505
  const payloadData = transactionInput.data;
497
- if (typeof payloadData.functionArguments[0] === "object") {
498
- const aptosConfig = new import_ts_sdk2.AptosConfig({
506
+ if (areBCSArguments(payloadData.functionArguments)) {
507
+ const aptosConfig = new import_ts_sdk3.AptosConfig({
499
508
  network: convertNetwork(this._network)
500
509
  });
501
- const newPayload = await (0, import_ts_sdk2.generateTransactionPayload)({
510
+ const newPayload = await (0, import_ts_sdk3.generateTransactionPayload)({
502
511
  ...payloadData,
503
512
  aptosConfig
504
513
  });
@@ -567,9 +576,9 @@ var WalletCore = class extends import_eventemitter32.default {
567
576
  const transactionAuthenticator = deserializedSignature.authenticator;
568
577
  const publicKey = transactionAuthenticator.public_key.value;
569
578
  const signature = transactionAuthenticator.signature.value;
570
- const accountAuthenticator = new import_ts_sdk2.AccountAuthenticatorEd25519(
571
- new import_ts_sdk2.Ed25519PublicKey(publicKey),
572
- new import_ts_sdk2.Ed25519Signature(signature)
579
+ const accountAuthenticator = new import_ts_sdk3.AccountAuthenticatorEd25519(
580
+ new import_ts_sdk3.Ed25519PublicKey(publicKey),
581
+ new import_ts_sdk3.Ed25519Signature(signature)
573
582
  );
574
583
  return accountAuthenticator;
575
584
  } catch (error) {
@@ -702,6 +711,7 @@ var import_aptos3 = require("aptos");
702
711
  Types,
703
712
  WalletCore,
704
713
  WalletReadyState,
714
+ areBCSArguments,
705
715
  generalizedErrorMessage,
706
716
  getLocalStorage,
707
717
  isInAppBrowser,
package/dist/index.mjs CHANGED
@@ -161,6 +161,9 @@ function getLocalStorage() {
161
161
  }
162
162
 
163
163
  // src/utils/helpers.ts
164
+ import {
165
+ Serializable
166
+ } from "@aptos-labs/ts-sdk";
164
167
  function isMobile() {
165
168
  return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(
166
169
  navigator.userAgent
@@ -183,6 +186,13 @@ function isRedirectable() {
183
186
  function generalizedErrorMessage(error) {
184
187
  return typeof error === "object" && "message" in error ? error.message : error;
185
188
  }
189
+ var areBCSArguments = (args) => {
190
+ if (args.length === 0)
191
+ return false;
192
+ return args.every(
193
+ (arg) => arg instanceof Serializable
194
+ );
195
+ };
186
196
 
187
197
  // src/ans.ts
188
198
  var ChainIdToAnsContractAddressMap = {
@@ -459,7 +469,7 @@ var WalletCore = class extends EventEmitter2 {
459
469
  return response2;
460
470
  }
461
471
  const payloadData = transactionInput.data;
462
- if (typeof payloadData.functionArguments[0] === "object") {
472
+ if (areBCSArguments(payloadData.functionArguments)) {
463
473
  const aptosConfig = new AptosConfig({
464
474
  network: convertNetwork(this._network)
465
475
  });
@@ -666,6 +676,7 @@ export {
666
676
  Types3 as Types,
667
677
  WalletCore,
668
678
  WalletReadyState,
679
+ areBCSArguments,
669
680
  generalizedErrorMessage,
670
681
  getLocalStorage,
671
682
  isInAppBrowser,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aptos-labs/wallet-adapter-core",
3
- "version": "3.1.1",
3
+ "version": "3.2.1",
4
4
  "description": "Aptos Wallet Adapter Core",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -43,8 +43,8 @@
43
43
  "tweetnacl": "^1.0.3"
44
44
  },
45
45
  "peerDependencies": {
46
- "aptos": "^1.20.0",
47
- "@aptos-labs/ts-sdk": "^1.0.0"
46
+ "aptos": "^1.21.0",
47
+ "@aptos-labs/ts-sdk": "^1.2.0"
48
48
  },
49
49
  "scripts": {
50
50
  "build": "tsup src/index.ts --format esm,cjs --dts",
package/src/WalletCore.ts CHANGED
@@ -49,6 +49,7 @@ import {
49
49
  scopePollingDetectionStrategy,
50
50
  isRedirectable,
51
51
  generalizedErrorMessage,
52
+ areBCSArguments,
52
53
  } from "./utils";
53
54
  import { getNameByAddress } from "./ans";
54
55
  import {
@@ -310,9 +311,8 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
310
311
  // get the payload piece from the input
311
312
  const payloadData = transactionInput.data;
312
313
 
313
- // if first function arguments is an object (i.e a bcs serialized argument)
314
- // we assume the transaction should be a bcs serialized transaction
315
- if (typeof payloadData.functionArguments[0] === "object") {
314
+ // first check if each argument is a BCS serialized argument
315
+ if (areBCSArguments(payloadData.functionArguments)) {
316
316
  const aptosConfig = new AptosConfig({
317
317
  network: convertNetwork(this._network),
318
318
  });
@@ -337,7 +337,6 @@ export class WalletCore extends EventEmitter<WalletCoreEvents> {
337
337
  const { hash, ...output } = response;
338
338
  return { hash, output };
339
339
  }
340
-
341
340
  // if it is not a bcs serialized arguments transaction, convert to the old
342
341
  // json format
343
342
  const oldTransactionPayload =
@@ -1,3 +1,9 @@
1
+ import {
2
+ EntryFunctionArgumentTypes,
3
+ Serializable,
4
+ SimpleEntryFunctionArgumentTypes,
5
+ } from "@aptos-labs/ts-sdk";
6
+
1
7
  export function isMobile(): boolean {
2
8
  return /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/i.test(
3
9
  navigator.userAgent
@@ -30,3 +36,19 @@ export function generalizedErrorMessage(error: any): string {
30
36
  ? error.message
31
37
  : error;
32
38
  }
39
+
40
+ // Helper function to check if input arguments are BCS serialized arguments.
41
+ // In @aptos-labs/ts-sdk each move representative class extends
42
+ // Serializable, so if each argument is of an instance of a class
43
+ // the extends Serializable - we know these are BCS arguments
44
+ export const areBCSArguments = (
45
+ args: Array<EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes>
46
+ ): boolean => {
47
+ // `every` returns true if the array is empty, so
48
+ // first check the array length
49
+ if (args.length === 0) return false;
50
+ return args.every(
51
+ (arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes) =>
52
+ arg instanceof Serializable
53
+ );
54
+ };