ox 1.0.0-beta.13 → 1.0.0-beta.14

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.
@@ -43,6 +43,12 @@ const CallToRpc = z.object({
43
43
  to: z.optional(z_Address.Address),
44
44
  value: z.optional(uintBigintNumberish()),
45
45
  });
46
+ const Capabilities = z.record(z.string(), z.unknown());
47
+ const MultisigInit = z.object({
48
+ salt: z_Hex.Hex,
49
+ threshold: z.number(),
50
+ owners: z.readonly(z.array(z.object({ owner: z_Address.Address, weight: z.number() }))),
51
+ });
46
52
  /** RPC tempo transaction request schema. */
47
53
  export const Rpc = z.object({
48
54
  accessList: z.optional(z_AccessList.AccessList),
@@ -50,6 +56,7 @@ export const Rpc = z.object({
50
56
  blobVersionedHashes: z.optional(z.readonly(z.array(z_Hex.Hex))),
51
57
  blobs: z.optional(z.readonly(z.array(z_Hex.Hex))),
52
58
  calls: z.optional(z.readonly(z.array(CallRpc))),
59
+ capabilities: z.optional(Capabilities),
53
60
  chainId: z.optional(z_Hex.Hex),
54
61
  data: z.optional(z_Hex.Hex),
55
62
  feePayer: z.optional(z.boolean()),
@@ -61,10 +68,13 @@ export const Rpc = z.object({
61
68
  input: z.optional(z_Hex.Hex),
62
69
  keyAuthorization: z.optional(z_KeyAuthorization.Rpc),
63
70
  keyData: z.optional(z_Hex.Hex),
71
+ keyId: z.optional(z_Address.Address),
64
72
  keyType: z.optional(KeyType),
65
73
  maxFeePerBlobGas: z.optional(z_Hex.Hex),
66
74
  maxFeePerGas: z.optional(z_Hex.Hex),
67
75
  maxPriorityFeePerGas: z.optional(z_Hex.Hex),
76
+ multisigInit: z.optional(MultisigInit),
77
+ multisigSignatureCount: z.optional(z.number()),
68
78
  nonce: z.optional(z_Hex.Hex),
69
79
  nonceKey: z.optional(z_Hex.Hex),
70
80
  r: z.optional(z_Hex.Hex),
@@ -97,6 +107,7 @@ export const Domain = z.object({
97
107
  blobVersionedHashes: z.optional(z.readonly(z.array(z_Hex.Hex))),
98
108
  blobs: z.optional(z.readonly(z.array(z_Hex.Hex))),
99
109
  calls: z.optional(z.readonly(z.array(Call))),
110
+ capabilities: z.optional(Capabilities),
100
111
  chainId: z.optional(z.number()),
101
112
  data: z.optional(z_Hex.Hex),
102
113
  feePayer: z.optional(z.boolean()),
@@ -108,10 +119,13 @@ export const Domain = z.object({
108
119
  input: z.optional(z_Hex.Hex),
109
120
  keyAuthorization: z.optional(z_KeyAuthorization.Domain),
110
121
  keyData: z.optional(z_Hex.Hex),
122
+ keyId: z.optional(z_Address.Address),
111
123
  keyType: z.optional(KeyType),
112
124
  maxFeePerBlobGas: z.optional(z.bigint()),
113
125
  maxFeePerGas: z.optional(z.bigint()),
114
126
  maxPriorityFeePerGas: z.optional(z.bigint()),
127
+ multisigInit: z.optional(MultisigInit),
128
+ multisigSignatureCount: z.optional(z.number()),
115
129
  nonce: z.optional(z.bigint()),
116
130
  nonceKey: z.optional(z.union([z.bigint(), z.literal('random')])),
117
131
  r: z.optional(z_Hex.Hex),
@@ -132,6 +146,7 @@ export const DomainToRpc = z.object({
132
146
  blobVersionedHashes: z.optional(z.readonly(z.array(z_Hex.Hex))),
133
147
  blobs: z.optional(z.readonly(z.array(z_Hex.Hex))),
134
148
  calls: z.optional(z.readonly(z.array(CallToRpc))),
149
+ capabilities: z.optional(Capabilities),
135
150
  chainId: z.optional(uintNumberNumberish()),
136
151
  data: z.optional(z_Hex.Hex),
137
152
  feePayer: z.optional(z.boolean()),
@@ -143,10 +158,13 @@ export const DomainToRpc = z.object({
143
158
  input: z.optional(z_Hex.Hex),
144
159
  keyAuthorization: z.optional(z_KeyAuthorization.DomainToRpc),
145
160
  keyData: z.optional(z_Hex.Hex),
161
+ keyId: z.optional(z_Address.Address),
146
162
  keyType: z.optional(KeyType),
147
163
  maxFeePerBlobGas: z.optional(uintBigintNumberish()),
148
164
  maxFeePerGas: z.optional(uintBigintNumberish()),
149
165
  maxPriorityFeePerGas: z.optional(uintBigintNumberish()),
166
+ multisigInit: z.optional(MultisigInit),
167
+ multisigSignatureCount: z.optional(z.number()),
150
168
  nonce: z.optional(uintBigintNumberish()),
151
169
  nonceKey: z.optional(z.union([uintBigintNumberish(), z.literal('random')])),
152
170
  r: z.optional(z_Hex.Hex),
@@ -195,6 +213,20 @@ function fromRpc(request) {
195
213
  request_.feeToken = request.feeToken;
196
214
  if (request.keyAuthorization)
197
215
  request_.keyAuthorization = z.decode(z_KeyAuthorization.KeyAuthorization, request.keyAuthorization);
216
+ if (typeof request.capabilities !== 'undefined')
217
+ request_.capabilities = request.capabilities;
218
+ if (typeof request.feePayer !== 'undefined')
219
+ request_.feePayer = request.feePayer;
220
+ if (typeof request.keyData !== 'undefined')
221
+ request_.keyData = request.keyData;
222
+ if (typeof request.keyId !== 'undefined')
223
+ request_.keyId = request.keyId;
224
+ if (typeof request.keyType !== 'undefined')
225
+ request_.keyType = request.keyType;
226
+ if (typeof request.multisigInit !== 'undefined')
227
+ request_.multisigInit = request.multisigInit;
228
+ if (typeof request.multisigSignatureCount !== 'undefined')
229
+ request_.multisigSignatureCount = request.multisigSignatureCount;
198
230
  if (typeof request.validBefore !== 'undefined')
199
231
  request_.validBefore = core_Hex.toNumber(request.validBefore);
200
232
  if (typeof request.validAfter !== 'undefined')
@@ -209,6 +241,20 @@ function toRpc(request) {
209
241
  ...request,
210
242
  authorizationList: undefined,
211
243
  });
244
+ const tempo = typeof request.calls !== 'undefined' ||
245
+ typeof request.capabilities !== 'undefined' ||
246
+ typeof request.feePayer !== 'undefined' ||
247
+ typeof request.feeToken !== 'undefined' ||
248
+ typeof request.keyAuthorization !== 'undefined' ||
249
+ typeof request.keyData !== 'undefined' ||
250
+ typeof request.keyId !== 'undefined' ||
251
+ typeof request.keyType !== 'undefined' ||
252
+ typeof request.multisigInit !== 'undefined' ||
253
+ typeof request.multisigSignatureCount !== 'undefined' ||
254
+ typeof request.nonceKey !== 'undefined' ||
255
+ typeof request.validBefore !== 'undefined' ||
256
+ typeof request.validAfter !== 'undefined' ||
257
+ request.type === 'tempo';
212
258
  if (request.authorizationList)
213
259
  request_rpc.authorizationList = z.encode(z_AuthorizationTempo.ListSignedToRpc, request.authorizationList);
214
260
  if (request.signature)
@@ -221,21 +267,39 @@ function toRpc(request) {
221
267
  value: call.value ? encodeNumberish(call.value) : '0x',
222
268
  data: call.data ?? '0x',
223
269
  }));
224
- else if (request.to || request.data || request.value)
270
+ else if (request.to || request.data || request.value || tempo)
225
271
  request_rpc.calls = [
226
272
  {
227
- to: request.to ?? undefined,
273
+ to: request.to ||
274
+ (tempo && (!request.data || request.data === '0x')
275
+ ? '0x0000000000000000000000000000000000000000'
276
+ : undefined),
228
277
  value: request.value ? encodeNumberish(request.value) : '0x',
229
278
  data: request.data ?? '0x',
230
279
  },
231
280
  ];
232
- if (typeof request.feeToken !== 'undefined')
281
+ if (typeof request.feeToken !== 'undefined' &&
282
+ !(request.feePayer === true && !request.feePayerSignature))
233
283
  request_rpc.feeToken =
234
284
  typeof request.feeToken === 'bigint'
235
285
  ? z.encode(z_TokenId.address, request.feeToken)
236
286
  : request.feeToken;
237
287
  if (request.keyAuthorization)
238
288
  request_rpc.keyAuthorization = z.encode(z_KeyAuthorization.KeyAuthorizationToRpc, request.keyAuthorization);
289
+ if (typeof request.capabilities !== 'undefined')
290
+ request_rpc.capabilities = request.capabilities;
291
+ if (typeof request.feePayer !== 'undefined')
292
+ request_rpc.feePayer = request.feePayer;
293
+ if (typeof request.keyData !== 'undefined')
294
+ request_rpc.keyData = shimKeyData(request.keyData);
295
+ if (typeof request.keyId !== 'undefined')
296
+ request_rpc.keyId = request.keyId;
297
+ if (typeof request.keyType !== 'undefined')
298
+ request_rpc.keyType = request.keyType;
299
+ if (typeof request.multisigInit !== 'undefined')
300
+ request_rpc.multisigInit = request.multisigInit;
301
+ if (typeof request.multisigSignatureCount !== 'undefined')
302
+ request_rpc.multisigSignatureCount = request.multisigSignatureCount;
239
303
  if (typeof request.validBefore !== 'undefined')
240
304
  request_rpc.validBefore = encodeNumberish(request.validBefore);
241
305
  if (typeof request.validAfter !== 'undefined')
@@ -249,14 +313,7 @@ function toRpc(request) {
249
313
  })();
250
314
  if (nonceKey)
251
315
  request_rpc.nonceKey = nonceKey;
252
- if (typeof request.calls !== 'undefined' ||
253
- typeof request.feePayer !== 'undefined' ||
254
- typeof request.feeToken !== 'undefined' ||
255
- typeof request.keyAuthorization !== 'undefined' ||
256
- typeof request.nonceKey !== 'undefined' ||
257
- typeof request.validBefore !== 'undefined' ||
258
- typeof request.validAfter !== 'undefined' ||
259
- request.type === 'tempo') {
316
+ if (tempo) {
260
317
  request_rpc.type = toRpcType.tempo;
261
318
  delete request_rpc.data;
262
319
  delete request_rpc.input;
@@ -265,6 +322,16 @@ function toRpc(request) {
265
322
  }
266
323
  return request_rpc;
267
324
  }
325
+ /**
326
+ * Shims key data longer than 4 bytes into a 2-byte big-endian length hint
327
+ * (the node's gas estimator only accepts 1, 2, or 4-byte key data).
328
+ */
329
+ function shimKeyData(data) {
330
+ const byteLength = core_Hex.size(data);
331
+ if (byteLength <= 4)
332
+ return data;
333
+ return core_Hex.fromNumber(byteLength, { size: 2 });
334
+ }
268
335
  /** Decodes an RPC signature into a recovered signature. */
269
336
  function signatureFromRpc(signature) {
270
337
  const v = signature.v ? Number(signature.v) : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionRequest.js","sourceRoot":"","sources":["../../../src/zod/tempo/TransactionRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransactionRequest.js","sourceRoot":"","sources":["../../../src/zod/tempo/TransactionRequest.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "ox",
3
3
  "description": "Ethereum Standard Library",
4
4
  "type": "module",
5
- "version": "1.0.0-beta.13",
5
+ "version": "1.0.0-beta.14",
6
6
  "main": "./dist/index.js",
7
7
  "sideEffects": false,
8
8
  "license": "MIT",
@@ -69,6 +69,40 @@ describe('fromRpc', () => {
69
69
  expect(request.nonceKey).toBe(255n)
70
70
  })
71
71
 
72
+ test('behavior: gas-model hints and capabilities pass through', () => {
73
+ const request = TransactionRequest.fromRpc({
74
+ calls: [{ to: '0xcafebabecafebabecafebabecafebabecafebabe' }],
75
+ capabilities: { balanceDiffs: true },
76
+ feePayer: true,
77
+ keyData: '0x0578',
78
+ keyId: '0xcccccccccccccccccccccccccccccccccccccccc',
79
+ keyType: 'webAuthn',
80
+ multisigInit: {
81
+ salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
82
+ threshold: 2,
83
+ owners: [
84
+ {
85
+ owner: '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
86
+ weight: 1,
87
+ },
88
+ {
89
+ owner: '0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',
90
+ weight: 1,
91
+ },
92
+ ],
93
+ },
94
+ multisigSignatureCount: 2,
95
+ type: '0x76',
96
+ })
97
+ expect(request.capabilities).toEqual({ balanceDiffs: true })
98
+ expect(request.feePayer).toBe(true)
99
+ expect(request.keyData).toBe('0x0578')
100
+ expect(request.keyId).toBe('0xcccccccccccccccccccccccccccccccccccccccc')
101
+ expect(request.keyType).toBe('webAuthn')
102
+ expect(request.multisigInit).toMatchObject({ threshold: 2 })
103
+ expect(request.multisigSignatureCount).toBe(2)
104
+ })
105
+
72
106
  test('behavior: empty', () => {
73
107
  const request = TransactionRequest.fromRpc({})
74
108
  expect(request).toMatchInlineSnapshot('{}')
@@ -123,6 +157,101 @@ describe('toRpc', () => {
123
157
  `)
124
158
  })
125
159
 
160
+ test('behavior: gas-model hints and capabilities are carried', () => {
161
+ const request = TransactionRequest.toRpc({
162
+ calls: [{ to: '0xcafebabecafebabecafebabecafebabecafebabe' }],
163
+ capabilities: { balanceDiffs: true },
164
+ feePayer: false,
165
+ keyData: '0x0578',
166
+ keyId: '0xcccccccccccccccccccccccccccccccccccccccc',
167
+ keyType: 'webAuthn',
168
+ multisigInit: {
169
+ salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
170
+ threshold: 2,
171
+ owners: [
172
+ {
173
+ owner: '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
174
+ weight: 1,
175
+ },
176
+ {
177
+ owner: '0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',
178
+ weight: 1,
179
+ },
180
+ ],
181
+ },
182
+ multisigSignatureCount: 2,
183
+ })
184
+ expect(request.capabilities).toEqual({ balanceDiffs: true })
185
+ expect(request.feePayer).toBe(false)
186
+ expect(request.keyData).toBe('0x0578')
187
+ expect(request.keyId).toBe('0xcccccccccccccccccccccccccccccccccccccccc')
188
+ expect(request.keyType).toBe('webAuthn')
189
+ expect(request.multisigInit).toMatchObject({ threshold: 2 })
190
+ expect(request.multisigSignatureCount).toBe(2)
191
+ expect(request.type).toBe('0x76')
192
+ })
193
+
194
+ test('behavior: key data longer than 4 bytes shims into a length hint', () => {
195
+ const request = TransactionRequest.toRpc({
196
+ calls: [{ to: '0xcafebabecafebabecafebabecafebabecafebabe' }],
197
+ keyData: `0x${'aa'.repeat(1400)}`,
198
+ keyType: 'webAuthn',
199
+ })
200
+ // 1400 bytes -> 0x0578 big-endian length hint.
201
+ expect(request.keyData).toBe('0x0578')
202
+ })
203
+
204
+ test('behavior: feeToken is withheld until the fee payer signs (TIP-76)', () => {
205
+ const pending = TransactionRequest.toRpc({
206
+ calls: [{ to: '0xcafebabecafebabecafebabecafebabecafebabe' }],
207
+ feePayer: true,
208
+ feeToken: '0x20c0000000000000000000000000000000000000',
209
+ })
210
+ expect(pending.feeToken).toBeUndefined()
211
+ expect(pending.feePayer).toBe(true)
212
+
213
+ const signed = TransactionRequest.toRpc({
214
+ calls: [{ to: '0xcafebabecafebabecafebabecafebabecafebabe' }],
215
+ feePayer: true,
216
+ feePayerSignature: {
217
+ r: '0x0000000000000000000000000000000000000000000000000000000000000001',
218
+ s: '0x0000000000000000000000000000000000000000000000000000000000000002',
219
+ yParity: 1,
220
+ },
221
+ feeToken: '0x20c0000000000000000000000000000000000000',
222
+ })
223
+ expect(signed.feeToken).toBe('0x20c0000000000000000000000000000000000000')
224
+ })
225
+
226
+ test('behavior: data-less call defaults to the zero address', () => {
227
+ const flat = TransactionRequest.toRpc({
228
+ feeToken: '0x20c0000000000000000000000000000000000000',
229
+ value: 100n,
230
+ })
231
+ expect(flat.calls).toMatchInlineSnapshot(`
232
+ [
233
+ {
234
+ "data": "0x",
235
+ "to": "0x0000000000000000000000000000000000000000",
236
+ "value": "0x64",
237
+ },
238
+ ]
239
+ `)
240
+
241
+ const bare = TransactionRequest.toRpc({
242
+ feeToken: '0x20c0000000000000000000000000000000000000',
243
+ })
244
+ expect(bare.calls).toMatchInlineSnapshot(`
245
+ [
246
+ {
247
+ "data": "0x",
248
+ "to": "0x0000000000000000000000000000000000000000",
249
+ "value": "0x",
250
+ },
251
+ ]
252
+ `)
253
+ })
254
+
126
255
  test("behavior: nonceKey 'random' generates a 192-bit value", () => {
127
256
  const request = TransactionRequest.toRpc({
128
257
  calls: [
@@ -311,9 +440,53 @@ describe('toEnvelope', () => {
311
440
  expect(envelope.validAfter).toBe(100)
312
441
  })
313
442
 
314
- test('error: empty calls throws via envelope assert', () => {
443
+ test('behavior: data-less request defaults to a zero-address call', () => {
444
+ const envelope = TransactionRequest.toEnvelope({
445
+ chainId: 1,
446
+ maxFeePerGas: 1n,
447
+ })
448
+ expect(envelope.calls).toEqual([
449
+ { to: '0x0000000000000000000000000000000000000000' },
450
+ ])
451
+ })
452
+
453
+ test('behavior: feePayer marks the envelope as pending a fee payer signature (TIP-76)', () => {
454
+ const envelope = TransactionRequest.toEnvelope({
455
+ calls: [{ to: '0x0000000000000000000000000000000000000000' }],
456
+ chainId: 1,
457
+ feePayer: true,
458
+ feeToken: '0x20c0000000000000000000000000000000000000',
459
+ maxFeePerGas: 1n,
460
+ })
461
+ expect(envelope.feePayerSignature).toBeNull()
462
+
463
+ // An explicit fee payer signature wins over the marker.
464
+ const signed = TransactionRequest.toEnvelope({
465
+ calls: [{ to: '0x0000000000000000000000000000000000000000' }],
466
+ chainId: 1,
467
+ feePayer: true,
468
+ feePayerSignature: {
469
+ r: '0x0000000000000000000000000000000000000000000000000000000000000001',
470
+ s: '0x0000000000000000000000000000000000000000000000000000000000000002',
471
+ yParity: 1,
472
+ },
473
+ maxFeePerGas: 1n,
474
+ })
475
+ expect(signed.feePayerSignature).not.toBeNull()
476
+
477
+ // No fee payer, no marker.
478
+ const plain = TransactionRequest.toEnvelope({
479
+ calls: [{ to: '0x0000000000000000000000000000000000000000' }],
480
+ chainId: 1,
481
+ maxFeePerGas: 1n,
482
+ })
483
+ expect(plain.feePayerSignature).toBeUndefined()
484
+ })
485
+
486
+ test('error: explicit empty calls throws via envelope assert', () => {
315
487
  expect(() =>
316
488
  TransactionRequest.toEnvelope({
489
+ calls: [],
317
490
  chainId: 1,
318
491
  maxFeePerGas: 1n,
319
492
  }),
@@ -1,3 +1,4 @@
1
+ import type * as Address from '../core/Address.js'
1
2
  import type * as Errors from '../core/Errors.js'
2
3
  import * as Hex from '../core/Hex.js'
3
4
  import * as Quantity from '../core/internal/quantity.js'
@@ -6,6 +7,7 @@ import * as Signature from '../core/Signature.js'
6
7
  import * as ox_TransactionRequest from '../core/TransactionRequest.js'
7
8
  import * as AuthorizationTempo from './AuthorizationTempo.js'
8
9
  import * as KeyAuthorization from './KeyAuthorization.js'
10
+ import type * as MultisigConfig from './MultisigConfig.js'
9
11
  import * as SignatureEnvelope from './SignatureEnvelope.js'
10
12
  import * as TokenId from './TokenId.js'
11
13
  import * as Transaction from './Transaction.js'
@@ -14,6 +16,13 @@ import type { Call } from './TxEnvelopeTempo.js'
14
16
 
15
17
  type KeyType = 'secp256k1' | 'p256' | 'webAuthn'
16
18
 
19
+ /**
20
+ * Bootstrap multisig config hint for node-side gas modeling (TIP-1061).
21
+ * The node prices multisig gas from it during simulation, and ignores it
22
+ * for registered senders.
23
+ */
24
+ export type MultisigInit = Compute<MultisigConfig.Config & { salt: Hex.Hex }>
25
+
17
26
  /**
18
27
  * A Transaction Request that is generic to all transaction types.
19
28
  *
@@ -35,12 +44,16 @@ export type TransactionRequest<
35
44
  | AuthorizationTempo.ListSigned<bigintType, numberType>
36
45
  | undefined
37
46
  calls?: readonly Call<bigintType>[] | undefined
47
+ capabilities?: Record<string, unknown> | undefined
38
48
  feePayerSignature?: Signature.Signature<true, numberType> | null | undefined
39
49
  keyAuthorization?: KeyAuthorization.KeyAuthorization<true> | undefined
40
50
  keyData?: Hex.Hex | undefined
51
+ keyId?: Address.Address | undefined
41
52
  keyType?: KeyType | undefined
42
53
  feePayer?: boolean | undefined
43
54
  feeToken?: TokenId.TokenIdOrAddress | undefined
55
+ multisigInit?: MultisigInit | undefined
56
+ multisigSignatureCount?: number | undefined
44
57
  nonceKey?: 'random' | bigintType | undefined
45
58
  signature?: SignatureEnvelope.SignatureEnvelope<numberType> | undefined
46
59
  validBefore?: numberType | undefined
@@ -202,6 +215,22 @@ export function toRpc(request: toRpc.Input): Rpc {
202
215
  authorizationList: undefined,
203
216
  }) as Rpc
204
217
 
218
+ const tempo =
219
+ typeof request.calls !== 'undefined' ||
220
+ typeof request.capabilities !== 'undefined' ||
221
+ typeof request.feePayer !== 'undefined' ||
222
+ typeof request.feeToken !== 'undefined' ||
223
+ typeof request.keyAuthorization !== 'undefined' ||
224
+ typeof request.keyData !== 'undefined' ||
225
+ typeof request.keyId !== 'undefined' ||
226
+ typeof request.keyType !== 'undefined' ||
227
+ typeof request.multisigInit !== 'undefined' ||
228
+ typeof request.multisigSignatureCount !== 'undefined' ||
229
+ typeof request.nonceKey !== 'undefined' ||
230
+ typeof request.validBefore !== 'undefined' ||
231
+ typeof request.validAfter !== 'undefined' ||
232
+ request.type === 'tempo'
233
+
205
234
  if (request.authorizationList)
206
235
  request_rpc.authorizationList = AuthorizationTempo.toRpcList(
207
236
  request.authorizationList,
@@ -216,20 +245,40 @@ export function toRpc(request: toRpc.Input): Rpc {
216
245
  value: call.value ? Quantity.fromNumberish(call.value) : '0x',
217
246
  data: call.data ?? '0x',
218
247
  }))
219
- else if (request.to || request.data || request.value)
248
+ else if (request.to || request.data || request.value || tempo)
220
249
  request_rpc.calls = [
221
250
  {
222
- to: request.to ?? undefined,
251
+ to:
252
+ request.to ||
253
+ (tempo && (!request.data || request.data === '0x')
254
+ ? '0x0000000000000000000000000000000000000000'
255
+ : undefined),
223
256
  value: request.value ? Quantity.fromNumberish(request.value) : '0x',
224
257
  data: request.data ?? '0x',
225
258
  },
226
259
  ]
227
- if (typeof request.feeToken !== 'undefined')
260
+ if (
261
+ typeof request.feeToken !== 'undefined' &&
262
+ !(request.feePayer === true && !request.feePayerSignature)
263
+ )
228
264
  request_rpc.feeToken = TokenId.toAddress(request.feeToken)
229
265
  if (request.keyAuthorization)
230
266
  request_rpc.keyAuthorization = KeyAuthorization.toRpc(
231
267
  request.keyAuthorization,
232
268
  )
269
+ if (typeof request.capabilities !== 'undefined')
270
+ request_rpc.capabilities = request.capabilities
271
+ if (typeof request.feePayer !== 'undefined')
272
+ request_rpc.feePayer = request.feePayer
273
+ if (typeof request.keyData !== 'undefined')
274
+ request_rpc.keyData = shimKeyData(request.keyData)
275
+ if (typeof request.keyId !== 'undefined') request_rpc.keyId = request.keyId
276
+ if (typeof request.keyType !== 'undefined')
277
+ request_rpc.keyType = request.keyType
278
+ if (typeof request.multisigInit !== 'undefined')
279
+ request_rpc.multisigInit = request.multisigInit
280
+ if (typeof request.multisigSignatureCount !== 'undefined')
281
+ request_rpc.multisigSignatureCount = request.multisigSignatureCount
233
282
  if (typeof request.validBefore !== 'undefined')
234
283
  request_rpc.validBefore = Quantity.fromNumberish(request.validBefore)
235
284
  if (typeof request.validAfter !== 'undefined')
@@ -243,16 +292,7 @@ export function toRpc(request: toRpc.Input): Rpc {
243
292
  })()
244
293
  if (nonceKey) request_rpc.nonceKey = nonceKey
245
294
 
246
- if (
247
- typeof request.calls !== 'undefined' ||
248
- typeof request.feePayer !== 'undefined' ||
249
- typeof request.feeToken !== 'undefined' ||
250
- typeof request.keyAuthorization !== 'undefined' ||
251
- typeof request.nonceKey !== 'undefined' ||
252
- typeof request.validBefore !== 'undefined' ||
253
- typeof request.validAfter !== 'undefined' ||
254
- request.type === 'tempo'
255
- ) {
295
+ if (tempo) {
256
296
  request_rpc.type = Transaction.toRpcType.tempo
257
297
  delete request_rpc.data
258
298
  delete request_rpc.input
@@ -306,21 +346,20 @@ export function toEnvelope(
306
346
  ): TxEnvelopeTempo.TxEnvelopeTempo {
307
347
  const calls = (() => {
308
348
  if (request.calls) return request.calls
309
- if (request.to || request.data || request.value)
310
- return [
311
- {
312
- ...(typeof request.to !== 'undefined' && request.to !== null
313
- ? { to: request.to }
314
- : {}),
315
- ...(typeof request.data !== 'undefined'
316
- ? { data: request.data }
317
- : {}),
318
- ...(typeof request.value !== 'undefined'
319
- ? { value: request.value }
320
- : {}),
321
- },
322
- ] satisfies readonly Call[]
323
- return [] as readonly Call[]
349
+ const to =
350
+ request.to ||
351
+ (!request.data || request.data === '0x'
352
+ ? '0x0000000000000000000000000000000000000000'
353
+ : undefined)
354
+ return [
355
+ {
356
+ ...(typeof to !== 'undefined' ? { to } : {}),
357
+ ...(typeof request.data !== 'undefined' ? { data: request.data } : {}),
358
+ ...(typeof request.value !== 'undefined'
359
+ ? { value: request.value }
360
+ : {}),
361
+ },
362
+ ] satisfies readonly Call[]
324
363
  })()
325
364
 
326
365
  const nonceKey = (() => {
@@ -342,7 +381,9 @@ export function toEnvelope(
342
381
  : {}),
343
382
  ...(typeof request.feePayerSignature !== 'undefined'
344
383
  ? { feePayerSignature: request.feePayerSignature }
345
- : {}),
384
+ : request.feePayer
385
+ ? { feePayerSignature: null }
386
+ : {}),
346
387
  ...(typeof request.feeToken !== 'undefined'
347
388
  ? { feeToken: request.feeToken }
348
389
  : {}),
@@ -387,3 +428,15 @@ export declare namespace toEnvelope {
387
428
  | Hex.toBigInt.ErrorType
388
429
  | Errors.GlobalErrorType
389
430
  }
431
+
432
+ /**
433
+ * Shims key data longer than 4 bytes into a 2-byte big-endian length hint.
434
+ * The node's gas estimator only accepts 1, 2, or 4-byte key data as a
435
+ * signature-size hint; anything else silently falls back to the default.
436
+ * @internal
437
+ */
438
+ function shimKeyData(data: Hex.Hex): Hex.Hex {
439
+ const byteLength = Hex.size(data)
440
+ if (byteLength <= 4) return data
441
+ return Hex.fromNumber(byteLength, { size: 2 })
442
+ }
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /** @internal */
2
- export const version = '1.0.0-beta.13'
2
+ export const version = '1.0.0-beta.14'