ox 1.8.5 → 1.8.6
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/dist/tempo/KeyAuthorization.d.ts +21 -11
- package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
- package/dist/tempo/KeyAuthorization.js +7 -10
- package/dist/tempo/KeyAuthorization.js.map +1 -1
- package/dist/tempo/TokenRole.d.ts +4 -2
- package/dist/tempo/TokenRole.d.ts.map +1 -1
- package/dist/tempo/TokenRole.js +4 -1
- package/dist/tempo/TokenRole.js.map +1 -1
- package/dist/zod/tempo/TokenRole.d.ts +1 -1
- package/dist/zod/tempo/TokenRole.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/tempo/KeyAuthorization.test-d.ts +9 -0
- package/src/tempo/KeyAuthorization.test.ts +65 -1
- package/src/tempo/KeyAuthorization.ts +39 -32
- package/src/tempo/TokenRole.ts +4 -1
- package/src/tempo/e2e.test.ts +32 -20
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# ox
|
|
2
2
|
|
|
3
|
+
## 1.8.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#497](https://github.com/wevm/ox/pull/497) [`ee2bce9`](https://github.com/wevm/ox/commit/ee2bce93a9a4d70923d3798b830ee49df1ebaf85) Thanks [@decofe](https://github.com/decofe)! - Added the TIP-1006 `burnAt` role (`BURN_AT_ROLE`) to `TokenRole`.
|
|
8
|
+
|
|
9
|
+
- [#506](https://github.com/wevm/ox/pull/506) [`ce81454`](https://github.com/wevm/ox/commit/ce814549fdea8b0fd091b36432c5a96616ba5d1a) Thanks [@jxom](https://github.com/jxom)! - Fixed `KeyAuthorization` encoding to keep absent `limits` (unlimited) distinct from an empty `limits` list (deny-all), matching the Tempo node.
|
|
10
|
+
|
|
3
11
|
## 1.8.5
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
|
@@ -37,7 +37,13 @@ export type KeyAuthorization<signed extends boolean = boolean, bigintType = bigi
|
|
|
37
37
|
expiry?: numberType | null | undefined;
|
|
38
38
|
/** Whether this authorization provisions an admin access key. */
|
|
39
39
|
isAdmin?: boolean | undefined;
|
|
40
|
-
/**
|
|
40
|
+
/**
|
|
41
|
+
* TIP20 spending limits for this key.
|
|
42
|
+
*
|
|
43
|
+
* - `undefined` = unlimited spending
|
|
44
|
+
* - `[]` = no spending allowed
|
|
45
|
+
* - `[...]` = only listed token limits allowed
|
|
46
|
+
*/
|
|
41
47
|
limits?: readonly TokenLimit<bigintType, numberType>[] | undefined;
|
|
42
48
|
/**
|
|
43
49
|
* Call scopes restricting which contracts/selectors this key can call.
|
|
@@ -86,7 +92,7 @@ export type Rpc = {
|
|
|
86
92
|
keyId: Address.Address;
|
|
87
93
|
/** Key type. */
|
|
88
94
|
keyType: SignatureEnvelope.Type | 'multisig';
|
|
89
|
-
/** Token spending limits. */
|
|
95
|
+
/** Token spending limits (`null`/`undefined` = unlimited, `[]` = no spending allowed). */
|
|
90
96
|
limits?: readonly RpcTokenLimit[] | null | undefined;
|
|
91
97
|
/** Primitive or multisig signature authorizing this key. */
|
|
92
98
|
signature: SignatureEnvelope.PrimitiveRpc | SignatureEnvelope.MultisigRpc;
|
|
@@ -126,29 +132,33 @@ type CallScopeTuple = readonly [
|
|
|
126
132
|
target: Address.Address,
|
|
127
133
|
selectorRules: readonly SelectorRuleTuple[]
|
|
128
134
|
];
|
|
129
|
-
|
|
135
|
+
/** Spending limits slot; `'0x'` (RLP null) when skipped before a later field. */
|
|
136
|
+
type LimitsTuple = readonly TokenLimitTuple[] | '0x';
|
|
137
|
+
/** Call scopes slot; `'0x'` (RLP null) when skipped before a later field. */
|
|
138
|
+
type CallsTuple = readonly CallScopeTuple[] | '0x';
|
|
139
|
+
type AuthorizationTuple = BaseTuple | readonly [...BaseTuple, expiry: Hex.Hex] | readonly [...BaseTuple, expiry: Hex.Hex, limits: LimitsTuple] | readonly [
|
|
130
140
|
...BaseTuple,
|
|
131
141
|
expiry: Hex.Hex,
|
|
132
|
-
limits:
|
|
133
|
-
calls:
|
|
142
|
+
limits: LimitsTuple,
|
|
143
|
+
calls: CallsTuple
|
|
134
144
|
] | readonly [
|
|
135
145
|
...BaseTuple,
|
|
136
146
|
expiry: Hex.Hex,
|
|
137
|
-
limits:
|
|
138
|
-
calls:
|
|
147
|
+
limits: LimitsTuple,
|
|
148
|
+
calls: CallsTuple,
|
|
139
149
|
witness: Hex.Hex
|
|
140
150
|
] | readonly [
|
|
141
151
|
...BaseTuple,
|
|
142
152
|
expiry: Hex.Hex,
|
|
143
|
-
limits:
|
|
144
|
-
calls:
|
|
153
|
+
limits: LimitsTuple,
|
|
154
|
+
calls: CallsTuple,
|
|
145
155
|
witness: Hex.Hex,
|
|
146
156
|
isAdmin: Hex.Hex
|
|
147
157
|
] | readonly [
|
|
148
158
|
...BaseTuple,
|
|
149
159
|
expiry: Hex.Hex,
|
|
150
|
-
limits:
|
|
151
|
-
calls:
|
|
160
|
+
limits: LimitsTuple,
|
|
161
|
+
calls: CallsTuple,
|
|
152
162
|
witness: Hex.Hex,
|
|
153
163
|
isAdmin: Hex.Hex,
|
|
154
164
|
account: Address.Address
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyAuthorization.d.ts","sourceRoot":"","sources":["../../src/tempo/KeyAuthorization.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAErC,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,cAAc,EACf,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,gBAAgB,CAC1B,MAAM,SAAS,OAAO,GAAG,OAAO,EAChC,UAAU,GAAG,MAAM,EACnB,UAAU,GAAG,MAAM,IACjB;IACF,oFAAoF;IACpF,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;IACrC,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAC,OAAO,CAAA;IACxB,sCAAsC;IACtC,OAAO,EAAE,UAAU,CAAA;IACnB,mEAAmE;IACnE,MAAM,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,SAAS,CAAA;IACtC,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC7B
|
|
1
|
+
{"version":3,"file":"KeyAuthorization.d.ts","sourceRoot":"","sources":["../../src/tempo/KeyAuthorization.ts"],"names":[],"mappings":"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"}
|
|
@@ -338,7 +338,9 @@ export function fromTuple(tuple) {
|
|
|
338
338
|
const expiry = isAbsent(rawExpiry)
|
|
339
339
|
? undefined
|
|
340
340
|
: hexToNumber(rawExpiry) || undefined;
|
|
341
|
-
|
|
341
|
+
// An empty list (`0xc0`) is an explicit deny-all, distinct from an absent
|
|
342
|
+
// field (`0x80` or omitted), which leaves spending unlimited.
|
|
343
|
+
const limits = Array.isArray(rawLimits)
|
|
342
344
|
? rawLimits.map((limitTuple) => {
|
|
343
345
|
const [token, limit, period] = limitTuple;
|
|
344
346
|
return {
|
|
@@ -711,17 +713,12 @@ export function toTuple(authorization) {
|
|
|
711
713
|
// Optional trailing fields in wire order. Each entry's `placeholder` is
|
|
712
714
|
// emitted when this field is skipped but a later field is present.
|
|
713
715
|
//
|
|
714
|
-
//
|
|
715
|
-
//
|
|
716
|
-
//
|
|
717
|
-
// - `limits` keeps `[]` as its skipped placeholder for pre-TIP-1053 wire
|
|
718
|
-
// shapes — preserving byte-for-byte equivalence with signed payloads
|
|
719
|
-
// produced before TIP-1053 was added. When any TIP-1053+ field is
|
|
720
|
-
// present, the canonical `'0x'` placeholder is used instead.
|
|
716
|
+
// `'0x'` (RLP null) is the canonical placeholder: the node decodes it as
|
|
717
|
+
// `None` (unrestricted). An empty list would decode as `Some([])`, so a
|
|
718
|
+
// skipped `limits` must never use `[]` (that reads as deny-all spending).
|
|
721
719
|
//
|
|
722
720
|
// To add a new optional trailing field (e.g. from a future TIP): append a
|
|
723
721
|
// single entry to this list with `placeholder: '0x'`.
|
|
724
|
-
const hasTip1053Plus = witness !== undefined || isAdmin || account !== undefined;
|
|
725
722
|
const optionals = [
|
|
726
723
|
{
|
|
727
724
|
value: expiry !== null && expiry !== undefined && expiry !== 0
|
|
@@ -731,7 +728,7 @@ export function toTuple(authorization) {
|
|
|
731
728
|
},
|
|
732
729
|
{
|
|
733
730
|
value: limitsValue,
|
|
734
|
-
placeholder:
|
|
731
|
+
placeholder: '0x',
|
|
735
732
|
},
|
|
736
733
|
{ value: callsValue, placeholder: '0x' },
|
|
737
734
|
{ value: witness, placeholder: '0x' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../src/tempo/KeyAuthorization.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../src/tempo/KeyAuthorization.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const roles: readonly ["defaultAdmin", "pause", "unpause", "issuer", "burnBlocked"];
|
|
1
|
+
export declare const roles: readonly ["defaultAdmin", "pause", "unpause", "issuer", "burnBlocked", "burnAt"];
|
|
2
2
|
export type TokenRole = (typeof roles)[number];
|
|
3
3
|
export declare const toPreHashed: {
|
|
4
4
|
readonly defaultAdmin: "DEFAULT_ADMIN_ROLE";
|
|
@@ -6,12 +6,14 @@ export declare const toPreHashed: {
|
|
|
6
6
|
readonly unpause: "UNPAUSE_ROLE";
|
|
7
7
|
readonly issuer: "ISSUER_ROLE";
|
|
8
8
|
readonly burnBlocked: "BURN_BLOCKED_ROLE";
|
|
9
|
+
readonly burnAt: "BURN_AT_ROLE";
|
|
9
10
|
};
|
|
10
11
|
/**
|
|
11
12
|
* Serializes a token role to its keccak256 hash representation.
|
|
12
13
|
*
|
|
13
14
|
* TIP-20 includes a built-in RBAC system with roles like `ISSUER_ROLE` (mint/burn),
|
|
14
|
-
* `PAUSE_ROLE`/`UNPAUSE_ROLE` (emergency controls),
|
|
15
|
+
* `PAUSE_ROLE`/`UNPAUSE_ROLE` (emergency controls), `BURN_BLOCKED_ROLE` (compliance), and
|
|
16
|
+
* `BURN_AT_ROLE` (burn from any unprotected account, T12+).
|
|
15
17
|
*
|
|
16
18
|
* [TIP-20 RBAC](https://docs.tempo.xyz/protocol/tip20/overview#role-based-access-control-rbac)
|
|
17
19
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenRole.d.ts","sourceRoot":"","sources":["../../src/tempo/TokenRole.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"TokenRole.d.ts","sourceRoot":"","sources":["../../src/tempo/TokenRole.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,KAAK,kFAOR,CAAA;AACV,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9C,eAAO,MAAM,WAAW;;;;;;;CAOsB,CAAA;AAE9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,iBAMxC"}
|
package/dist/tempo/TokenRole.js
CHANGED
|
@@ -6,6 +6,7 @@ export const roles = [
|
|
|
6
6
|
'unpause',
|
|
7
7
|
'issuer',
|
|
8
8
|
'burnBlocked',
|
|
9
|
+
'burnAt',
|
|
9
10
|
];
|
|
10
11
|
export const toPreHashed = {
|
|
11
12
|
defaultAdmin: 'DEFAULT_ADMIN_ROLE',
|
|
@@ -13,12 +14,14 @@ export const toPreHashed = {
|
|
|
13
14
|
unpause: 'UNPAUSE_ROLE',
|
|
14
15
|
issuer: 'ISSUER_ROLE',
|
|
15
16
|
burnBlocked: 'BURN_BLOCKED_ROLE',
|
|
17
|
+
burnAt: 'BURN_AT_ROLE',
|
|
16
18
|
};
|
|
17
19
|
/**
|
|
18
20
|
* Serializes a token role to its keccak256 hash representation.
|
|
19
21
|
*
|
|
20
22
|
* TIP-20 includes a built-in RBAC system with roles like `ISSUER_ROLE` (mint/burn),
|
|
21
|
-
* `PAUSE_ROLE`/`UNPAUSE_ROLE` (emergency controls),
|
|
23
|
+
* `PAUSE_ROLE`/`UNPAUSE_ROLE` (emergency controls), `BURN_BLOCKED_ROLE` (compliance), and
|
|
24
|
+
* `BURN_AT_ROLE` (burn from any unprotected account, T12+).
|
|
22
25
|
*
|
|
23
26
|
* [TIP-20 RBAC](https://docs.tempo.xyz/protocol/tip20/overview#role-based-access-control-rbac)
|
|
24
27
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenRole.js","sourceRoot":"","sources":["../../src/tempo/TokenRole.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAErC,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,cAAc;IACd,OAAO;IACP,SAAS;IACT,QAAQ;IACR,aAAa;
|
|
1
|
+
{"version":3,"file":"TokenRole.js","sourceRoot":"","sources":["../../src/tempo/TokenRole.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAErC,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,cAAc;IACd,OAAO;IACP,SAAS;IACT,QAAQ;IACR,aAAa;IACb,QAAQ;CACA,CAAA;AAGV,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,YAAY,EAAE,oBAAoB;IAClC,KAAK,EAAE,YAAY;IACnB,OAAO,EAAE,cAAc;IACvB,MAAM,EAAE,aAAa;IACrB,WAAW,EAAE,mBAAmB;IAChC,MAAM,EAAE,cAAc;CACsB,CAAA;AAE9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,SAAS,CAAC,IAAe;IACvC,IAAI,IAAI,KAAK,cAAc;QACzB,OAAO,oEAAoE,CAAA;IAC7E,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAgC,CAAC,IAAI,IAAI,CAAC,CACtE,CAAA;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import * as z from 'zod/mini';
|
|
2
2
|
/** TIP-20 token role schema. */
|
|
3
|
-
export declare const TokenRole: z.ZodMiniLiteral<"defaultAdmin" | "pause" | "unpause" | "issuer" | "burnBlocked">;
|
|
3
|
+
export declare const TokenRole: z.ZodMiniLiteral<"defaultAdmin" | "pause" | "unpause" | "issuer" | "burnBlocked" | "burnAt">;
|
|
4
4
|
//# sourceMappingURL=TokenRole.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenRole.d.ts","sourceRoot":"","sources":["../../../src/zod/tempo/TokenRole.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,gCAAgC;AAChC,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"TokenRole.d.ts","sourceRoot":"","sources":["../../../src/zod/tempo/TokenRole.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAE7B,gCAAgC;AAChC,eAAO,MAAM,SAAS,8FAAkC,CAAA"}
|
package/package.json
CHANGED
|
@@ -49,3 +49,12 @@ test('accepts multisig signatures and account-bound grants', () => {
|
|
|
49
49
|
KeyAuthorization.toRpc(signed),
|
|
50
50
|
).toMatchTypeOf<KeyAuthorization.Rpc>()
|
|
51
51
|
})
|
|
52
|
+
|
|
53
|
+
test('Tuple: skipped limits slot may be the RLP null placeholder', () => {
|
|
54
|
+
type Authorization = KeyAuthorization.Tuple[0]
|
|
55
|
+
type Limits = Extract<Authorization, { length: 5 }>[4]
|
|
56
|
+
expectTypeOf<'0x'>().toMatchTypeOf<Limits>()
|
|
57
|
+
expectTypeOf<
|
|
58
|
+
readonly [token: `0x${string}`, limit: `0x${string}`][]
|
|
59
|
+
>().toMatchTypeOf<Limits>()
|
|
60
|
+
})
|
|
@@ -17,6 +17,23 @@ const address = '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c'
|
|
|
17
17
|
const expiry = 1234567890
|
|
18
18
|
const token = '0x20c0000000000000000000000000000000000001'
|
|
19
19
|
|
|
20
|
+
// Unsigned RLP and hashes produced by the Tempo node's `KeyAuthorization::encode`
|
|
21
|
+
// (`tempo-primitives`) for `address` on chain 1337.
|
|
22
|
+
const limitsVectors = {
|
|
23
|
+
denyAll: {
|
|
24
|
+
hash: '0x647445af52e13830d879f11656840959bf7cffd26c5858b6e79696ef051e1115',
|
|
25
|
+
rlp: '0xdb8205398094be95c3f554e9fc85ec51be69a3d807a0d55bcf2c80c0',
|
|
26
|
+
},
|
|
27
|
+
scopedDenyAll: {
|
|
28
|
+
hash: '0xed04735d65180756db1cac8134ee53ed77737803902572beff10d5da03eab2cf',
|
|
29
|
+
rlp: '0xf38205398094be95c3f554e9fc85ec51be69a3d807a0d55bcf2c80c0d7d69420c0000000000000000000000000000000000001c0',
|
|
30
|
+
},
|
|
31
|
+
scopedUnlimited: {
|
|
32
|
+
hash: '0x4c30b56b178f44172feee4a80a27222101e19b72de396be4d764e2f4054f32d7',
|
|
33
|
+
rlp: '0xf38205398094be95c3f554e9fc85ec51be69a3d807a0d55bcf2c8080d7d69420c0000000000000000000000000000000000001c0',
|
|
34
|
+
},
|
|
35
|
+
} as const
|
|
36
|
+
|
|
20
37
|
const privateKey_secp256k1 =
|
|
21
38
|
'0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80'
|
|
22
39
|
const signature_secp256k1 = Secp256k1.sign({
|
|
@@ -118,6 +135,27 @@ describe('multisig account binding', () => {
|
|
|
118
135
|
})
|
|
119
136
|
|
|
120
137
|
describe('from', () => {
|
|
138
|
+
test('behavior: limits encode like the Tempo node', () => {
|
|
139
|
+
const encode = (authorization: KeyAuthorization.KeyAuthorization) => ({
|
|
140
|
+
hash: KeyAuthorization.hash(authorization),
|
|
141
|
+
rlp: Rlp.fromHex(KeyAuthorization.toTuple(authorization)[0]),
|
|
142
|
+
})
|
|
143
|
+
const base = { address, chainId: 1337n, type: 'secp256k1' } as const
|
|
144
|
+
expect({
|
|
145
|
+
denyAll: encode(KeyAuthorization.from({ ...base, limits: [] })),
|
|
146
|
+
scopedDenyAll: encode(
|
|
147
|
+
KeyAuthorization.from({
|
|
148
|
+
...base,
|
|
149
|
+
limits: [],
|
|
150
|
+
scopes: [{ address: token }],
|
|
151
|
+
}),
|
|
152
|
+
),
|
|
153
|
+
scopedUnlimited: encode(
|
|
154
|
+
KeyAuthorization.from({ ...base, scopes: [{ address: token }] }),
|
|
155
|
+
),
|
|
156
|
+
}).toEqual(limitsVectors)
|
|
157
|
+
})
|
|
158
|
+
|
|
121
159
|
test('accepts multisig grants and delegates', () => {
|
|
122
160
|
const signed = KeyAuthorization.from(
|
|
123
161
|
{
|
|
@@ -832,6 +870,22 @@ describe('fromRpc', () => {
|
|
|
832
870
|
})
|
|
833
871
|
|
|
834
872
|
describe('fromTuple', () => {
|
|
873
|
+
test('behavior: keeps absent and empty limits distinct', () => {
|
|
874
|
+
const decoded = Object.fromEntries(
|
|
875
|
+
Object.entries(limitsVectors).map(([name, { rlp }]) => [
|
|
876
|
+
name,
|
|
877
|
+
KeyAuthorization.fromTuple([Rlp.toHex(rlp) as never]).limits,
|
|
878
|
+
]),
|
|
879
|
+
)
|
|
880
|
+
expect(decoded).toMatchInlineSnapshot(`
|
|
881
|
+
{
|
|
882
|
+
"denyAll": [],
|
|
883
|
+
"scopedDenyAll": [],
|
|
884
|
+
"scopedUnlimited": undefined,
|
|
885
|
+
}
|
|
886
|
+
`)
|
|
887
|
+
})
|
|
888
|
+
|
|
835
889
|
test('default', () => {
|
|
836
890
|
const authorization = KeyAuthorization.fromTuple([
|
|
837
891
|
[
|
|
@@ -1662,6 +1716,16 @@ describe('toRpc', () => {
|
|
|
1662
1716
|
})
|
|
1663
1717
|
|
|
1664
1718
|
describe('toTuple', () => {
|
|
1719
|
+
test('behavior: round-trips Tempo node limits encoding', () => {
|
|
1720
|
+
for (const { hash, rlp } of Object.values(limitsVectors)) {
|
|
1721
|
+
const authorization = KeyAuthorization.fromTuple([
|
|
1722
|
+
Rlp.toHex(rlp) as never,
|
|
1723
|
+
])
|
|
1724
|
+
expect(Rlp.fromHex(KeyAuthorization.toTuple(authorization)[0])).toBe(rlp)
|
|
1725
|
+
expect(KeyAuthorization.hash(authorization)).toBe(hash)
|
|
1726
|
+
}
|
|
1727
|
+
})
|
|
1728
|
+
|
|
1665
1729
|
test('default', () => {
|
|
1666
1730
|
const authorization = KeyAuthorization.from({
|
|
1667
1731
|
address,
|
|
@@ -2074,7 +2138,7 @@ describe('toTuple', () => {
|
|
|
2074
2138
|
"0x",
|
|
2075
2139
|
"0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c",
|
|
2076
2140
|
"0x",
|
|
2077
|
-
|
|
2141
|
+
"0x",
|
|
2078
2142
|
[
|
|
2079
2143
|
[
|
|
2080
2144
|
"0x1234567890123456789012345678901234567890",
|
|
@@ -48,7 +48,13 @@ export type KeyAuthorization<
|
|
|
48
48
|
expiry?: numberType | null | undefined
|
|
49
49
|
/** Whether this authorization provisions an admin access key. */
|
|
50
50
|
isAdmin?: boolean | undefined
|
|
51
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* TIP20 spending limits for this key.
|
|
53
|
+
*
|
|
54
|
+
* - `undefined` = unlimited spending
|
|
55
|
+
* - `[]` = no spending allowed
|
|
56
|
+
* - `[...]` = only listed token limits allowed
|
|
57
|
+
*/
|
|
52
58
|
limits?: readonly TokenLimit<bigintType, numberType>[] | undefined
|
|
53
59
|
/**
|
|
54
60
|
* Call scopes restricting which contracts/selectors this key can call.
|
|
@@ -112,7 +118,7 @@ export type Rpc = {
|
|
|
112
118
|
keyId: Address.Address
|
|
113
119
|
/** Key type. */
|
|
114
120
|
keyType: SignatureEnvelope.Type | 'multisig'
|
|
115
|
-
/** Token spending limits. */
|
|
121
|
+
/** Token spending limits (`null`/`undefined` = unlimited, `[]` = no spending allowed). */
|
|
116
122
|
limits?: readonly RpcTokenLimit[] | null | undefined
|
|
117
123
|
/** Primitive or multisig signature authorizing this key. */
|
|
118
124
|
signature: SignatureEnvelope.PrimitiveRpc | SignatureEnvelope.MultisigRpc
|
|
@@ -173,36 +179,42 @@ type CallScopeTuple = readonly [
|
|
|
173
179
|
selectorRules: readonly SelectorRuleTuple[],
|
|
174
180
|
]
|
|
175
181
|
|
|
182
|
+
/** Spending limits slot; `'0x'` (RLP null) when skipped before a later field. */
|
|
183
|
+
type LimitsTuple = readonly TokenLimitTuple[] | '0x'
|
|
184
|
+
|
|
185
|
+
/** Call scopes slot; `'0x'` (RLP null) when skipped before a later field. */
|
|
186
|
+
type CallsTuple = readonly CallScopeTuple[] | '0x'
|
|
187
|
+
|
|
176
188
|
type AuthorizationTuple =
|
|
177
189
|
| BaseTuple
|
|
178
190
|
| readonly [...BaseTuple, expiry: Hex.Hex]
|
|
179
|
-
| readonly [...BaseTuple, expiry: Hex.Hex, limits:
|
|
191
|
+
| readonly [...BaseTuple, expiry: Hex.Hex, limits: LimitsTuple]
|
|
180
192
|
| readonly [
|
|
181
193
|
...BaseTuple,
|
|
182
194
|
expiry: Hex.Hex,
|
|
183
|
-
limits:
|
|
184
|
-
calls:
|
|
195
|
+
limits: LimitsTuple,
|
|
196
|
+
calls: CallsTuple,
|
|
185
197
|
]
|
|
186
198
|
| readonly [
|
|
187
199
|
...BaseTuple,
|
|
188
200
|
expiry: Hex.Hex,
|
|
189
|
-
limits:
|
|
190
|
-
calls:
|
|
201
|
+
limits: LimitsTuple,
|
|
202
|
+
calls: CallsTuple,
|
|
191
203
|
witness: Hex.Hex,
|
|
192
204
|
]
|
|
193
205
|
| readonly [
|
|
194
206
|
...BaseTuple,
|
|
195
207
|
expiry: Hex.Hex,
|
|
196
|
-
limits:
|
|
197
|
-
calls:
|
|
208
|
+
limits: LimitsTuple,
|
|
209
|
+
calls: CallsTuple,
|
|
198
210
|
witness: Hex.Hex,
|
|
199
211
|
isAdmin: Hex.Hex,
|
|
200
212
|
]
|
|
201
213
|
| readonly [
|
|
202
214
|
...BaseTuple,
|
|
203
215
|
expiry: Hex.Hex,
|
|
204
|
-
limits:
|
|
205
|
-
calls:
|
|
216
|
+
limits: LimitsTuple,
|
|
217
|
+
calls: CallsTuple,
|
|
206
218
|
witness: Hex.Hex,
|
|
207
219
|
isAdmin: Hex.Hex,
|
|
208
220
|
account: Address.Address,
|
|
@@ -671,17 +683,18 @@ export function fromTuple<const tuple extends Tuple>(
|
|
|
671
683
|
const expiry = isAbsent(rawExpiry)
|
|
672
684
|
? undefined
|
|
673
685
|
: hexToNumber(rawExpiry as Hex.Hex) || undefined
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
}
|
|
683
|
-
}
|
|
684
|
-
|
|
686
|
+
// An empty list (`0xc0`) is an explicit deny-all, distinct from an absent
|
|
687
|
+
// field (`0x80` or omitted), which leaves spending unlimited.
|
|
688
|
+
const limits = Array.isArray(rawLimits)
|
|
689
|
+
? rawLimits.map((limitTuple: any) => {
|
|
690
|
+
const [token, limit, period] = limitTuple
|
|
691
|
+
return {
|
|
692
|
+
token,
|
|
693
|
+
limit: hexToBigint(limit),
|
|
694
|
+
...(period !== undefined ? { period: hexToNumber(period) } : {}),
|
|
695
|
+
}
|
|
696
|
+
})
|
|
697
|
+
: undefined
|
|
685
698
|
const scopes = Array.isArray(rawScopes)
|
|
686
699
|
? rawScopes.flatMap((scopeTuple: any) => {
|
|
687
700
|
const [address, selectorRules] = scopeTuple
|
|
@@ -1121,18 +1134,12 @@ export function toTuple<const authorization extends KeyAuthorization>(
|
|
|
1121
1134
|
// Optional trailing fields in wire order. Each entry's `placeholder` is
|
|
1122
1135
|
// emitted when this field is skipped but a later field is present.
|
|
1123
1136
|
//
|
|
1124
|
-
//
|
|
1125
|
-
//
|
|
1126
|
-
//
|
|
1127
|
-
// - `limits` keeps `[]` as its skipped placeholder for pre-TIP-1053 wire
|
|
1128
|
-
// shapes — preserving byte-for-byte equivalence with signed payloads
|
|
1129
|
-
// produced before TIP-1053 was added. When any TIP-1053+ field is
|
|
1130
|
-
// present, the canonical `'0x'` placeholder is used instead.
|
|
1137
|
+
// `'0x'` (RLP null) is the canonical placeholder: the node decodes it as
|
|
1138
|
+
// `None` (unrestricted). An empty list would decode as `Some([])`, so a
|
|
1139
|
+
// skipped `limits` must never use `[]` (that reads as deny-all spending).
|
|
1131
1140
|
//
|
|
1132
1141
|
// To add a new optional trailing field (e.g. from a future TIP): append a
|
|
1133
1142
|
// single entry to this list with `placeholder: '0x'`.
|
|
1134
|
-
const hasTip1053Plus =
|
|
1135
|
-
witness !== undefined || isAdmin || account !== undefined
|
|
1136
1143
|
const optionals: readonly { placeholder: unknown; value: unknown }[] = [
|
|
1137
1144
|
{
|
|
1138
1145
|
value:
|
|
@@ -1143,7 +1150,7 @@ export function toTuple<const authorization extends KeyAuthorization>(
|
|
|
1143
1150
|
},
|
|
1144
1151
|
{
|
|
1145
1152
|
value: limitsValue,
|
|
1146
|
-
placeholder:
|
|
1153
|
+
placeholder: '0x',
|
|
1147
1154
|
},
|
|
1148
1155
|
{ value: callsValue, placeholder: '0x' },
|
|
1149
1156
|
{ value: witness, placeholder: '0x' },
|
package/src/tempo/TokenRole.ts
CHANGED
|
@@ -7,6 +7,7 @@ export const roles = [
|
|
|
7
7
|
'unpause',
|
|
8
8
|
'issuer',
|
|
9
9
|
'burnBlocked',
|
|
10
|
+
'burnAt',
|
|
10
11
|
] as const
|
|
11
12
|
export type TokenRole = (typeof roles)[number]
|
|
12
13
|
|
|
@@ -16,13 +17,15 @@ export const toPreHashed = {
|
|
|
16
17
|
unpause: 'UNPAUSE_ROLE',
|
|
17
18
|
issuer: 'ISSUER_ROLE',
|
|
18
19
|
burnBlocked: 'BURN_BLOCKED_ROLE',
|
|
20
|
+
burnAt: 'BURN_AT_ROLE',
|
|
19
21
|
} as const satisfies Record<TokenRole, string>
|
|
20
22
|
|
|
21
23
|
/**
|
|
22
24
|
* Serializes a token role to its keccak256 hash representation.
|
|
23
25
|
*
|
|
24
26
|
* TIP-20 includes a built-in RBAC system with roles like `ISSUER_ROLE` (mint/burn),
|
|
25
|
-
* `PAUSE_ROLE`/`UNPAUSE_ROLE` (emergency controls),
|
|
27
|
+
* `PAUSE_ROLE`/`UNPAUSE_ROLE` (emergency controls), `BURN_BLOCKED_ROLE` (compliance), and
|
|
28
|
+
* `BURN_AT_ROLE` (burn from any unprotected account, T12+).
|
|
26
29
|
*
|
|
27
30
|
* [TIP-20 RBAC](https://docs.tempo.xyz/protocol/tip20/overview#role-based-access-control-rbac)
|
|
28
31
|
*
|
package/src/tempo/e2e.test.ts
CHANGED
|
@@ -2329,14 +2329,14 @@ describe('behavior: keyAuthorization', () => {
|
|
|
2329
2329
|
Value.from('1', 6),
|
|
2330
2330
|
])
|
|
2331
2331
|
|
|
2332
|
-
// Scope key to only
|
|
2332
|
+
// Scope key to only token2
|
|
2333
2333
|
const keyAuth = KeyAuthorization.from({
|
|
2334
2334
|
address: accessAddress,
|
|
2335
2335
|
chainId: BigInt(chainId),
|
|
2336
2336
|
type: 'secp256k1',
|
|
2337
2337
|
scopes: [
|
|
2338
2338
|
{
|
|
2339
|
-
address:
|
|
2339
|
+
address: token2,
|
|
2340
2340
|
selector: AbiFunction.getSelector(transfer),
|
|
2341
2341
|
},
|
|
2342
2342
|
],
|
|
@@ -2356,9 +2356,9 @@ describe('behavior: keyAuthorization', () => {
|
|
|
2356
2356
|
blockTag: 'pending',
|
|
2357
2357
|
})
|
|
2358
2358
|
|
|
2359
|
-
// Call transfer on
|
|
2359
|
+
// Call transfer on token1 (not scoped), which the account could otherwise pay
|
|
2360
2360
|
const transaction = TxEnvelopeTempo.from({
|
|
2361
|
-
calls: [{ to:
|
|
2361
|
+
calls: [{ to: token1, data: transferData }],
|
|
2362
2362
|
chainId,
|
|
2363
2363
|
feeToken: token1,
|
|
2364
2364
|
keyAuthorization: keyAuth_signed,
|
|
@@ -2383,12 +2383,15 @@ describe('behavior: keyAuthorization', () => {
|
|
|
2383
2383
|
}),
|
|
2384
2384
|
})
|
|
2385
2385
|
|
|
2386
|
-
|
|
2387
|
-
|
|
2386
|
+
// The keychain rejects out-of-scope calls during execution, so the
|
|
2387
|
+
// transaction is mined with a reverted status.
|
|
2388
|
+
const receipt = await client
|
|
2389
|
+
.request({
|
|
2388
2390
|
method: 'eth_sendRawTransactionSync',
|
|
2389
2391
|
params: [serialized_signed],
|
|
2390
|
-
})
|
|
2391
|
-
|
|
2392
|
+
})
|
|
2393
|
+
.then((tx) => TransactionReceipt.fromRpc(tx as any))
|
|
2394
|
+
expect(receipt?.status).toBe('reverted')
|
|
2392
2395
|
},
|
|
2393
2396
|
)
|
|
2394
2397
|
|
|
@@ -2466,12 +2469,15 @@ describe('behavior: keyAuthorization', () => {
|
|
|
2466
2469
|
}),
|
|
2467
2470
|
})
|
|
2468
2471
|
|
|
2469
|
-
|
|
2470
|
-
|
|
2472
|
+
// The keychain rejects out-of-scope calls during execution, so the
|
|
2473
|
+
// transaction is mined with a reverted status.
|
|
2474
|
+
const receipt = await client
|
|
2475
|
+
.request({
|
|
2471
2476
|
method: 'eth_sendRawTransactionSync',
|
|
2472
2477
|
params: [serialized_signed],
|
|
2473
|
-
})
|
|
2474
|
-
|
|
2478
|
+
})
|
|
2479
|
+
.then((tx) => TransactionReceipt.fromRpc(tx as any))
|
|
2480
|
+
expect(receipt?.status).toBe('reverted')
|
|
2475
2481
|
},
|
|
2476
2482
|
)
|
|
2477
2483
|
|
|
@@ -2549,12 +2555,15 @@ describe('behavior: keyAuthorization', () => {
|
|
|
2549
2555
|
}),
|
|
2550
2556
|
})
|
|
2551
2557
|
|
|
2552
|
-
|
|
2553
|
-
|
|
2558
|
+
// The keychain rejects out-of-scope calls during execution, so the
|
|
2559
|
+
// transaction is mined with a reverted status.
|
|
2560
|
+
const receipt = await client
|
|
2561
|
+
.request({
|
|
2554
2562
|
method: 'eth_sendRawTransactionSync',
|
|
2555
2563
|
params: [serialized_signed],
|
|
2556
|
-
})
|
|
2557
|
-
|
|
2564
|
+
})
|
|
2565
|
+
.then((tx) => TransactionReceipt.fromRpc(tx as any))
|
|
2566
|
+
expect(receipt?.status).toBe('reverted')
|
|
2558
2567
|
},
|
|
2559
2568
|
)
|
|
2560
2569
|
|
|
@@ -2623,12 +2632,15 @@ describe('behavior: keyAuthorization', () => {
|
|
|
2623
2632
|
}),
|
|
2624
2633
|
})
|
|
2625
2634
|
|
|
2626
|
-
|
|
2627
|
-
|
|
2635
|
+
// The keychain rejects out-of-scope calls during execution, so the
|
|
2636
|
+
// transaction is mined with a reverted status.
|
|
2637
|
+
const receipt = await client
|
|
2638
|
+
.request({
|
|
2628
2639
|
method: 'eth_sendRawTransactionSync',
|
|
2629
2640
|
params: [serialized_signed],
|
|
2630
|
-
})
|
|
2631
|
-
|
|
2641
|
+
})
|
|
2642
|
+
.then((tx) => TransactionReceipt.fromRpc(tx as any))
|
|
2643
|
+
expect(receipt?.status).toBe('reverted')
|
|
2632
2644
|
},
|
|
2633
2645
|
)
|
|
2634
2646
|
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** @internal */
|
|
2
|
-
export const version = '1.8.
|
|
2
|
+
export const version = '1.8.6'
|