diff --git a/.changeset/dull-hotels-draw.md b/.changeset/dull-hotels-draw.md deleted file mode 100644 index 99e3bbd6..00000000 --- a/.changeset/dull-hotels-draw.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@aptos-labs/wallet-adapter-mui-design": minor -"@aptos-labs/wallet-adapter-core": minor -"@aptos-labs/wallet-adapter-nextjs-example": minor ---- - -Updated SDK dependencies diff --git a/.changeset/many-numbers-punch.md b/.changeset/many-numbers-punch.md new file mode 100644 index 00000000..12476691 --- /dev/null +++ b/.changeset/many-numbers-punch.md @@ -0,0 +1,5 @@ +--- +"@aptos-labs/wallet-adapter-core": patch +--- + +Return false from areBCSArguments function if array is empty diff --git a/apps/nextjs-example/CHANGELOG.md b/apps/nextjs-example/CHANGELOG.md index 82995756..73685a95 100644 --- a/apps/nextjs-example/CHANGELOG.md +++ b/apps/nextjs-example/CHANGELOG.md @@ -1,5 +1,19 @@ # @aptos-labs/wallet-adapter-nextjs-example +## 2.3.0 + +### Minor Changes + +- 12163ca: Updated SDK dependencies + +### Patch Changes + +- Updated dependencies [12163ca] +- Updated dependencies [a6f0e46] + - @aptos-labs/wallet-adapter-mui-design@2.1.0 + - @aptos-labs/wallet-adapter-core@3.2.0 + - @aptos-labs/wallet-adapter-react@2.1.3 + ## 2.2.2 ### Patch Changes diff --git a/apps/nextjs-example/package.json b/apps/nextjs-example/package.json index c6d2f121..20a2d5f6 100644 --- a/apps/nextjs-example/package.json +++ b/apps/nextjs-example/package.json @@ -1,6 +1,6 @@ { "name": "@aptos-labs/wallet-adapter-nextjs-example", - "version": "2.2.2", + "version": "2.3.0", "private": true, "license": "Apache-2.0", "scripts": { diff --git a/packages/wallet-adapter-core/CHANGELOG.md b/packages/wallet-adapter-core/CHANGELOG.md index 5e10282a..40a42451 100644 --- a/packages/wallet-adapter-core/CHANGELOG.md +++ b/packages/wallet-adapter-core/CHANGELOG.md @@ -1,5 +1,15 @@ # @aptos-labs/wallet-adapter-core +## 3.2.0 + +### Minor Changes + +- 12163ca: Updated SDK dependencies + +### Patch Changes + +- a6f0e46: Fix is bcs argument types check + ## 3.1.1 ### Patch Changes diff --git a/packages/wallet-adapter-core/package.json b/packages/wallet-adapter-core/package.json index e80fcf43..7983166a 100644 --- a/packages/wallet-adapter-core/package.json +++ b/packages/wallet-adapter-core/package.json @@ -1,6 +1,6 @@ { "name": "@aptos-labs/wallet-adapter-core", - "version": "3.1.1", + "version": "3.2.0", "description": "Aptos Wallet Adapter Core", "main": "./dist/index.js", "module": "./dist/index.mjs", diff --git a/packages/wallet-adapter-core/src/WalletCore.ts b/packages/wallet-adapter-core/src/WalletCore.ts index c9269c23..61ef9134 100644 --- a/packages/wallet-adapter-core/src/WalletCore.ts +++ b/packages/wallet-adapter-core/src/WalletCore.ts @@ -49,6 +49,7 @@ import { scopePollingDetectionStrategy, isRedirectable, generalizedErrorMessage, + areBCSArguments, } from "./utils"; import { getNameByAddress } from "./ans"; import { @@ -310,9 +311,8 @@ export class WalletCore extends EventEmitter { // get the payload piece from the input const payloadData = transactionInput.data; - // if first function arguments is an object (i.e a bcs serialized argument) - // we assume the transaction should be a bcs serialized transaction - if (typeof payloadData.functionArguments[0] === "object") { + // first check if each argument is a BCS serialized argument + if (areBCSArguments(payloadData.functionArguments)) { const aptosConfig = new AptosConfig({ network: convertNetwork(this._network), }); @@ -337,7 +337,6 @@ export class WalletCore extends EventEmitter { const { hash, ...output } = response; return { hash, output }; } - // if it is not a bcs serialized arguments transaction, convert to the old // json format const oldTransactionPayload = diff --git a/packages/wallet-adapter-core/src/utils/helpers.ts b/packages/wallet-adapter-core/src/utils/helpers.ts index 023fce19..dcefd149 100644 --- a/packages/wallet-adapter-core/src/utils/helpers.ts +++ b/packages/wallet-adapter-core/src/utils/helpers.ts @@ -1,3 +1,9 @@ +import { + EntryFunctionArgumentTypes, + Serializable, + SimpleEntryFunctionArgumentTypes, +} from "@aptos-labs/ts-sdk"; + export function isMobile(): boolean { 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( navigator.userAgent @@ -30,3 +36,19 @@ export function generalizedErrorMessage(error: any): string { ? error.message : error; } + +// Helper function to check if input arguments are BCS serialized arguments. +// In @aptos-labs/ts-sdk each move representative class extends +// Serializable, so if each argument is of an instance of a class +// the extends Serializable - we know these are BCS arguments +export const areBCSArguments = ( + args: Array +): boolean => { + // `every` returns true if the array is empty, so + // first check the array length + if (args.length === 0) return false; + return args.every( + (arg: EntryFunctionArgumentTypes | SimpleEntryFunctionArgumentTypes) => + arg instanceof Serializable + ); +}; diff --git a/packages/wallet-adapter-mui-design/CHANGELOG.md b/packages/wallet-adapter-mui-design/CHANGELOG.md index 19e1c016..875a25f3 100644 --- a/packages/wallet-adapter-mui-design/CHANGELOG.md +++ b/packages/wallet-adapter-mui-design/CHANGELOG.md @@ -1,5 +1,15 @@ # @aptos-labs/wallet-adapter-mui-design +## 2.1.0 + +### Minor Changes + +- 12163ca: Updated SDK dependencies + +### Patch Changes + +- @aptos-labs/wallet-adapter-react@2.1.3 + ## 2.0.0 ### Major Changes diff --git a/packages/wallet-adapter-mui-design/package.json b/packages/wallet-adapter-mui-design/package.json index 35aeacbb..c4febd95 100644 --- a/packages/wallet-adapter-mui-design/package.json +++ b/packages/wallet-adapter-mui-design/package.json @@ -1,6 +1,6 @@ { "name": "@aptos-labs/wallet-adapter-mui-design", - "version": "2.0.0", + "version": "2.1.0", "description": "Aptos Wallet Adapter mui design", "main": "./dist/index.js", "module": "./dist/index.mjs", @@ -43,7 +43,7 @@ "typescript": "^4.5.3" }, "dependencies": { - "@aptos-labs/wallet-adapter-react": "^2.0.0", + "@aptos-labs/wallet-adapter-react": "^2.1.3", "@emotion/react": "^11.10.5", "@emotion/styled": "^11.10.5", "@mui/icons-material": "^5.11.0", diff --git a/packages/wallet-adapter-react/CHANGELOG.md b/packages/wallet-adapter-react/CHANGELOG.md index a6946117..0f12c3a8 100644 --- a/packages/wallet-adapter-react/CHANGELOG.md +++ b/packages/wallet-adapter-react/CHANGELOG.md @@ -1,5 +1,13 @@ # @aptos-labs/wallet-adapter-react +## 2.1.3 + +### Patch Changes + +- Updated dependencies [12163ca] +- Updated dependencies [a6f0e46] + - @aptos-labs/wallet-adapter-core@3.2.0 + ## 2.1.2 ### Patch Changes diff --git a/packages/wallet-adapter-react/package.json b/packages/wallet-adapter-react/package.json index bcff5f29..3c99f501 100644 --- a/packages/wallet-adapter-react/package.json +++ b/packages/wallet-adapter-react/package.json @@ -1,6 +1,6 @@ { "name": "@aptos-labs/wallet-adapter-react", - "version": "2.1.2", + "version": "2.1.3", "description": "Aptos Wallet Adapter React Provider", "main": "./dist/index.js", "module": "./dist/index.mjs", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 206a26ee..f5550cd2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -244,7 +244,7 @@ importers: packages/wallet-adapter-mui-design: dependencies: '@aptos-labs/wallet-adapter-react': - specifier: ^2.0.0 + specifier: ^2.1.3 version: link:../wallet-adapter-react '@emotion/react': specifier: ^11.10.5