@dynamic-labs/ethereum-gasless-extension 4.84.1 → 4.86.0

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,4 +1,34 @@
1
1
 
2
+ ## [4.86.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.85.0...v4.86.0) (2026-06-01)
3
+
4
+
5
+ ### Features
6
+
7
+ * add support to new MetaMask SDK ([#11056](https://github.com/dynamic-labs/dynamic-auth/issues/11056)) ([8a6c973](https://github.com/dynamic-labs/dynamic-auth/commit/8a6c973876207256c06b04f6a16454f07446393d))
8
+ * **ethereum-gasless:** expose optional nonce on sign/send/relay ([#11422](https://github.com/dynamic-labs/dynamic-auth/issues/11422)) ([d2d074e](https://github.com/dynamic-labs/dynamic-auth/commit/d2d074ebe82452990281eba14a73f52a0af1e98b))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **sdk-react-core:** retry auto wallet creation on transient failures before erroring ([#11408](https://github.com/dynamic-labs/dynamic-auth/issues/11408)) ([8175460](https://github.com/dynamic-labs/dynamic-auth/commit/8175460bdee6f041ead0ea3f020cfd2168683239)), closes [#11399](https://github.com/dynamic-labs/dynamic-auth/issues/11399) [forward-mpc-client#286](https://github.com/dynamic-labs/forward-mpc-client/issues/286) [#11396](https://github.com/dynamic-labs/dynamic-auth/issues/11396)
14
+
15
+ ## [4.85.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.84.1...v4.85.0) (2026-05-29)
16
+
17
+
18
+ ### Features
19
+
20
+ * **moonpay:** add getMoonPayCurrencies API, MOONPAY_PROVIDER_ID, and chain enum fix ([#11362](https://github.com/dynamic-labs/dynamic-auth/issues/11362)) ([8f1c841](https://github.com/dynamic-labs/dynamic-auth/commit/8f1c841dcab3249e82a7152be373c0e0204a2f47))
21
+ * **sdk-react-core:** extend usePrivateTokenBalances with `accountAddress`, `tokenAddresses`, `includeNativeBalance`, `includeFiat` ([#11380](https://github.com/dynamic-labs/dynamic-auth/issues/11380)) ([ccb6d47](https://github.com/dynamic-labs/dynamic-auth/commit/ccb6d47b4683a12a13aaf8311ecffae3d46464a3))
22
+ * **sdk-react-core:** forward `chainName` + `networkId` through `usePrivateTokenBalances` ([#11383](https://github.com/dynamic-labs/dynamic-auth/issues/11383)) ([c2ad110](https://github.com/dynamic-labs/dynamic-auth/commit/c2ad1103d4d4fdba67fc9b50b60945a843adae99))
23
+
24
+
25
+ ### Bug Fixes
26
+
27
+ * **aleo:** drop optimistically deducted unshielded rows when balance hits zero ([#11371](https://github.com/dynamic-labs/dynamic-auth/issues/11371)) ([a3bb8e8](https://github.com/dynamic-labs/dynamic-auth/commit/a3bb8e8fa7e877340c829c991ba31eeb8fa4fcf1)), closes [#11337](https://github.com/dynamic-labs/dynamic-auth/issues/11337)
28
+ * **aleo:** re-read gas sponsored flag after async fetchFee resolves ([#11375](https://github.com/dynamic-labs/dynamic-auth/issues/11375)) ([d27e74a](https://github.com/dynamic-labs/dynamic-auth/commit/d27e74a309aff18eb6b18046fe34e9e64363d331))
29
+ * remediate high-severity dependency vulnerabilities ([#11339](https://github.com/dynamic-labs/dynamic-auth/issues/11339)) ([f025b30](https://github.com/dynamic-labs/dynamic-auth/commit/f025b308e29153de49c88d91233139bb00caaf4e))
30
+ * **waas:** guard upgradeToDynamicWaas on the wallet arg, not primaryWallet ([#11324](https://github.com/dynamic-labs/dynamic-auth/issues/11324)) ([3e95eaf](https://github.com/dynamic-labs/dynamic-auth/commit/3e95eaf50afd2f49ff1cc416e5bf211ee04fbb23))
31
+
2
32
  ### [4.84.1](https://github.com/dynamic-labs/dynamic-auth/compare/v4.84.0...v4.84.1) (2026-05-28)
3
33
 
4
34
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.84.1";
6
+ var version = "4.86.0";
7
7
 
8
8
  exports.version = version;
package/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  'use client'
2
- var version = "4.84.1";
2
+ var version = "4.86.0";
3
3
 
4
4
  export { version };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dynamic-labs/ethereum-gasless-extension",
3
- "version": "4.84.1",
3
+ "version": "4.86.0",
4
4
  "main": "./src/index.cjs",
5
5
  "module": "./src/index.js",
6
6
  "types": "./src/index.d.ts",
@@ -14,11 +14,11 @@
14
14
  "./package.json": "./package.json"
15
15
  },
16
16
  "dependencies": {
17
- "@dynamic-labs/ethereum-gasless-core": "4.84.1",
18
- "@dynamic-labs/assert-package-version": "4.84.1",
19
- "@dynamic-labs/client": "4.84.1",
20
- "@dynamic-labs/message-transport": "4.84.1",
21
- "@dynamic-labs/webview-messages": "4.84.1"
17
+ "@dynamic-labs/ethereum-gasless-core": "4.86.0",
18
+ "@dynamic-labs/assert-package-version": "4.86.0",
19
+ "@dynamic-labs/client": "4.86.0",
20
+ "@dynamic-labs/message-transport": "4.86.0",
21
+ "@dynamic-labs/webview-messages": "4.86.0"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "viem": "^2.45.3"
@@ -3,9 +3,8 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var _tslib = require('../../../_virtual/_tslib.cjs');
7
6
  var messageTransport = require('@dynamic-labs/message-transport');
8
- var toWireCalls = require('./toWireCalls/toWireCalls.cjs');
7
+ var toWireParams = require('./toWireParams/toWireParams.cjs');
9
8
 
10
9
  const ethereumGaslessExtensionName = 'ethereumGasless';
11
10
  const EthereumGaslessExtension = () => (_, core) => {
@@ -17,18 +16,9 @@ const EthereumGaslessExtension = () => (_, core) => {
17
16
  getStatus: (params) => requestChannel.request('ethereumGasless_getStatus', params),
18
17
  is7702DelegationActive: (params) => requestChannel.request('ethereumGasless_is7702DelegationActive', params),
19
18
  isEnabled: () => requestChannel.request('ethereumGasless_isEnabled'),
20
- relay: (_a) => {
21
- var { calls } = _a, rest = _tslib.__rest(_a, ["calls"]);
22
- return requestChannel.request('ethereumGasless_relay', Object.assign({ calls: toWireCalls.toWireCalls(calls) }, rest));
23
- },
24
- send: (_a) => {
25
- var { calls } = _a, rest = _tslib.__rest(_a, ["calls"]);
26
- return requestChannel.request('ethereumGasless_send', Object.assign({ calls: toWireCalls.toWireCalls(calls) }, rest));
27
- },
28
- sign: (_a) => {
29
- var { calls } = _a, rest = _tslib.__rest(_a, ["calls"]);
30
- return requestChannel.request('ethereumGasless_sign', Object.assign({ calls: toWireCalls.toWireCalls(calls) }, rest));
31
- },
19
+ relay: (params) => requestChannel.request('ethereumGasless_relay', toWireParams.toWireParams(params)),
20
+ send: (params) => requestChannel.request('ethereumGasless_send', toWireParams.toWireParams(params)),
21
+ sign: (params) => requestChannel.request('ethereumGasless_sign', toWireParams.toWireParams(params)),
32
22
  sign7702Authorization: (params) => requestChannel.request('ethereumGasless_sign7702Authorization', params),
33
23
  waitFor: (params) => requestChannel.request('ethereumGasless_waitFor', params),
34
24
  },
@@ -1,7 +1,6 @@
1
1
  'use client'
2
- import { __rest } from '../../../_virtual/_tslib.js';
3
2
  import { createRequestChannel } from '@dynamic-labs/message-transport';
4
- import { toWireCalls } from './toWireCalls/toWireCalls.js';
3
+ import { toWireParams } from './toWireParams/toWireParams.js';
5
4
 
6
5
  const ethereumGaslessExtensionName = 'ethereumGasless';
7
6
  const EthereumGaslessExtension = () => (_, core) => {
@@ -13,18 +12,9 @@ const EthereumGaslessExtension = () => (_, core) => {
13
12
  getStatus: (params) => requestChannel.request('ethereumGasless_getStatus', params),
14
13
  is7702DelegationActive: (params) => requestChannel.request('ethereumGasless_is7702DelegationActive', params),
15
14
  isEnabled: () => requestChannel.request('ethereumGasless_isEnabled'),
16
- relay: (_a) => {
17
- var { calls } = _a, rest = __rest(_a, ["calls"]);
18
- return requestChannel.request('ethereumGasless_relay', Object.assign({ calls: toWireCalls(calls) }, rest));
19
- },
20
- send: (_a) => {
21
- var { calls } = _a, rest = __rest(_a, ["calls"]);
22
- return requestChannel.request('ethereumGasless_send', Object.assign({ calls: toWireCalls(calls) }, rest));
23
- },
24
- sign: (_a) => {
25
- var { calls } = _a, rest = __rest(_a, ["calls"]);
26
- return requestChannel.request('ethereumGasless_sign', Object.assign({ calls: toWireCalls(calls) }, rest));
27
- },
15
+ relay: (params) => requestChannel.request('ethereumGasless_relay', toWireParams(params)),
16
+ send: (params) => requestChannel.request('ethereumGasless_send', toWireParams(params)),
17
+ sign: (params) => requestChannel.request('ethereumGasless_sign', toWireParams(params)),
28
18
  sign7702Authorization: (params) => requestChannel.request('ethereumGasless_sign7702Authorization', params),
29
19
  waitFor: (params) => requestChannel.request('ethereumGasless_waitFor', params),
30
20
  },
@@ -0,0 +1 @@
1
+ export { toWireParams } from './toWireParams';
@@ -0,0 +1,19 @@
1
+ 'use client'
2
+ 'use strict';
3
+
4
+ Object.defineProperty(exports, '__esModule', { value: true });
5
+
6
+ var _tslib = require('../../../../_virtual/_tslib.cjs');
7
+ var toWireCalls = require('../toWireCalls/toWireCalls.cjs');
8
+
9
+ /**
10
+ * Serializes the consumer-facing unsigned-calls input into the wire shape that
11
+ * survives `postMessage`: the `bigint` call values and the optional `bigint`
12
+ * nonce are stringified so the request can cross `messageTransport`.
13
+ */
14
+ const toWireParams = (_a) => {
15
+ var { calls, nonce } = _a, rest = _tslib.__rest(_a, ["calls", "nonce"]);
16
+ return (Object.assign(Object.assign({}, rest), { calls: toWireCalls.toWireCalls(calls), nonce: nonce === null || nonce === void 0 ? void 0 : nonce.toString() }));
17
+ };
18
+
19
+ exports.toWireParams = toWireParams;
@@ -0,0 +1,8 @@
1
+ import type { EthereumGaslessUnsignedCallsArgs } from '@dynamic-labs/webview-messages';
2
+ import type { IEthereumGaslessExtensionInput } from '../../types';
3
+ /**
4
+ * Serializes the consumer-facing unsigned-calls input into the wire shape that
5
+ * survives `postMessage`: the `bigint` call values and the optional `bigint`
6
+ * nonce are stringified so the request can cross `messageTransport`.
7
+ */
8
+ export declare const toWireParams: ({ calls, nonce, ...rest }: IEthereumGaslessExtensionInput) => EthereumGaslessUnsignedCallsArgs;
@@ -0,0 +1,15 @@
1
+ 'use client'
2
+ import { __rest } from '../../../../_virtual/_tslib.js';
3
+ import { toWireCalls } from '../toWireCalls/toWireCalls.js';
4
+
5
+ /**
6
+ * Serializes the consumer-facing unsigned-calls input into the wire shape that
7
+ * survives `postMessage`: the `bigint` call values and the optional `bigint`
8
+ * nonce are stringified so the request can cross `messageTransport`.
9
+ */
10
+ const toWireParams = (_a) => {
11
+ var { calls, nonce } = _a, rest = __rest(_a, ["calls", "nonce"]);
12
+ return (Object.assign(Object.assign({}, rest), { calls: toWireCalls(calls), nonce: nonce === null || nonce === void 0 ? void 0 : nonce.toString() }));
13
+ };
14
+
15
+ export { toWireParams };
@@ -11,6 +11,15 @@ export type IEthereumGaslessExtensionInput = {
11
11
  calls: SponsoredTransactionCall[];
12
12
  authorization?: SerializedAuthorization;
13
13
  autoDelegate?: boolean;
14
+ /**
15
+ * Optional bitmap nonce to sign the intent with. When provided, nonce
16
+ * generation (and its on-chain `isNonceUsed` check) is skipped and the
17
+ * supplied value is used as-is. Matches the `nonce` field returned on the
18
+ * signed-transaction result so callers can reuse it. Useful for
19
+ * mutually-exclusive / cancel-replace intents. Serialized to a string at the
20
+ * `messageTransport` boundary since `bigint` does not survive `postMessage`.
21
+ */
22
+ nonce?: bigint;
14
23
  validForSeconds?: number;
15
24
  };
16
25
  export type IEthereumGaslessExtension = {