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.
Files changed (40) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/tempo/KeyAuthorization.d.ts +16 -12
  3. package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
  4. package/dist/tempo/KeyAuthorization.js +7 -13
  5. package/dist/tempo/KeyAuthorization.js.map +1 -1
  6. package/dist/tempo/MultisigConfig.d.ts +20 -17
  7. package/dist/tempo/MultisigConfig.d.ts.map +1 -1
  8. package/dist/tempo/MultisigConfig.js +17 -16
  9. package/dist/tempo/MultisigConfig.js.map +1 -1
  10. package/dist/tempo/SignatureEnvelope.d.ts +19 -17
  11. package/dist/tempo/SignatureEnvelope.d.ts.map +1 -1
  12. package/dist/tempo/SignatureEnvelope.js +35 -27
  13. package/dist/tempo/SignatureEnvelope.js.map +1 -1
  14. package/dist/tempo/index.d.ts +2 -2
  15. package/dist/tempo/index.js +2 -2
  16. package/dist/zod/tempo/KeyAuthorization.d.ts +231 -22
  17. package/dist/zod/tempo/KeyAuthorization.d.ts.map +1 -1
  18. package/dist/zod/tempo/KeyAuthorization.js +10 -2
  19. package/dist/zod/tempo/KeyAuthorization.js.map +1 -1
  20. package/dist/zod/tempo/RpcSchemaTempo.d.ts +82 -8
  21. package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
  22. package/dist/zod/tempo/Transaction.d.ts +246 -24
  23. package/dist/zod/tempo/Transaction.d.ts.map +1 -1
  24. package/dist/zod/tempo/TransactionRequest.d.ts +149 -14
  25. package/dist/zod/tempo/TransactionRequest.d.ts.map +1 -1
  26. package/dist/zod/tempo/TxEnvelopeTempo.d.ts +78 -6
  27. package/dist/zod/tempo/TxEnvelopeTempo.d.ts.map +1 -1
  28. package/package.json +1 -1
  29. package/src/tempo/KeyAuthorization.test-d.ts +41 -6
  30. package/src/tempo/KeyAuthorization.test.ts +77 -18
  31. package/src/tempo/KeyAuthorization.ts +36 -36
  32. package/src/tempo/MultisigConfig.test.ts +28 -8
  33. package/src/tempo/MultisigConfig.ts +28 -19
  34. package/src/tempo/SignatureEnvelope.test.ts +64 -19
  35. package/src/tempo/SignatureEnvelope.ts +45 -35
  36. package/src/tempo/index.ts +2 -2
  37. package/src/tempo/multisig.e2e.test.ts +402 -145
  38. package/src/version.ts +1 -1
  39. package/src/zod/tempo/KeyAuthorization.ts +12 -2
  40. 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'
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: z_SignatureEnvelope.PrimitiveRpc,
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: z_SignatureEnvelope.Primitive,
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('rejects multisig signatures', () => {
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: multisigRpc,
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
- account: multisigRpc.account,
162
- signatures: [authorization.signature],
163
- type: 'multisig',
175
+ inner: authorization.signature,
176
+ type: 'keychain',
177
+ userAddress: keychainRpc.userAddress,
164
178
  },
165
179
  } as never).success,
166
180
  ).toBe(false)