@dynamic-labs/ethereum-gasless-extension 4.85.0 → 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,17 @@
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
+
2
15
  ## [4.85.0](https://github.com/dynamic-labs/dynamic-auth/compare/v4.84.1...v4.85.0) (2026-05-29)
3
16
 
4
17
 
package/package.cjs CHANGED
@@ -3,6 +3,6 @@
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
5
5
 
6
- var version = "4.85.0";
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.85.0";
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.85.0",
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.85.0",
18
- "@dynamic-labs/assert-package-version": "4.85.0",
19
- "@dynamic-labs/client": "4.85.0",
20
- "@dynamic-labs/message-transport": "4.85.0",
21
- "@dynamic-labs/webview-messages": "4.85.0"
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 = {