viem 2.49.0 → 2.49.2

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,17 @@
1
1
  # viem
2
2
 
3
+ ## 2.49.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [`215469280e57b4ec729bd2537857a4ca363c984b`](https://github.com/wevm/viem/commit/215469280e57b4ec729bd2537857a4ca363c984b) Thanks [@jxom](https://github.com/jxom)! - `viem/tempo`: Renamed `Actions.wallet.send` to `Actions.wallet.transfer`.
8
+
9
+ ## 2.49.1
10
+
11
+ ### Patch Changes
12
+
13
+ - [#4614](https://github.com/wevm/viem/pull/4614) [`8e914dfb47a3a5a95bc0f7527d74aaec626cc570`](https://github.com/wevm/viem/commit/8e914dfb47a3a5a95bc0f7527d74aaec626cc570) Thanks [@decofe](https://github.com/decofe)! - `viem/tempo`: Encoded WebAuthn `keyData` as a 2-byte length hint instead of a raw blob, and auto-shimmed user-provided values longer than 4 bytes.
14
+
3
15
  ## 2.49.0
4
16
 
5
17
  ### Minor Changes
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
- exports.version = '2.49.0';
4
+ exports.version = '2.49.2';
5
5
  //# sourceMappingURL=version.js.map
@@ -71,12 +71,12 @@ function formatTransactionRequest(r, action) {
71
71
  const [keyType, keyData] = (() => {
72
72
  const type = account && 'keyType' in account ? account.keyType : account?.source;
73
73
  if (!type)
74
- return [request.keyType, request.keyData];
74
+ return [request.keyType, shimKeyData(request.keyData)];
75
75
  if (type === 'webAuthn')
76
- return ['webAuthn', `0x${'ff'.repeat(1400)}`];
76
+ return ['webAuthn', '0x0578'];
77
77
  if (['p256', 'secp256k1'].includes(type))
78
78
  return [type, undefined];
79
- return [request.keyType, request.keyData];
79
+ return [request.keyType, shimKeyData(request.keyData)];
80
80
  })();
81
81
  const keyId = account && 'accessKeyAddress' in account
82
82
  ? account.accessKeyAddress
@@ -102,4 +102,12 @@ function formatTransactionRequest(r, action) {
102
102
  : {}),
103
103
  };
104
104
  }
105
+ function shimKeyData(data) {
106
+ if (!data)
107
+ return data;
108
+ const byteLength = (data.length - 2) / 2;
109
+ if (byteLength <= 4)
110
+ return data;
111
+ return Hex.fromNumber(byteLength, { size: 2 });
112
+ }
105
113
  //# sourceMappingURL=Formatters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Formatters.js","sourceRoot":"","sources":["../../tempo/Formatters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Formatters.js","sourceRoot":"","sources":["../../tempo/Formatters.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.send = send;
3
+ exports.transfer = transfer;
4
4
  exports.swap = swap;
5
5
  exports.deposit = deposit;
