ox 1.7.4 → 1.7.5

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 (105) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/core/AbiEvent.d.ts.map +1 -1
  3. package/dist/core/AbiEvent.js +10 -9
  4. package/dist/core/AbiEvent.js.map +1 -1
  5. package/dist/core/Blobs.d.ts.map +1 -1
  6. package/dist/core/Blobs.js +6 -2
  7. package/dist/core/Blobs.js.map +1 -1
  8. package/dist/core/Signature.d.ts +6 -5
  9. package/dist/core/Signature.d.ts.map +1 -1
  10. package/dist/core/Signature.js +17 -7
  11. package/dist/core/Signature.js.map +1 -1
  12. package/dist/core/Siwe.d.ts.map +1 -1
  13. package/dist/core/Siwe.js +21 -1
  14. package/dist/core/Siwe.js.map +1 -1
  15. package/dist/tempo/KeyAuthorization.d.ts +42 -38
  16. package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
  17. package/dist/tempo/KeyAuthorization.js +24 -4
  18. package/dist/tempo/KeyAuthorization.js.map +1 -1
  19. package/dist/tempo/MultisigConfig.d.ts +18 -15
  20. package/dist/tempo/MultisigConfig.d.ts.map +1 -1
  21. package/dist/tempo/MultisigConfig.js +49 -20
  22. package/dist/tempo/MultisigConfig.js.map +1 -1
  23. package/dist/tempo/MultisigOperation.d.ts +3 -2
  24. package/dist/tempo/MultisigOperation.d.ts.map +1 -1
  25. package/dist/tempo/MultisigOperation.js +20 -100
  26. package/dist/tempo/MultisigOperation.js.map +1 -1
  27. package/dist/tempo/MultisigSimulation.d.ts +2 -49
  28. package/dist/tempo/MultisigSimulation.d.ts.map +1 -1
  29. package/dist/tempo/MultisigSimulation.js +18 -46
  30. package/dist/tempo/MultisigSimulation.js.map +1 -1
  31. package/dist/tempo/SignatureEnvelope.d.ts +72 -140
  32. package/dist/tempo/SignatureEnvelope.d.ts.map +1 -1
  33. package/dist/tempo/SignatureEnvelope.js +130 -181
  34. package/dist/tempo/SignatureEnvelope.js.map +1 -1
  35. package/dist/tempo/TransactionRequest.d.ts +4 -2
  36. package/dist/tempo/TransactionRequest.d.ts.map +1 -1
  37. package/dist/tempo/TransactionRequest.js +6 -1
  38. package/dist/tempo/TransactionRequest.js.map +1 -1
  39. package/dist/tempo/index.d.ts +3 -1
  40. package/dist/tempo/index.d.ts.map +1 -1
  41. package/dist/tempo/index.js +3 -1
  42. package/dist/tempo/index.js.map +1 -1
  43. package/dist/zod/tempo/AuthorizationTempo.d.ts +350 -10
  44. package/dist/zod/tempo/AuthorizationTempo.d.ts.map +1 -1
  45. package/dist/zod/tempo/KeyAuthorization.d.ts +242 -422
  46. package/dist/zod/tempo/KeyAuthorization.d.ts.map +1 -1
  47. package/dist/zod/tempo/KeyAuthorization.js +29 -31
  48. package/dist/zod/tempo/KeyAuthorization.js.map +1 -1
  49. package/dist/zod/tempo/MultisigSimulation.d.ts +8 -76
  50. package/dist/zod/tempo/MultisigSimulation.d.ts.map +1 -1
  51. package/dist/zod/tempo/MultisigSimulation.js +3 -37
  52. package/dist/zod/tempo/MultisigSimulation.js.map +1 -1
  53. package/dist/zod/tempo/RpcSchemaTempo.d.ts +284 -228
  54. package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
  55. package/dist/zod/tempo/SignatureEnvelope.d.ts +105 -3
  56. package/dist/zod/tempo/SignatureEnvelope.d.ts.map +1 -1
  57. package/dist/zod/tempo/SignatureEnvelope.js +21 -9
  58. package/dist/zod/tempo/SignatureEnvelope.js.map +1 -1
  59. package/dist/zod/tempo/Transaction.d.ts +676 -448
  60. package/dist/zod/tempo/Transaction.d.ts.map +1 -1
  61. package/dist/zod/tempo/TransactionRequest.d.ts +590 -473
  62. package/dist/zod/tempo/TransactionRequest.d.ts.map +1 -1
  63. package/dist/zod/tempo/TransactionRequest.js +8 -0
  64. package/dist/zod/tempo/TransactionRequest.js.map +1 -1
  65. package/dist/zod/tempo/TxEnvelopeTempo.d.ts +327 -213
  66. package/dist/zod/tempo/TxEnvelopeTempo.d.ts.map +1 -1
  67. package/dist/zod/tempo/ZoneRpcAuthentication.d.ts +105 -3
  68. package/dist/zod/tempo/ZoneRpcAuthentication.d.ts.map +1 -1
  69. package/package.json +1 -1
  70. package/src/core/AbiEvent.ts +11 -9
  71. package/src/core/Blobs.ts +6 -2
  72. package/src/core/Signature.ts +41 -11
  73. package/src/core/Siwe.ts +20 -1
  74. package/src/core/_test/AbiEvent.test.ts +45 -0
  75. package/src/core/_test/Blobs.test.ts +22 -0
  76. package/src/core/_test/Signature.test.ts +166 -0
  77. package/src/core/_test/Siwe.test.ts +100 -1
  78. package/src/tempo/AuthorizationTempo.test.ts +8 -4
  79. package/src/tempo/KeyAuthorization.test-d.ts +16 -63
  80. package/src/tempo/KeyAuthorization.test.ts +69 -11
  81. package/src/tempo/KeyAuthorization.ts +107 -63
  82. package/src/tempo/MultisigConfig.test.ts +44 -20
  83. package/src/tempo/MultisigConfig.ts +65 -23
  84. package/src/tempo/MultisigOperation.test.ts +79 -550
  85. package/src/tempo/MultisigOperation.ts +31 -146
  86. package/src/tempo/MultisigSimulation.test-d.ts +2 -2
  87. package/src/tempo/MultisigSimulation.test.ts +21 -110
  88. package/src/tempo/MultisigSimulation.ts +25 -99
  89. package/src/tempo/SignatureEnvelope.test-d.ts +29 -47
  90. package/src/tempo/SignatureEnvelope.test.ts +328 -541
  91. package/src/tempo/SignatureEnvelope.ts +196 -291
  92. package/src/tempo/Transaction.test.ts +4 -4
  93. package/src/tempo/TransactionRequest.test.ts +17 -80
  94. package/src/tempo/TransactionRequest.ts +19 -2
  95. package/src/tempo/index.ts +3 -1
  96. package/src/tempo/multisig.e2e.test.ts +321 -860
  97. package/src/version.ts +1 -1
  98. package/src/zod/tempo/KeyAuthorization.ts +50 -39
  99. package/src/zod/tempo/MultisigSimulation.ts +3 -48
  100. package/src/zod/tempo/SignatureEnvelope.ts +46 -35
  101. package/src/zod/tempo/TransactionRequest.ts +14 -0
  102. package/src/zod/tempo/_test/KeyAuthorization.test.ts +69 -20
  103. package/src/zod/tempo/_test/MultisigSimulation.test.ts +6 -31
  104. package/src/zod/tempo/_test/SignatureEnvelope.test.ts +118 -85
  105. package/src/zod/tempo/_test/TransactionRequest.test.ts +9 -19
