ox 1.6.2 → 1.6.3
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 +12 -0
- package/dist/tempo/KeyAuthorization.d.ts +16 -12
- package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
- package/dist/tempo/KeyAuthorization.js +7 -13
- package/dist/tempo/KeyAuthorization.js.map +1 -1
- package/dist/tempo/MultisigConfig.d.ts +20 -17
- package/dist/tempo/MultisigConfig.d.ts.map +1 -1
- package/dist/tempo/MultisigConfig.js +17 -16
- package/dist/tempo/MultisigConfig.js.map +1 -1
- package/dist/tempo/SignatureEnvelope.d.ts +19 -17
- package/dist/tempo/SignatureEnvelope.d.ts.map +1 -1
- package/dist/tempo/SignatureEnvelope.js +35 -27
- package/dist/tempo/SignatureEnvelope.js.map +1 -1
- package/dist/tempo/index.d.ts +2 -2
- package/dist/tempo/index.js +2 -2
- package/dist/zod/tempo/KeyAuthorization.d.ts +231 -22
- package/dist/zod/tempo/KeyAuthorization.d.ts.map +1 -1
- package/dist/zod/tempo/KeyAuthorization.js +10 -2
- package/dist/zod/tempo/KeyAuthorization.js.map +1 -1
- package/dist/zod/tempo/RpcSchemaTempo.d.ts +82 -8
- package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
- package/dist/zod/tempo/Transaction.d.ts +246 -24
- package/dist/zod/tempo/Transaction.d.ts.map +1 -1
- package/dist/zod/tempo/TransactionRequest.d.ts +149 -14
- package/dist/zod/tempo/TransactionRequest.d.ts.map +1 -1
- package/dist/zod/tempo/TxEnvelopeTempo.d.ts +78 -6
- package/dist/zod/tempo/TxEnvelopeTempo.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/tempo/KeyAuthorization.test-d.ts +41 -6
- package/src/tempo/KeyAuthorization.test.ts +77 -18
- package/src/tempo/KeyAuthorization.ts +36 -36
- package/src/tempo/MultisigConfig.test.ts +28 -8
- package/src/tempo/MultisigConfig.ts +28 -19
- package/src/tempo/SignatureEnvelope.test.ts +64 -19
- package/src/tempo/SignatureEnvelope.ts +45 -35
- package/src/tempo/index.ts +2 -2
- package/src/tempo/multisig.e2e.test.ts +402 -145
- package/src/version.ts +1 -1
- package/src/zod/tempo/KeyAuthorization.ts +12 -2
- package/src/zod/tempo/_test/KeyAuthorization.test.ts +19 -5
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** @internal */
|
|
2
|
-
export const version = '1.6.
|
|
2
|
+
export const version = '1.6.3'
|
|
@@ -9,6 +9,16 @@ import {
|
|
|
9
9
|
import * as z from 'zod/mini'
|
|
10
10
|
import * as z_SignatureEnvelope from './SignatureEnvelope.js'
|
|
11
11
|
|
|
12
|
+
const SignatureRpc = z.union([
|
|
13
|
+
z_SignatureEnvelope.PrimitiveRpc,
|
|
14
|
+
z_SignatureEnvelope.MultisigRpc,
|
|
15
|
+
])
|
|
16
|
+
|
|
17
|
+
const Signature = z.union([
|
|
18
|
+
z_SignatureEnvelope.Primitive,
|
|
19
|
+
z_SignatureEnvelope.Multisig,
|
|
20
|
+
])
|
|
21
|
+
|
|
12
22
|
/** RPC token spending limit schema. */
|
|
13
23
|
export const RpcTokenLimit = z.object({
|
|
14
24
|
limit: z_Hex.Hex,
|
|
@@ -38,7 +48,7 @@ export const Rpc = z.object({
|
|
|
38
48
|
keyId: z_Address.Address,
|
|
39
49
|
keyType: z_SignatureEnvelope.Type,
|
|
40
50
|
limits: z.optional(z.nullable(z.readonly(z.array(RpcTokenLimit)))),
|
|
41
|
-
signature:
|
|
51
|
+
signature: SignatureRpc,
|
|
42
52
|
witness: z.optional(z.nullable(z_Hex.Hex)),
|
|
43
53
|
})
|
|
44
54
|
|
|
@@ -69,7 +79,7 @@ const domainShape = {
|
|
|
69
79
|
expiry: z.optional(z.number()),
|
|
70
80
|
limits: z.optional(z.readonly(z.array(TokenLimit))),
|
|
71
81
|
scopes: z.optional(z.readonly(z.array(Scope))),
|
|
72
|
-
signature:
|
|
82
|
+
signature: Signature,
|
|
73
83
|
type: z_SignatureEnvelope.Type,
|
|
74
84
|
witness: z.optional(z_Hex.Hex),
|
|
75
85
|
}
|
|
@@ -141,15 +141,29 @@ describe('KeyAuthorization', () => {
|
|
|
141
141
|
).toBe(false)
|
|
142
142
|
})
|
|
143
143
|
|
|
144
|
-
test('
|
|
144
|
+
test('round-trips multisig signatures', () => {
|
|
145
145
|
const multisigRpc = {
|
|
146
146
|
account: '0x1111111111111111111111111111111111111111',
|
|
147
147
|
signatures: [rpc.signature],
|
|
148
148
|
} as const
|
|
149
|
+
const withMultisig = { ...rpc, signature: multisigRpc }
|
|
150
|
+
const decoded = z.decode(z_KeyAuthorization.KeyAuthorization, withMultisig)
|
|
151
|
+
expect(decoded).toEqual(core_KeyAuthorization.fromRpc(withMultisig))
|
|
152
|
+
expect(z.encode(z_KeyAuthorization.KeyAuthorization, decoded)).toEqual(
|
|
153
|
+
core_KeyAuthorization.toRpc(decoded),
|
|
154
|
+
)
|
|
155
|
+
})
|
|
156
|
+
|
|
157
|
+
test('rejects keychain signatures', () => {
|
|
158
|
+
const keychainRpc = {
|
|
159
|
+
signature: rpc.signature,
|
|
160
|
+
type: 'keychain',
|
|
161
|
+
userAddress: '0x1111111111111111111111111111111111111111',
|
|
162
|
+
} as const
|
|
149
163
|
expect(
|
|
150
164
|
z.safeDecode(z_KeyAuthorization.KeyAuthorization, {
|
|
151
165
|
...rpc,
|
|
152
|
-
signature:
|
|
166
|
+
signature: keychainRpc,
|
|
153
167
|
} as never).success,
|
|
154
168
|
).toBe(false)
|
|
155
169
|
|
|
@@ -158,9 +172,9 @@ describe('KeyAuthorization', () => {
|
|
|
158
172
|
z.safeEncode(z_KeyAuthorization.KeyAuthorization, {
|
|
159
173
|
...authorization,
|
|
160
174
|
signature: {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
175
|
+
inner: authorization.signature,
|
|
176
|
+
type: 'keychain',
|
|
177
|
+
userAddress: keychainRpc.userAddress,
|
|
164
178
|
},
|
|
165
179
|
} as never).success,
|
|
166
180
|
).toBe(false)
|