ox 0.14.25 → 0.14.26
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 +8 -0
- package/_cjs/tempo/KeyAuthorization.js +130 -57
- package/_cjs/tempo/KeyAuthorization.js.map +1 -1
- package/_cjs/version.js +1 -1
- package/_esm/tempo/KeyAuthorization.js +155 -62
- package/_esm/tempo/KeyAuthorization.js.map +1 -1
- package/_esm/version.js +1 -1
- package/_types/tempo/KeyAuthorization.d.ts +54 -2
- package/_types/tempo/KeyAuthorization.d.ts.map +1 -1
- package/_types/version.d.ts +1 -1
- package/package.json +2 -3
- package/tempo/KeyAuthorization.test.ts +333 -0
- package/tempo/KeyAuthorization.ts +240 -72
- package/tempo/e2e.test.ts +330 -0
- package/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# ox
|
|
2
2
|
|
|
3
|
+
## 0.14.26
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#262](https://github.com/wevm/ox/pull/262) [`b1ac8c8`](https://github.com/wevm/ox/commit/b1ac8c83f9f5f7a89e14f3486a1e32305e019292) Thanks [@jxom](https://github.com/jxom)! - `ox/tempo`: Added support for TIP-1049 (admin access keys) via optional `isAdmin` and `account` fields on `KeyAuthorization` that bind into the signing hash.
|
|
8
|
+
|
|
9
|
+
- [#260](https://github.com/wevm/ox/pull/260) [`581ccee`](https://github.com/wevm/ox/commit/581ccee2d9dab4a2c2f12aad0b2a63b1d4d0d62d) Thanks [@jxom](https://github.com/jxom)! - `ox/tempo`: Added support for TIP-1053 (witnesses in key authorizations) via an optional 32-byte `witness` field on `KeyAuthorization` that is included in the signing hash.
|
|
10
|
+
|
|
3
11
|
## 0.14.25
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidAdminMarkerError = exports.InvalidWitnessSizeError = void 0;
|
|
3
4
|
exports.from = from;
|
|
4
5
|
exports.fromRpc = fromRpc;
|
|
5
6
|
exports.fromTuple = fromTuple;
|
|
@@ -19,6 +20,8 @@ function from(authorization, options = {}) {
|
|
|
19
20
|
if ('keyId' in authorization)
|
|
20
21
|
return fromRpc(authorization);
|
|
21
22
|
const auth = authorization;
|
|
23
|
+
if (auth.witness !== undefined)
|
|
24
|
+
assertWitness(auth.witness);
|
|
22
25
|
const resolved = {
|
|
23
26
|
...auth,
|
|
24
27
|
address: TempoAddress.resolve(auth.address),
|
|
@@ -54,7 +57,12 @@ function from(authorization, options = {}) {
|
|
|
54
57
|
}
|
|
55
58
|
function fromRpc(authorization) {
|
|
56
59
|
const { allowedCalls, chainId, keyId, expiry, limits, keyType } = authorization;
|
|
60
|
+
const witness = authorization.witness ?? undefined;
|
|
61
|
+
const isAdmin = authorization.isAdmin ?? undefined;
|
|
62
|
+
const account = authorization.account ?? undefined;
|
|
57
63
|
const signature = SignatureEnvelope.fromRpc(authorization.signature);
|
|
64
|
+
if (witness !== undefined)
|
|
65
|
+
assertWitness(witness);
|
|
58
66
|
const scopes = allowedCalls
|
|
59
67
|
? allowedCalls.flatMap((callScope) => {
|
|
60
68
|
if (!callScope.selectorRules || callScope.selectorRules.length === 0)
|
|
@@ -82,11 +90,14 @@ function fromRpc(authorization) {
|
|
|
82
90
|
...(scopes ? { scopes } : {}),
|
|
83
91
|
signature,
|
|
84
92
|
type: keyType,
|
|
93
|
+
...(witness !== undefined ? { witness } : {}),
|
|
94
|
+
...(isAdmin ? { isAdmin: true } : {}),
|
|
95
|
+
...(account !== undefined ? { account } : {}),
|
|
85
96
|
};
|
|
86
97
|
}
|
|
87
98
|
function fromTuple(tuple) {
|
|
88
99
|
const [authorization, signatureSerialized] = tuple;
|
|
89
|
-
const [chainId, keyType_hex, keyId,
|
|
100
|
+
const [chainId, keyType_hex, keyId, ...trailing] = authorization;
|
|
90
101
|
const keyType = (() => {
|
|
91
102
|
switch (keyType_hex) {
|
|
92
103
|
case '0x':
|
|
@@ -100,51 +111,60 @@ function fromTuple(tuple) {
|
|
|
100
111
|
throw new Error(`Invalid key type: ${keyType_hex}`);
|
|
101
112
|
}
|
|
102
113
|
})();
|
|
114
|
+
const [rawExpiry, rawLimits, rawScopes, rawWitness, rawIsAdmin, rawAccount] = trailing;
|
|
115
|
+
const expiry = isAbsent(rawExpiry)
|
|
116
|
+
? undefined
|
|
117
|
+
: hexToNumber(rawExpiry) || undefined;
|
|
118
|
+
const limits = Array.isArray(rawLimits) && rawLimits.length > 0
|
|
119
|
+
? rawLimits.map((limitTuple) => {
|
|
120
|
+
const [token, limit, period] = limitTuple;
|
|
121
|
+
return {
|
|
122
|
+
token,
|
|
123
|
+
limit: hexToBigint(limit),
|
|
124
|
+
...(period !== undefined ? { period: hexToNumber(period) } : {}),
|
|
125
|
+
};
|
|
126
|
+
})
|
|
127
|
+
: undefined;
|
|
128
|
+
const scopes = Array.isArray(rawScopes)
|
|
129
|
+
? rawScopes.flatMap((scopeTuple) => {
|
|
130
|
+
const [address, selectorRules] = scopeTuple;
|
|
131
|
+
if (!Array.isArray(selectorRules) || selectorRules.length === 0)
|
|
132
|
+
return [{ address }];
|
|
133
|
+
return selectorRules.map((ruleTuple) => {
|
|
134
|
+
const [selector, recipients] = ruleTuple;
|
|
135
|
+
return {
|
|
136
|
+
address,
|
|
137
|
+
selector,
|
|
138
|
+
...(Array.isArray(recipients) && recipients.length > 0
|
|
139
|
+
? { recipients }
|
|
140
|
+
: {}),
|
|
141
|
+
};
|
|
142
|
+
});
|
|
143
|
+
})
|
|
144
|
+
: undefined;
|
|
145
|
+
const witness = isAbsent(rawWitness) ? undefined : rawWitness;
|
|
146
|
+
if (witness !== undefined)
|
|
147
|
+
assertWitness(witness);
|
|
148
|
+
const isAdmin = (() => {
|
|
149
|
+
if (isAbsent(rawIsAdmin))
|
|
150
|
+
return undefined;
|
|
151
|
+
if (rawIsAdmin !== '0x01')
|
|
152
|
+
throw new InvalidAdminMarkerError(rawIsAdmin);
|
|
153
|
+
return true;
|
|
154
|
+
})();
|
|
155
|
+
const account = isAbsent(rawAccount)
|
|
156
|
+
? undefined
|
|
157
|
+
: rawAccount;
|
|
158
|
+
const adminPair = account !== undefined && isAdmin ? { account, isAdmin: true } : {};
|
|
103
159
|
const args = {
|
|
104
160
|
address: keyId,
|
|
105
|
-
expiry: typeof expiry !== 'undefined'
|
|
106
|
-
? hexToNumber(expiry) || undefined
|
|
107
|
-
: undefined,
|
|
108
|
-
type: keyType,
|
|
109
161
|
chainId: chainId === '0x' ? 0n : Hex.toBigInt(chainId),
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
...(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
? {
|
|
117
|
-
limits: limits.map((limitTuple) => {
|
|
118
|
-
const [token, limit, period] = limitTuple;
|
|
119
|
-
return {
|
|
120
|
-
token,
|
|
121
|
-
limit: hexToBigint(limit),
|
|
122
|
-
...(typeof period !== 'undefined'
|
|
123
|
-
? { period: hexToNumber(period) }
|
|
124
|
-
: {}),
|
|
125
|
-
};
|
|
126
|
-
}),
|
|
127
|
-
}
|
|
128
|
-
: {}),
|
|
129
|
-
...(typeof scopes !== 'undefined' && Array.isArray(scopes)
|
|
130
|
-
? {
|
|
131
|
-
scopes: scopes.flatMap((scopeTuple) => {
|
|
132
|
-
const [address, selectorRules] = scopeTuple;
|
|
133
|
-
if (!Array.isArray(selectorRules) || selectorRules.length === 0)
|
|
134
|
-
return [{ address }];
|
|
135
|
-
return selectorRules.map((ruleTuple) => {
|
|
136
|
-
const [selector, recipients] = ruleTuple;
|
|
137
|
-
return {
|
|
138
|
-
address,
|
|
139
|
-
selector,
|
|
140
|
-
...(Array.isArray(recipients) && recipients.length > 0
|
|
141
|
-
? { recipients }
|
|
142
|
-
: {}),
|
|
143
|
-
};
|
|
144
|
-
});
|
|
145
|
-
}),
|
|
146
|
-
}
|
|
147
|
-
: {}),
|
|
162
|
+
type: keyType,
|
|
163
|
+
...(expiry !== undefined ? { expiry } : {}),
|
|
164
|
+
...(limits !== undefined ? { limits } : {}),
|
|
165
|
+
...(scopes !== undefined ? { scopes } : {}),
|
|
166
|
+
...(witness !== undefined ? { witness } : {}),
|
|
167
|
+
...adminPair,
|
|
148
168
|
};
|
|
149
169
|
if (signatureSerialized)
|
|
150
170
|
args.signature = SignatureEnvelope.deserialize(signatureSerialized);
|
|
@@ -167,7 +187,9 @@ function serialize(authorization) {
|
|
|
167
187
|
return Rlp.fromHex(tuple);
|
|
168
188
|
}
|
|
169
189
|
function toRpc(authorization) {
|
|
170
|
-
const { address, scopes, chainId, expiry, limits, type, signature } = authorization;
|
|
190
|
+
const { address, scopes, chainId, expiry, limits, type, signature, witness, isAdmin, account, } = authorization;
|
|
191
|
+
if (witness !== undefined)
|
|
192
|
+
assertWitness(witness);
|
|
171
193
|
const allowedCalls = (() => {
|
|
172
194
|
if (!scopes)
|
|
173
195
|
return undefined;
|
|
@@ -202,10 +224,15 @@ function toRpc(authorization) {
|
|
|
202
224
|
})),
|
|
203
225
|
signature: SignatureEnvelope.toRpc(signature),
|
|
204
226
|
...(allowedCalls ? { allowedCalls } : {}),
|
|
227
|
+
...(witness !== undefined ? { witness } : {}),
|
|
228
|
+
...(isAdmin ? { isAdmin: true } : {}),
|
|
229
|
+
...(account !== undefined ? { account } : {}),
|
|
205
230
|
};
|
|
206
231
|
}
|
|
207
232
|
function toTuple(authorization) {
|
|
208
|
-
const { address, chainId, scopes, expiry, limits } = authorization;
|
|
233
|
+
const { address, chainId, scopes, expiry, limits, witness, isAdmin, account, } = authorization;
|
|
234
|
+
if (witness !== undefined)
|
|
235
|
+
assertWitness(witness);
|
|
209
236
|
const signature = authorization.signature
|
|
210
237
|
? SignatureEnvelope.serialize(authorization.signature)
|
|
211
238
|
: undefined;
|
|
@@ -250,18 +277,33 @@ function toTuple(authorization) {
|
|
|
250
277
|
selectorRules.map(([selector, recipients]) => [selector, recipients]),
|
|
251
278
|
]);
|
|
252
279
|
})();
|
|
253
|
-
const
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
280
|
+
const hasTip1053Plus = witness !== undefined || isAdmin || account !== undefined;
|
|
281
|
+
const optionals = [
|
|
282
|
+
{
|
|
283
|
+
value: expiry !== null && expiry !== undefined && expiry !== 0
|
|
284
|
+
? numberToHex(expiry)
|
|
285
|
+
: undefined,
|
|
286
|
+
placeholder: '0x',
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
value: limitsValue,
|
|
290
|
+
placeholder: hasTip1053Plus ? '0x' : [],
|
|
291
|
+
},
|
|
292
|
+
{ value: callsValue, placeholder: '0x' },
|
|
293
|
+
{ value: witness, placeholder: '0x' },
|
|
294
|
+
{ value: isAdmin ? '0x01' : undefined, placeholder: '0x' },
|
|
295
|
+
{ value: account, placeholder: '0x' },
|
|
296
|
+
];
|
|
297
|
+
let lastPresent = -1;
|
|
298
|
+
for (let i = optionals.length - 1; i >= 0; i--)
|
|
299
|
+
if (optionals[i].value !== undefined) {
|
|
300
|
+
lastPresent = i;
|
|
301
|
+
break;
|
|
302
|
+
}
|
|
303
|
+
const trailing = optionals
|
|
304
|
+
.slice(0, lastPresent + 1)
|
|
305
|
+
.map(({ value, placeholder }) => value ?? placeholder);
|
|
306
|
+
const authorizationTuple = [bigintToHex(chainId), type, address, ...trailing];
|
|
265
307
|
return [authorizationTuple, ...(signature ? [signature] : [])];
|
|
266
308
|
}
|
|
267
309
|
function bigintToHex(value) {
|
|
@@ -290,4 +332,35 @@ function resolveSelector(selector) {
|
|
|
290
332
|
return selector;
|
|
291
333
|
return AbiItem.getSelector(selector);
|
|
292
334
|
}
|
|
335
|
+
function assertWitness(witness) {
|
|
336
|
+
if (Hex.size(witness) !== 32)
|
|
337
|
+
throw new InvalidWitnessSizeError(witness);
|
|
338
|
+
}
|
|
339
|
+
function isAbsent(value) {
|
|
340
|
+
return value === undefined || value === '0x';
|
|
341
|
+
}
|
|
342
|
+
class InvalidWitnessSizeError extends Error {
|
|
343
|
+
constructor(witness) {
|
|
344
|
+
super(`Witness \`${witness}\` must be exactly 32 bytes (got ${Hex.size(witness)} bytes).`);
|
|
345
|
+
Object.defineProperty(this, "name", {
|
|
346
|
+
enumerable: true,
|
|
347
|
+
configurable: true,
|
|
348
|
+
writable: true,
|
|
349
|
+
value: 'KeyAuthorization.InvalidWitnessSizeError'
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
exports.InvalidWitnessSizeError = InvalidWitnessSizeError;
|
|
354
|
+
class InvalidAdminMarkerError extends Error {
|
|
355
|
+
constructor(marker) {
|
|
356
|
+
super(`Admin marker \`${marker}\` is invalid; expected \`0x01\` (TIP-1049).`);
|
|
357
|
+
Object.defineProperty(this, "name", {
|
|
358
|
+
enumerable: true,
|
|
359
|
+
configurable: true,
|
|
360
|
+
writable: true,
|
|
361
|
+
value: 'KeyAuthorization.InvalidAdminMarkerError'
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
exports.InvalidAdminMarkerError = InvalidAdminMarkerError;
|
|
293
366
|
//# sourceMappingURL=KeyAuthorization.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../tempo/KeyAuthorization.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../tempo/KeyAuthorization.ts"],"names":[],"mappings":"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"}
|
package/_cjs/version.js
CHANGED
|
@@ -144,6 +144,8 @@ export function from(authorization, options = {}) {
|
|
|
144
144
|
if ('keyId' in authorization)
|
|
145
145
|
return fromRpc(authorization);
|
|
146
146
|
const auth = authorization;
|
|
147
|
+
if (auth.witness !== undefined)
|
|
148
|
+
assertWitness(auth.witness);
|
|
147
149
|
const resolved = {
|
|
148
150
|
...auth,
|
|
149
151
|
address: TempoAddress.resolve(auth.address),
|
|
@@ -204,7 +206,12 @@ export function from(authorization, options = {}) {
|
|
|
204
206
|
*/
|
|
205
207
|
export function fromRpc(authorization) {
|
|
206
208
|
const { allowedCalls, chainId, keyId, expiry, limits, keyType } = authorization;
|
|
209
|
+
const witness = authorization.witness ?? undefined;
|
|
210
|
+
const isAdmin = authorization.isAdmin ?? undefined;
|
|
211
|
+
const account = authorization.account ?? undefined;
|
|
207
212
|
const signature = SignatureEnvelope.fromRpc(authorization.signature);
|
|
213
|
+
if (witness !== undefined)
|
|
214
|
+
assertWitness(witness);
|
|
208
215
|
// Unflatten nested allowedCalls into flat scopes
|
|
209
216
|
const scopes = allowedCalls
|
|
210
217
|
? allowedCalls.flatMap((callScope) => {
|
|
@@ -233,6 +240,9 @@ export function fromRpc(authorization) {
|
|
|
233
240
|
...(scopes ? { scopes } : {}),
|
|
234
241
|
signature,
|
|
235
242
|
type: keyType,
|
|
243
|
+
...(witness !== undefined ? { witness } : {}),
|
|
244
|
+
...(isAdmin ? { isAdmin: true } : {}),
|
|
245
|
+
...(account !== undefined ? { account } : {}),
|
|
236
246
|
};
|
|
237
247
|
}
|
|
238
248
|
/**
|
|
@@ -276,7 +286,7 @@ export function fromRpc(authorization) {
|
|
|
276
286
|
*/
|
|
277
287
|
export function fromTuple(tuple) {
|
|
278
288
|
const [authorization, signatureSerialized] = tuple;
|
|
279
|
-
const [chainId, keyType_hex, keyId,
|
|
289
|
+
const [chainId, keyType_hex, keyId, ...trailing] = authorization;
|
|
280
290
|
const keyType = (() => {
|
|
281
291
|
switch (keyType_hex) {
|
|
282
292
|
case '0x':
|
|
@@ -290,53 +300,70 @@ export function fromTuple(tuple) {
|
|
|
290
300
|
throw new Error(`Invalid key type: ${keyType_hex}`);
|
|
291
301
|
}
|
|
292
302
|
})();
|
|
303
|
+
// Trailing optional fields in wire order. Each entry pulls one slot off the
|
|
304
|
+
// trailing array and decodes it (treating absent or RLP-null placeholders as
|
|
305
|
+
// missing). To add a new optional trailing field, append a single entry.
|
|
306
|
+
const [rawExpiry, rawLimits, rawScopes, rawWitness, rawIsAdmin, rawAccount] = trailing;
|
|
307
|
+
const expiry = isAbsent(rawExpiry)
|
|
308
|
+
? undefined
|
|
309
|
+
: hexToNumber(rawExpiry) || undefined;
|
|
310
|
+
const limits = Array.isArray(rawLimits) && rawLimits.length > 0
|
|
311
|
+
? rawLimits.map((limitTuple) => {
|
|
312
|
+
const [token, limit, period] = limitTuple;
|
|
313
|
+
return {
|
|
314
|
+
token,
|
|
315
|
+
limit: hexToBigint(limit),
|
|
316
|
+
...(period !== undefined ? { period: hexToNumber(period) } : {}),
|
|
317
|
+
};
|
|
318
|
+
})
|
|
319
|
+
: undefined;
|
|
320
|
+
const scopes = Array.isArray(rawScopes)
|
|
321
|
+
? rawScopes.flatMap((scopeTuple) => {
|
|
322
|
+
const [address, selectorRules] = scopeTuple;
|
|
323
|
+
// If no selector rules, this is an address-only scope.
|
|
324
|
+
if (!Array.isArray(selectorRules) || selectorRules.length === 0)
|
|
325
|
+
return [{ address }];
|
|
326
|
+
// Flatten each selector rule into a separate scope entry.
|
|
327
|
+
return selectorRules.map((ruleTuple) => {
|
|
328
|
+
const [selector, recipients] = ruleTuple;
|
|
329
|
+
return {
|
|
330
|
+
address,
|
|
331
|
+
selector,
|
|
332
|
+
...(Array.isArray(recipients) && recipients.length > 0
|
|
333
|
+
? { recipients }
|
|
334
|
+
: {}),
|
|
335
|
+
};
|
|
336
|
+
});
|
|
337
|
+
})
|
|
338
|
+
: undefined;
|
|
339
|
+
const witness = isAbsent(rawWitness) ? undefined : rawWitness;
|
|
340
|
+
if (witness !== undefined)
|
|
341
|
+
assertWitness(witness);
|
|
342
|
+
const isAdmin = (() => {
|
|
343
|
+
if (isAbsent(rawIsAdmin))
|
|
344
|
+
return undefined;
|
|
345
|
+
// TIP-1049: the admin marker is strictly `0x01`. Any other value is a
|
|
346
|
+
// protocol-level decode error on the node, so reject it here too.
|
|
347
|
+
if (rawIsAdmin !== '0x01')
|
|
348
|
+
throw new InvalidAdminMarkerError(rawIsAdmin);
|
|
349
|
+
return true;
|
|
350
|
+
})();
|
|
351
|
+
const account = isAbsent(rawAccount)
|
|
352
|
+
? undefined
|
|
353
|
+
: rawAccount;
|
|
354
|
+
// TIP-1049 admin fields are paired: only emit both when both are present on
|
|
355
|
+
// the wire. Wire shapes carrying only one are tolerated for forward-compat
|
|
356
|
+
// but the orphan field is dropped (since the public API requires both).
|
|
357
|
+
const adminPair = account !== undefined && isAdmin ? { account, isAdmin: true } : {};
|
|
293
358
|
const args = {
|
|
294
359
|
address: keyId,
|
|
295
|
-
expiry: typeof expiry !== 'undefined'
|
|
296
|
-
? hexToNumber(expiry) || undefined
|
|
297
|
-
: undefined,
|
|
298
|
-
type: keyType,
|
|
299
360
|
chainId: chainId === '0x' ? 0n : Hex.toBigInt(chainId),
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
...(
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
? {
|
|
307
|
-
limits: limits.map((limitTuple) => {
|
|
308
|
-
const [token, limit, period] = limitTuple;
|
|
309
|
-
return {
|
|
310
|
-
token,
|
|
311
|
-
limit: hexToBigint(limit),
|
|
312
|
-
...(typeof period !== 'undefined'
|
|
313
|
-
? { period: hexToNumber(period) }
|
|
314
|
-
: {}),
|
|
315
|
-
};
|
|
316
|
-
}),
|
|
317
|
-
}
|
|
318
|
-
: {}),
|
|
319
|
-
...(typeof scopes !== 'undefined' && Array.isArray(scopes)
|
|
320
|
-
? {
|
|
321
|
-
scopes: scopes.flatMap((scopeTuple) => {
|
|
322
|
-
const [address, selectorRules] = scopeTuple;
|
|
323
|
-
// If no selector rules, this is an address-only scope
|
|
324
|
-
if (!Array.isArray(selectorRules) || selectorRules.length === 0)
|
|
325
|
-
return [{ address }];
|
|
326
|
-
// Flatten each selector rule into a separate scope entry
|
|
327
|
-
return selectorRules.map((ruleTuple) => {
|
|
328
|
-
const [selector, recipients] = ruleTuple;
|
|
329
|
-
return {
|
|
330
|
-
address,
|
|
331
|
-
selector,
|
|
332
|
-
...(Array.isArray(recipients) && recipients.length > 0
|
|
333
|
-
? { recipients }
|
|
334
|
-
: {}),
|
|
335
|
-
};
|
|
336
|
-
});
|
|
337
|
-
}),
|
|
338
|
-
}
|
|
339
|
-
: {}),
|
|
361
|
+
type: keyType,
|
|
362
|
+
...(expiry !== undefined ? { expiry } : {}),
|
|
363
|
+
...(limits !== undefined ? { limits } : {}),
|
|
364
|
+
...(scopes !== undefined ? { scopes } : {}),
|
|
365
|
+
...(witness !== undefined ? { witness } : {}),
|
|
366
|
+
...adminPair,
|
|
340
367
|
};
|
|
341
368
|
if (signatureSerialized)
|
|
342
369
|
args.signature = SignatureEnvelope.deserialize(signatureSerialized);
|
|
@@ -500,7 +527,9 @@ export function serialize(authorization) {
|
|
|
500
527
|
* @returns An RPC-formatted Key Authorization.
|
|
501
528
|
*/
|
|
502
529
|
export function toRpc(authorization) {
|
|
503
|
-
const { address, scopes, chainId, expiry, limits, type, signature } = authorization;
|
|
530
|
+
const { address, scopes, chainId, expiry, limits, type, signature, witness, isAdmin, account, } = authorization;
|
|
531
|
+
if (witness !== undefined)
|
|
532
|
+
assertWitness(witness);
|
|
504
533
|
// Group flat scopes by address into nested allowedCalls wire format
|
|
505
534
|
const allowedCalls = (() => {
|
|
506
535
|
if (!scopes)
|
|
@@ -536,6 +565,9 @@ export function toRpc(authorization) {
|
|
|
536
565
|
})),
|
|
537
566
|
signature: SignatureEnvelope.toRpc(signature),
|
|
538
567
|
...(allowedCalls ? { allowedCalls } : {}),
|
|
568
|
+
...(witness !== undefined ? { witness } : {}),
|
|
569
|
+
...(isAdmin ? { isAdmin: true } : {}),
|
|
570
|
+
...(account !== undefined ? { account } : {}),
|
|
539
571
|
};
|
|
540
572
|
}
|
|
541
573
|
/**
|
|
@@ -570,7 +602,9 @@ export function toRpc(authorization) {
|
|
|
570
602
|
* @returns A Tempo Key Authorization tuple.
|
|
571
603
|
*/
|
|
572
604
|
export function toTuple(authorization) {
|
|
573
|
-
const { address, chainId, scopes, expiry, limits } = authorization;
|
|
605
|
+
const { address, chainId, scopes, expiry, limits, witness, isAdmin, account, } = authorization;
|
|
606
|
+
if (witness !== undefined)
|
|
607
|
+
assertWitness(witness);
|
|
574
608
|
const signature = authorization.signature
|
|
575
609
|
? SignatureEnvelope.serialize(authorization.signature)
|
|
576
610
|
: undefined;
|
|
@@ -617,21 +651,49 @@ export function toTuple(authorization) {
|
|
|
617
651
|
selectorRules.map(([selector, recipients]) => [selector, recipients]),
|
|
618
652
|
]);
|
|
619
653
|
})();
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
654
|
+
// Optional trailing fields in wire order. Each entry's `placeholder` is
|
|
655
|
+
// emitted when this field is skipped but a later field is present.
|
|
656
|
+
//
|
|
657
|
+
// Placeholder convention:
|
|
658
|
+
// - `'0x'` (RLP null) is the canonical placeholder for fields added at or
|
|
659
|
+
// after TIP-1053. The node decodes it as `None` (unrestricted).
|
|
660
|
+
// - `limits` keeps `[]` as its skipped placeholder for pre-TIP-1053 wire
|
|
661
|
+
// shapes — preserving byte-for-byte equivalence with signed payloads
|
|
662
|
+
// produced before TIP-1053 was added. When any TIP-1053+ field is
|
|
663
|
+
// present, the canonical `'0x'` placeholder is used instead.
|
|
664
|
+
//
|
|
665
|
+
// To add a new optional trailing field (e.g. from a future TIP): append a
|
|
666
|
+
// single entry to this list with `placeholder: '0x'`.
|
|
667
|
+
const hasTip1053Plus = witness !== undefined || isAdmin || account !== undefined;
|
|
668
|
+
const optionals = [
|
|
669
|
+
{
|
|
670
|
+
value: expiry !== null && expiry !== undefined && expiry !== 0
|
|
671
|
+
? numberToHex(expiry)
|
|
672
|
+
: undefined,
|
|
673
|
+
placeholder: '0x',
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
value: limitsValue,
|
|
677
|
+
placeholder: hasTip1053Plus ? '0x' : [],
|
|
678
|
+
},
|
|
679
|
+
{ value: callsValue, placeholder: '0x' },
|
|
680
|
+
{ value: witness, placeholder: '0x' },
|
|
681
|
+
// TIP-1049: admin marker. Present = `0x01` (RLP integer 1); absent
|
|
682
|
+
// skipped or omitted. Any other value is a hard decode error on the node.
|
|
683
|
+
{ value: isAdmin ? '0x01' : undefined, placeholder: '0x' },
|
|
684
|
+
// TIP-1049: optional account binding. Last field — never a placeholder.
|
|
685
|
+
{ value: account, placeholder: '0x' },
|
|
686
|
+
];
|
|
687
|
+
let lastPresent = -1;
|
|
688
|
+
for (let i = optionals.length - 1; i >= 0; i--)
|
|
689
|
+
if (optionals[i].value !== undefined) {
|
|
690
|
+
lastPresent = i;
|
|
691
|
+
break;
|
|
692
|
+
}
|
|
693
|
+
const trailing = optionals
|
|
694
|
+
.slice(0, lastPresent + 1)
|
|
695
|
+
.map(({ value, placeholder }) => value ?? placeholder);
|
|
696
|
+
const authorizationTuple = [bigintToHex(chainId), type, address, ...trailing];
|
|
635
697
|
return [authorizationTuple, ...(signature ? [signature] : [])];
|
|
636
698
|
}
|
|
637
699
|
function bigintToHex(value) {
|
|
@@ -660,4 +722,35 @@ function resolveSelector(selector) {
|
|
|
660
722
|
return selector;
|
|
661
723
|
return AbiItem.getSelector(selector);
|
|
662
724
|
}
|
|
725
|
+
function assertWitness(witness) {
|
|
726
|
+
if (Hex.size(witness) !== 32)
|
|
727
|
+
throw new InvalidWitnessSizeError(witness);
|
|
728
|
+
}
|
|
729
|
+
function isAbsent(value) {
|
|
730
|
+
return value === undefined || value === '0x';
|
|
731
|
+
}
|
|
732
|
+
/** Thrown when a `witness` field is not exactly 32 bytes. */
|
|
733
|
+
export class InvalidWitnessSizeError extends Error {
|
|
734
|
+
constructor(witness) {
|
|
735
|
+
super(`Witness \`${witness}\` must be exactly 32 bytes (got ${Hex.size(witness)} bytes).`);
|
|
736
|
+
Object.defineProperty(this, "name", {
|
|
737
|
+
enumerable: true,
|
|
738
|
+
configurable: true,
|
|
739
|
+
writable: true,
|
|
740
|
+
value: 'KeyAuthorization.InvalidWitnessSizeError'
|
|
741
|
+
});
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
/** Thrown when a TIP-1049 admin marker has any value other than `0x01`. */
|
|
745
|
+
export class InvalidAdminMarkerError extends Error {
|
|
746
|
+
constructor(marker) {
|
|
747
|
+
super(`Admin marker \`${marker}\` is invalid; expected \`0x01\` (TIP-1049).`);
|
|
748
|
+
Object.defineProperty(this, "name", {
|
|
749
|
+
enumerable: true,
|
|
750
|
+
configurable: true,
|
|
751
|
+
writable: true,
|
|
752
|
+
value: 'KeyAuthorization.InvalidAdminMarkerError'
|
|
753
|
+
});
|
|
754
|
+
}
|
|
755
|
+
}
|
|
663
756
|
//# sourceMappingURL=KeyAuthorization.js.map
|