@@ -1,58 +1,40 @@
1
1
  import { expectTypeOf, test } from 'vp/test'
2
- import * as MultisigConfig from './MultisigConfig.js'
2
+ import type * as Hex from '../core/Hex.js'
3
3
  import * as SignatureEnvelope from './SignatureEnvelope.js'
4
4
 
5
- const signature = {
6
- signature: {
7
- r: '0x01',
8
- s: '0x02',
9
- yParity: 0,
5
+ const primitive = SignatureEnvelope.from({ r: '0x01', s: '0x02', yParity: 0 })
6
+ const envelope = SignatureEnvelope.from({
7
+ account: '0x2222222222222222222222222222222222222222',
8
+ config: {
9
+ threshold: 1,
10
+ version: 0n,
11
+ owners: [
12
+ { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
13
+ ],
10
14
  },
11
- type: 'secp256k1',
12
- } as const satisfies SignatureEnvelope.Secp256k1
13
-
14
- const config = MultisigConfig.from({
15
- owners: [
16
- {
17
- owner: '0x1111111111111111111111111111111111111111',
18
- weight: 1,
19
- },
20
- ],
21
- threshold: 1,
15
+ signatures: [primitive],
22
16
  })
23
17
 
24
- test('toRpc preserves the signature type', () => {
18
+ test('preserves primitive and multisig RPC types', () => {
25
19
  expectTypeOf(
26
- SignatureEnvelope.toRpc(signature),
20
+ SignatureEnvelope.toRpc(primitive),
27
21
  ).toEqualTypeOf<SignatureEnvelope.Secp256k1Rpc>()
22
+ expectTypeOf(SignatureEnvelope.toRpc(envelope)).toEqualTypeOf<Hex.Hex>()
23
+ expectTypeOf<
24
+ SignatureEnvelope.GetType<typeof envelope>
25
+ >().toEqualTypeOf<'multisig'>()
26
+ expectTypeOf(envelope).toMatchTypeOf<SignatureEnvelope.Multisig>()
28
27
  })
29
28
 
30
- test('MultisigRpc contains an untagged serialized multisig signature', () => {
31
- const rpc = '0xf8' as const satisfies SignatureEnvelope.MultisigRpc
32
- expectTypeOf(rpc).toMatchTypeOf<`0x${string}`>()
33
- })
34
-
35
- test('from derives an initial account', () => {
36
- const multisig = SignatureEnvelope.from({
37
- config,
38
- signatures: [signature],
39
- })
40
-
41
- expectTypeOf(multisig).toMatchTypeOf<SignatureEnvelope.Multisig>()
42
- expectTypeOf(multisig.config.version).toEqualTypeOf<bigint>()
43
- })
44
-
45
- test('from requires an account for a current config', () => {
46
- // @ts-expect-error Current configurations require an explicit account.
47
- SignatureEnvelope.from({
48
- config: { ...config, version: 1 },
49
- signatures: [signature],
50
- })
51
-
52
- const multisig = SignatureEnvelope.from({
53
- account: '0x2222222222222222222222222222222222222222',
54
- config: { ...config, version: 1 },
55
- signatures: [signature],
56
- })
57
- expectTypeOf(multisig).toMatchTypeOf<SignatureEnvelope.Multisig>()
29
+ test('requires config and primitive approvals', () => {
30
+ // @ts-expect-error Every multisig signature carries its current config.
31
+ SignatureEnvelope.from({ account: envelope.account, signatures: [primitive] })
32
+ // @ts-expect-error Multisig owners cannot recursively approve with multisigs.
33
+ SignatureEnvelope.from({ ...envelope, signatures: [envelope] })
34
+ // @ts-expect-error Multisig RPC signatures are hex-encoded RLP.
35
+ const rpc: SignatureEnvelope.MultisigRpc = {
36
+ account: envelope.account,
37
+ signatures: [],
38
+ }
39
+ expectTypeOf(rpc).toEqualTypeOf<Hex.Hex>()
58
40
  })