6
- async function send(client, parameters = {}) {
6
+ async function transfer(client, parameters) {
7
7
  return client.request({
8
- method: 'wallet_send',
8
+ method: 'wallet_transfer',
9
9
  params: [parameters],
10
10
  }, { retryCount: 0 });
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../tempo/actions/wallet.ts"],"names":[],"mappings":";;AA+BA,oBAeC;AA4DD,oBAeC;AAiDD,0BAeC;AA1JM,KAAK,UAAU,IAAI,CACxB,MAAgC,EAChC,aAA8B,EAAE;IAEhC,OAAO,MAAM,CAAC,OAAO,CAKnB;QACE,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,CAAC,UAAU,CAAC;KACrB,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAA;AACH,CAAC;AA4DM,KAAK,UAAU,IAAI,CACxB,MAAgC,EAChC,aAA8B,EAAE;IAEhC,OAAO,MAAM,CAAC,OAAO,CAKnB;QACE,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,CAAC,UAAU,CAAC;KACrB,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAA;AACH,CAAC;AAiDM,KAAK,UAAU,OAAO,CAC3B,MAAgC,EAChC,aAAiC,EAAE;IAEnC,OAAO,MAAM,CAAC,OAAO,CAKnB;QACE,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,CAAC,UAAU,CAAC;KACrB,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../tempo/actions/wallet.ts"],"names":[],"mappings":";;AA6CA,4BAeC;AAoGD,oBAeC;AAiDD,0BAeC;AAlMM,KAAK,UAAU,QAAQ,CAC5B,MAAgC,EAChC,UAA+B;IAE/B,OAAO,MAAM,CAAC,OAAO,CAKnB;QACE,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,CAAC,UAAU,CAAC;KACrB,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAA;AACH,CAAC;AAoGM,KAAK,UAAU,IAAI,CACxB,MAAgC,EAChC,aAA8B,EAAE;IAEhC,OAAO,MAAM,CAAC,OAAO,CAKnB;QACE,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,CAAC,UAAU,CAAC;KACrB,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAA;AACH,CAAC;AAiDM,KAAK,UAAU,OAAO,CAC3B,MAAgC,EAChC,aAAiC,EAAE;IAEnC,OAAO,MAAM,CAAC,OAAO,CAKnB;QACE,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,CAAC,UAAU,CAAC;KACrB,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAA;AACH,CAAC"}
@@ -1,2 +1,2 @@
1
- export const version = '2.49.0';
1
+ export const version = '2.49.2';
2
2
  //# sourceMappingURL=version.js.map
@@ -72,13 +72,16 @@ export function formatTransactionRequest(r, action) {
72
72
  const [keyType, keyData] = (() => {
73
73
  const type = account && 'keyType' in account ? account.keyType : account?.source;
74
74
  if (!type)
75
- return [request.keyType, request.keyData];
75
+ return [request.keyType, shimKeyData(request.keyData)];
76
76
  if (type === 'webAuthn')
77
- // TODO: derive correct bytes size of key data based on webauthn create metadata.
78
- return ['webAuthn', `0x${'ff'.repeat(1400)}`];
77
+ // Send a 2-byte big-endian length hint (1400 = 0x0578) instead of a
78
+ // 1400-byte dummy blob. The node's gas estimator expects key_data to
79
+ // be 1, 2, or 4 bytes encoding the desired WebAuthn signature size;
80
+ // anything else falls back to the 800-byte default.
81
+ return ['webAuthn', '0x0578'];
79
82
  if (['p256', 'secp256k1'].includes(type))
80
83
  return [type, undefined];
81
- return [request.keyType, request.keyData];
84
+ return [request.keyType, shimKeyData(request.keyData)];
82
85
  })();
83
86
  const keyId = account && 'accessKeyAddress' in account
84
87
  ? account.accessKeyAddress
@@ -104,4 +107,18 @@ export function formatTransactionRequest(r, action) {
104
107
  : {}),
105
108
  };
106
109
  }
110
+ /**
111
+ * Auto-shim user-provided keyData that is longer than 4 bytes into a
112
+ * 2-byte big-endian length hint. The node gas estimator only accepts
113
+ * 1, 2, or 4-byte key_data as a size hint; anything else silently falls
114
+ * back to the 800-byte default.
115
+ */
116
+ function shimKeyData(data) {
117
+ if (!data)
118
+ return data;
119
+ const byteLength = (data.length - 2) / 2; // subtract "0x" prefix
120
+ if (byteLength <= 4)
121
+ return data;
122
+ return Hex.fromNumber(byteLength, { size: 2 });
123
+ }
107
124
  //# sourceMappingURL=Formatters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Formatters.js","sourceRoot":"","sources":["../../tempo/Formatters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Formatters.js","sourceRoot":"","sources":["../../tempo/Formatters.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  /**
2
- * Opens the wallet send flow with optional pre-filled send fields.
2
+ * Transfers a TIP-20 token. Discriminated on `editable`:
3
+ *
4
+ * - omitted or `false` (default): read-only. Uses an access key when
5
+ * one matches (signs without showing the wallet UI), otherwise falls
6
+ * back to a confirm dialog the user has to approve.
7
+ * - `true`: editable. Opens the wallet send UI with the supplied fields
8
+ * pre-filled for the user to confirm or edit before signing.
3
9
  *
4
10
  * @example
5
11
  * ```ts
@@ -10,20 +16,27 @@
10
16
  * transport: custom(window.ethereum),
11
17
  * })
12
18
  *
13
- * const { receipt } = await Actions.wallet.send(client, {
19
+ * // Read-only (no UI when an access key matches)
20
+ * const { receipt } = await Actions.wallet.transfer(client, {
14
21
  * amount: '1.5',
15
22
  * to: '0x...',
16
23
  * token: '0x...',
17
24
  * })
25
+ *
26
+ * // Editable (opens wallet UI)
27
+ * await Actions.wallet.transfer(client, {
28
+ * editable: true,
29
+ * token: 'pathUSD',
30
+ * })
18
31
  * ```
19
32
  *
20
33
  * @param client - Client.
21
34
  * @param parameters - Parameters.
22
- * @returns The submitted send receipt and chain ID.
35
+ * @returns The submitted transfer receipt and chain ID.
23
36
  */
24
- export async function send(client, parameters = {}) {
37
+ export async function transfer(client, parameters) {
25
38
  return client.request({
26
- method: 'wallet_send',
39
+ method: 'wallet_transfer',
27
40
  params: [parameters],
28
41
  }, { retryCount: 0 });
29
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../tempo/actions/wallet.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,MAAgC,EAChC,aAA8B,EAAE;IAEhC,OAAO,MAAM,CAAC,OAAO,CAKnB;QACE,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,CAAC,UAAU,CAAC;KACrB,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAA;AACH,CAAC;AAqCD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,MAAgC,EAChC,aAA8B,EAAE;IAEhC,OAAO,MAAM,CAAC,OAAO,CAKnB;QACE,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,CAAC,UAAU,CAAC;KACrB,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAA;AACH,CAAC;AA2BD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAgC,EAChC,aAAiC,EAAE;IAEnC,OAAO,MAAM,CAAC,OAAO,CAKnB;QACE,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,CAAC,UAAU,CAAC;KACrB,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../../../tempo/actions/wallet.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAgC,EAChC,UAA+B;IAE/B,OAAO,MAAM,CAAC,OAAO,CAKnB;QACE,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,CAAC,UAAU,CAAC;KACrB,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAA;AACH,CAAC;AA6ED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,MAAgC,EAChC,aAA8B,EAAE;IAEhC,OAAO,MAAM,CAAC,OAAO,CAKnB;QACE,MAAM,EAAE,aAAa;QACrB,MAAM,EAAE,CAAC,UAAU,CAAC;KACrB,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAA;AACH,CAAC;AA2BD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,MAAgC,EAChC,aAAiC,EAAE;IAEnC,OAAO,MAAM,CAAC,OAAO,CAKnB;QACE,MAAM,EAAE,gBAAgB;QACxB,MAAM,EAAE,CAAC,UAAU,CAAC;KACrB,EACD,EAAE,UAAU,EAAE,CAAC,EAAE,CAClB,CAAA;AACH,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const version = "2.49.0";
1
+ export declare const version = "2.49.2";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Formatters.d.ts","sourceRoot":"","sources":["../../tempo/Formatters.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAA;AAEzB,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,cAAc,GAC1B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAkCtC;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,qBAAqB,GAC7B,kBAAkB,CAEpB;AAED,wBAAgB,wBAAwB,CACtC,CAAC,EAAE,kBAAkB,EACrB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAC1B,qBAAqB,CAuFvB"}
1
+ {"version":3,"file":"Formatters.d.ts","sourceRoot":"","sources":["../../tempo/Formatters.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAA;AAEzB,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,cAAc,GAC1B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAkCtC;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,qBAAqB,GAC7B,kBAAkB,CAEpB;AAED,wBAAgB,wBAAwB,CACtC,CAAC,EAAE,kBAAkB,EACrB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,GAC1B,qBAAqB,CA0FvB"}
@@ -3,10 +3,17 @@ import type { Client } from '../../clients/createClient.js';
3
3
  import type { Transport } from '../../clients/transports/createTransport.js';
4
4
  import type { ErrorType as CoreErrorType } from '../../errors/utils.js';
5
5
  import type { Chain } from '../../types/chain.js';
6
+ import type { OneOf } from '../../types/utils.js';
6
7
  import type { RequestErrorType } from '../../utils/buildRequest.js';
7
8
  import type { TransactionReceipt } from '../Transaction.js';
8
9
  /**
9
- * Opens the wallet send flow with optional pre-filled send fields.
10
+ * Transfers a TIP-20 token. Discriminated on `editable`:
11
+ *
12
+ * - omitted or `false` (default): read-only. Uses an access key when
13
+ * one matches (signs without showing the wallet UI), otherwise falls
14
+ * back to a confirm dialog the user has to approve.
15
+ * - `true`: editable. Opens the wallet send UI with the supplied fields
16
+ * pre-filled for the user to confirm or edit before signing.
10
17
  *
11
18
  * @example
12
19
  * ```ts
@@ -17,30 +24,66 @@ import type { TransactionReceipt } from '../Transaction.js';
17
24
  * transport: custom(window.ethereum),
18
25
  * })
19
26
  *
20
- * const { receipt } = await Actions.wallet.send(client, {
27
+ * // Read-only (no UI when an access key matches)
28
+ * const { receipt } = await Actions.wallet.transfer(client, {
21
29
  * amount: '1.5',
22
30
  * to: '0x...',
23
31
  * token: '0x...',
24
32
  * })
33
+ *
34
+ * // Editable (opens wallet UI)
35
+ * await Actions.wallet.transfer(client, {
36
+ * editable: true,
37
+ * token: 'pathUSD',
38
+ * })
25
39
  * ```
26
40
  *
27
41
  * @param client - Client.
28
42
  * @param parameters - Parameters.
29
- * @returns The submitted send receipt and chain ID.
43
+ * @returns The submitted transfer receipt and chain ID.
30
44
  */
31
- export declare function send<chain extends Chain | undefined>(client: Client<Transport, chain>, parameters?: send.Parameters): Promise<send.ReturnValue>;
32
- export declare namespace send {
33
- type Parameters = {
34
- /** Human-readable amount to pre-fill (for example, "1.5"). */
35
- amount?: string | undefined;
45
+ export declare function transfer<chain extends Chain | undefined>(client: Client<Transport, chain>, parameters: transfer.Parameters): Promise<transfer.ReturnValue>;
46
+ export declare namespace transfer {
47
+ /**
48
+ * Read-only variant uses an access key when one matches, otherwise
49
+ * shows a confirm dialog.
50
+ */
51
+ type ReadOnly = {
52
+ /** Human-readable amount to transfer (for example, `"1.5"`). */
53
+ amount: string;
36
54
  /**
37
- * Fee payer override. `false` to disable the wallet's default fee payer,
38
- * a URL string to use a custom fee payer service.
55
+ * Skip the editable wallet UI. The wallet still shows a confirm
56
+ * dialog when no matching access key is available.
57
+ * @default false
39
58
  */
40
- feePayer?: boolean | string | undefined;
59
+ editable?: false | undefined;
60
+ /**
61
+ * Address to transfer tokens from. Defaults to the active account. When
62
+ * set to a different address, the call uses `transferFrom` and requires
63
+ * the active account to have an allowance from `from`.
64
+ */
65
+ from?: Address | undefined;
66
+ /**
67
+ * UTF-8 memo (max 32 bytes) to attach to the transfer.
68
+ */
69
+ memo?: string | undefined;
70
+ /** Recipient address. */
71
+ to: Address;
41
72
  /**
42
- * UTF-8 memo (max 32 bytes) to attach to the transfer. Wallet rejects
43
- * the request if the selected token does not support memos (non-TIP-20).
73
+ * Token to transfer, accepted as either a contract address or a curated
74
+ * tokenlist symbol (case-insensitive, for example `"pathUsd"`). Symbols
75
+ * are resolved against the curated tokenlist on the active chain.
76
+ */
77
+ token: Address | string;
78
+ };
79
+ /** Editable variant — opens the wallet send UI with optional pre-filled fields. */
80
+ type Editable = {
81
+ /** Human-readable amount to pre-fill (for example, `"1.5"`). */
82
+ amount?: string | undefined;
83
+ /** Show the wallet UI for the user to confirm or edit. */
84
+ editable: true;
85
+ /**
86
+ * UTF-8 memo (max 32 bytes) to attach to the transfer.
44
87
  */
45
88
  memo?: string | undefined;
46
89
  /** Recipient address to pre-fill. */
@@ -53,10 +96,19 @@ export declare namespace send {
53
96
  */
54
97
  token?: Address | string | undefined;
55
98
  };
99
+ type Parameters = {
100
+ /** Chain id. Defaults to the active chain. */
101
+ chainId?: number | undefined;
102
+ /**
103
+ * Fee payer override. `false` to disable the wallet's default fee payer,
104
+ * a URL string to use a custom fee payer service.
105
+ */
106
+ feePayer?: boolean | string | undefined;
107
+ } & OneOf<ReadOnly | Editable>;
56
108
  type ReturnValue = {
57
- /** Chain ID the send was submitted to. */
109
+ /** Chain ID the transfer was submitted to. */
58
110
  chainId: number;
59
- /** Receipt of the submitted send. */
111
+ /** Receipt of the submitted transfer. */
60
112
  receipt: TransactionReceipt;
61
113
  };
62
114
  type ErrorType = RequestErrorType | CoreErrorType;
@@ -1 +1 @@
1
- {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../tempo/actions/wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../../tempo/actions/wallet.ts"],"names":[],"mappings":"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"}
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '2.49.0'
1
+ export const version = '2.49.2'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "2.49.0",
4
+ "version": "2.49.2",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
@@ -122,12 +122,15 @@ export function formatTransactionRequest(
122
122
  const [keyType, keyData] = (() => {
123
123
  const type =
124
124
  account && 'keyType' in account ? account.keyType : account?.source
125
- if (!type) return [request.keyType, request.keyData]
125
+ if (!type) return [request.keyType, shimKeyData(request.keyData)]
126
126
  if (type === 'webAuthn')
127
- // TODO: derive correct bytes size of key data based on webauthn create metadata.
128
- return ['webAuthn', `0x${'ff'.repeat(1400)}`]
127
+ // Send a 2-byte big-endian length hint (1400 = 0x0578) instead of a
128
+ // 1400-byte dummy blob. The node's gas estimator expects key_data to
129
+ // be 1, 2, or 4 bytes encoding the desired WebAuthn signature size;
130
+ // anything else falls back to the 800-byte default.
131
+ return ['webAuthn', '0x0578']
129
132
  if (['p256', 'secp256k1'].includes(type)) return [type, undefined]
130
- return [request.keyType, request.keyData]
133
+ return [request.keyType, shimKeyData(request.keyData)]
131
134
  })()
132
135
 
133
136
  const keyId =
@@ -157,3 +160,16 @@ export function formatTransactionRequest(
157
160
  : {}),
158
161
  } as never
159
162
  }
163
+
164
+ /**
165
+ * Auto-shim user-provided keyData that is longer than 4 bytes into a
166
+ * 2-byte big-endian length hint. The node gas estimator only accepts
167
+ * 1, 2, or 4-byte key_data as a size hint; anything else silently falls
168
+ * back to the 800-byte default.
169
+ */
170
+ function shimKeyData(data: Hex.Hex | undefined): Hex.Hex | undefined {
171
+ if (!data) return data
172
+ const byteLength = (data.length - 2) / 2 // subtract "0x" prefix
173
+ if (byteLength <= 4) return data
174
+ return Hex.fromNumber(byteLength, { size: 2 })
175
+ }
@@ -3,11 +3,18 @@ import type { Client } from '../../clients/createClient.js'
3
3
  import type { Transport } from '../../clients/transports/createTransport.js'
4
4
  import type { ErrorType as CoreErrorType } from '../../errors/utils.js'
5
5
  import type { Chain } from '../../types/chain.js'
6
+ import type { OneOf } from '../../types/utils.js'
6
7
  import type { RequestErrorType } from '../../utils/buildRequest.js'
7
8
  import type { TransactionReceipt } from '../Transaction.js'
8
9
 
9
10
  /**
10
- * Opens the wallet send flow with optional pre-filled send fields.
11
+ * Transfers a TIP-20 token. Discriminated on `editable`:
12
+ *
13
+ * - omitted or `false` (default): read-only. Uses an access key when
14
+ * one matches (signs without showing the wallet UI), otherwise falls
15
+ * back to a confirm dialog the user has to approve.
16
+ * - `true`: editable. Opens the wallet send UI with the supplied fields
17
+ * pre-filled for the user to confirm or edit before signing.
11
18
  *
12
19
  * @example
13
20
  * ```ts
@@ -18,46 +25,83 @@ import type { TransactionReceipt } from '../Transaction.js'
18
25
  * transport: custom(window.ethereum),
19
26
  * })
20
27
  *
21
- * const { receipt } = await Actions.wallet.send(client, {
28
+ * // Read-only (no UI when an access key matches)
29
+ * const { receipt } = await Actions.wallet.transfer(client, {
22
30
  * amount: '1.5',
23
31
  * to: '0x...',
24
32
  * token: '0x...',
25
33
  * })
34
+ *
35
+ * // Editable (opens wallet UI)
36
+ * await Actions.wallet.transfer(client, {
37
+ * editable: true,
38
+ * token: 'pathUSD',
39
+ * })
26
40
  * ```
27
41
  *
28
42
  * @param client - Client.
29
43
  * @param parameters - Parameters.
30
- * @returns The submitted send receipt and chain ID.
44
+ * @returns The submitted transfer receipt and chain ID.
31
45
  */
32
- export async function send<chain extends Chain | undefined>(
46
+ export async function transfer<chain extends Chain | undefined>(
33
47
  client: Client<Transport, chain>,
34
- parameters: send.Parameters = {},
35
- ): Promise<send.ReturnValue> {
48
+ parameters: transfer.Parameters,
49
+ ): Promise<transfer.ReturnValue> {
36
50
  return client.request<{
37
- Method: 'wallet_send'
38
- Parameters: [send.Parameters]
39
- ReturnType: send.ReturnValue
51
+ Method: 'wallet_transfer'
52
+ Parameters: [transfer.Parameters]
53
+ ReturnType: transfer.ReturnValue
40
54
  }>(
41
55
  {
42
- method: 'wallet_send',
56
+ method: 'wallet_transfer',
43
57
  params: [parameters],
44
58
  },
45
59
  { retryCount: 0 },
46
60
  )
47
61
  }
48
62
 
49
- export declare namespace send {
50
- export type Parameters = {
51
- /** Human-readable amount to pre-fill (for example, "1.5"). */
52
- amount?: string | undefined
63
+ export declare namespace transfer {
64
+ /**
65
+ * Read-only variant uses an access key when one matches, otherwise
66
+ * shows a confirm dialog.
67
+ */
68
+ type ReadOnly = {
69
+ /** Human-readable amount to transfer (for example, `"1.5"`). */
70
+ amount: string
53
71
  /**
54
- * Fee payer override. `false` to disable the wallet's default fee payer,
55
- * a URL string to use a custom fee payer service.
72
+ * Skip the editable wallet UI. The wallet still shows a confirm
73
+ * dialog when no matching access key is available.
74
+ * @default false
56
75
  */
57
- feePayer?: boolean | string | undefined
76
+ editable?: false | undefined
77
+ /**
78
+ * Address to transfer tokens from. Defaults to the active account. When
79
+ * set to a different address, the call uses `transferFrom` and requires
80
+ * the active account to have an allowance from `from`.
81
+ */
82
+ from?: Address | undefined
83
+ /**
84
+ * UTF-8 memo (max 32 bytes) to attach to the transfer.
85
+ */
86
+ memo?: string | undefined
87
+ /** Recipient address. */
88
+ to: Address
58
89
  /**
59
- * UTF-8 memo (max 32 bytes) to attach to the transfer. Wallet rejects
60
- * the request if the selected token does not support memos (non-TIP-20).
90
+ * Token to transfer, accepted as either a contract address or a curated
91
+ * tokenlist symbol (case-insensitive, for example `"pathUsd"`). Symbols
92
+ * are resolved against the curated tokenlist on the active chain.
93
+ */
94
+ token: Address | string
95
+ }
96
+
97
+ /** Editable variant — opens the wallet send UI with optional pre-filled fields. */
98
+ type Editable = {
99
+ /** Human-readable amount to pre-fill (for example, `"1.5"`). */
100
+ amount?: string | undefined
101
+ /** Show the wallet UI for the user to confirm or edit. */
102
+ editable: true
103
+ /**
104
+ * UTF-8 memo (max 32 bytes) to attach to the transfer.
61
105
  */
62
106
  memo?: string | undefined
63
107
  /** Recipient address to pre-fill. */
@@ -71,10 +115,20 @@ export declare namespace send {
71
115
  token?: Address | string | undefined
72
116
  }
73
117
 
118
+ export type Parameters = {
119
+ /** Chain id. Defaults to the active chain. */
120
+ chainId?: number | undefined
121
+ /**
122
+ * Fee payer override. `false` to disable the wallet's default fee payer,
123
+ * a URL string to use a custom fee payer service.
124
+ */
125
+ feePayer?: boolean | string | undefined
126
+ } & OneOf<ReadOnly | Editable>
127
+
74
128
  export type ReturnValue = {
75
- /** Chain ID the send was submitted to. */
129
+ /** Chain ID the transfer was submitted to. */
76
130
  chainId: number
77
- /** Receipt of the submitted send. */
131
+ /** Receipt of the submitted transfer. */
78
132
  receipt: TransactionReceipt
79
133
  }
80
134