ox 0.14.38 → 0.14.39

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 +14 -0
  2. package/_cjs/tempo/MultisigConfig.js +71 -15
  3. package/_cjs/tempo/MultisigConfig.js.map +1 -1
  4. package/_cjs/tempo/MultisigOperation.js +42 -36
  5. package/_cjs/tempo/MultisigOperation.js.map +1 -1
  6. package/_cjs/tempo/SignatureEnvelope.js +71 -108
  7. package/_cjs/tempo/SignatureEnvelope.js.map +1 -1
  8. package/_cjs/version.js +1 -1
  9. package/_esm/tempo/MultisigConfig.js +140 -71
  10. package/_esm/tempo/MultisigConfig.js.map +1 -1
  11. package/_esm/tempo/MultisigOperation.js +42 -37
  12. package/_esm/tempo/MultisigOperation.js.map +1 -1
  13. package/_esm/tempo/SignatureEnvelope.js +84 -143
  14. package/_esm/tempo/SignatureEnvelope.js.map +1 -1
  15. package/_esm/version.js +1 -1
  16. package/_types/tempo/KeyAuthorization.d.ts +1 -1
  17. package/_types/tempo/KeyAuthorization.d.ts.map +1 -1
  18. package/_types/tempo/MultisigConfig.d.ts +137 -73
  19. package/_types/tempo/MultisigConfig.d.ts.map +1 -1
  20. package/_types/tempo/MultisigOperation.d.ts +1 -1
  21. package/_types/tempo/MultisigOperation.d.ts.map +1 -1
  22. package/_types/tempo/SignatureEnvelope.d.ts +81 -75
  23. package/_types/tempo/SignatureEnvelope.d.ts.map +1 -1
  24. package/_types/version.d.ts +1 -1
  25. package/package.json +6 -1
  26. package/tempo/KeyAuthorization.test-d.ts +12 -0
  27. package/tempo/KeyAuthorization.test.ts +54 -0
  28. package/tempo/KeyAuthorization.ts +1 -1
  29. package/tempo/MultisigConfig.test-d/package.json +6 -0
  30. package/tempo/MultisigConfig.test-d.ts +52 -0
  31. package/tempo/MultisigConfig.test.ts +291 -263
  32. package/tempo/MultisigConfig.ts +250 -95
  33. package/tempo/MultisigOperation.test-d.ts +6 -0
  34. package/tempo/MultisigOperation.test.ts +113 -72
  35. package/tempo/MultisigOperation.ts +41 -35
  36. package/tempo/SignatureEnvelope.test-d.ts +57 -40
  37. package/tempo/SignatureEnvelope.test.ts +523 -480
  38. package/tempo/SignatureEnvelope.ts +250 -257
  39. package/tempo/multisig.e2e.test.ts +113 -86
  40. package/version.ts +1 -1
@@ -9,6 +9,11 @@ import * as ox_Secp256k1 from '../core/Secp256k1.js';
9
9
  import * as Signature from '../core/Signature.js';
10
10
  import type * as WebAuthnP256 from '../core/WebAuthnP256.js';
11
11
  import * as MultisigConfig from './MultisigConfig.js';
12
+ type EnvelopeOneOf<union extends object, keys extends PropertyKey> = union extends union ? Compute<union & {
13
+ [key in Exclude<keys, keyof union>]?: undefined;
14
+ }> : never;
15
+ type SignatureEnvelopeKey = 'account' | 'config' | 'inner' | 'keyId' | 'metadata' | 'prehash' | 'publicKey' | 'signature' | 'signatures' | 'type' | 'userAddress' | 'version';
16
+ type SignatureEnvelopeRpcKey = 'account' | 'config' | 'keyId' | 'metadata' | 'preHash' | 'pubKeyX' | 'pubKeyY' | 'r' | 's' | 'signature' | 'signatures' | 'type' | 'userAddress' | 'v' | 'version' | 'webauthnData' | 'yParity';
12
17
  /** Serialized magic identifier for Tempo signature envelopes. */
13
18
  export declare const magicBytes = "0x7777777777777777777777777777777777777777777777777777777777777777";
14
19
  /**
@@ -51,10 +56,7 @@ export type GetType<envelope extends PartialBy<SignatureEnvelope, 'type'> | unkn
51
56
  } ? 'secp256k1' : envelope extends {
52
57
  userAddress: Address.Address;
53
58
  } ? 'keychain' : envelope extends {
54
- account: Address.Address;
55
- signatures: any;
56
- } | {
57
- init: MultisigConfig.Config;
59
+ config: unknown;
58
60
  signatures: any;
59
61
  } ? 'multisig' : never;
60
62
  /**
@@ -80,11 +82,11 @@ export type GetType<envelope extends PartialBy<SignatureEnvelope, 'type'> | unkn
80
82
  *
81
83
  * [Signature Types Specification](https://docs.tempo.xyz/protocol/transactions/spec-tempo-transaction#signature-types)
82
84
  */
83
- export type SignatureEnvelope<bigintType = bigint, numberType = number> = OneOf<Secp256k1<bigintType, numberType> | P256<bigintType, numberType> | WebAuthn<bigintType, numberType> | Keychain<bigintType, numberType> | Multisig<bigintType, numberType>>;
85
+ export type SignatureEnvelope<bigintType = bigint, numberType = number> = EnvelopeOneOf<Secp256k1<bigintType, numberType> | P256<bigintType, numberType> | WebAuthn<bigintType, numberType> | Keychain<bigintType, numberType>, SignatureEnvelopeKey> | MultisigOneOf<bigintType, numberType>;
84
86
  /**
85
87
  * RPC-formatted signature envelope.
86
88
  */
87
- export type SignatureEnvelopeRpc = OneOf<Secp256k1Rpc | P256Rpc | WebAuthnRpc | KeychainRpc | MultisigRpc>;
89
+ export type SignatureEnvelopeRpc = EnvelopeOneOf<Secp256k1Rpc | P256Rpc | WebAuthnRpc | KeychainRpc, SignatureEnvelopeRpcKey> | MultisigRpcOneOf;
88
90
  /** Primitive signature envelope accepted by protocol sidecars. */
89
91
  export type Primitive<bigintType = bigint, numberType = number> = OneOf<Secp256k1<bigintType, numberType> | P256<bigintType, numberType> | WebAuthn<bigintType, numberType>>;
90
92
  /** RPC-formatted primitive signature envelope. */
@@ -125,39 +127,55 @@ export type KeychainRpc = {
125
127
  *
126
128
  * [TIP-1061](https://tips.sh/1061)
127
129
  */
128
- export type Multisig<bigintType = bigint, numberType = number> = {
129
- type: 'multisig';
130
+ export interface Multisig<bigintType = bigint, numberType = number> {
130
131
  /** Native multisig account address. */
131
132
  account: Address.Address;
133
+ /** Complete applicable multisig configuration witness. */
134
+ config: MultisigConfig.Config<bigintType, numberType>;
132
135
  /**
133
136
  * Owner approvals over the multisig owner approval digest. Each approval is
134
137
  * either a primitive signature or a nested multisig signature (keychain
135
138
  * approvals are invalid).
136
139
  */
137
140
  signatures: readonly SignatureEnvelope<bigintType, numberType>[];
138
- /**
139
- * Initial native multisig config for bootstrapping this account. Present only on
140
- * the first (bootstrap) transaction from the derived account; absent on every
141
- * subsequent transaction.
142
- */
143
- init?: MultisigConfig.Config<numberType> | undefined;
141
+ type: 'multisig';
142
+ }
143
+ type MultisigOneOf<bigintType = bigint, numberType = number> = Multisig<bigintType, numberType> & {
144
+ inner?: undefined;
145
+ keyId?: undefined;
146
+ metadata?: undefined;
147
+ prehash?: undefined;
148
+ publicKey?: undefined;
149
+ signature?: undefined;
150
+ userAddress?: undefined;
151
+ version?: undefined;
144
152
  };
145
153
  /** RPC-formatted native multisig signature. */
146
- export type MultisigRpc = OneOf<{
147
- /** Existing native multisig account. */
154
+ export type MultisigRpc = {
155
+ /** Native multisig account address. */
148
156
  account: Address.Address;
157
+ /** Complete applicable multisig configuration witness. */
158
+ config: MultisigConfig.Rpc;
149
159
  /** Structured owner approvals. */
150
160
  signatures: readonly SignatureEnvelopeRpc[];
151
161
  /** Multisig RPC signatures are untagged. */
152
162
  type?: undefined;
153
- } | {
154
- /** Initial config for bootstrapping a native multisig account. */
155
- init: MultisigConfig.Config;
156
- /** Structured owner approvals. */
157
- signatures: readonly SignatureEnvelopeRpc[];
158
- /** Multisig RPC signatures are untagged. */
159
- type?: undefined;
160
- }>;
163
+ };
164
+ type MultisigRpcOneOf = MultisigRpc & {
165
+ keyId?: undefined;
166
+ metadata?: undefined;
167
+ preHash?: undefined;
168
+ pubKeyX?: undefined;
169
+ pubKeyY?: undefined;
170
+ r?: undefined;
171
+ s?: undefined;
172
+ signature?: undefined;
173
+ userAddress?: undefined;
174
+ v?: undefined;
175
+ version?: undefined;
176
+ webauthnData?: undefined;
177
+ yParity?: undefined;
178
+ };
161
179
  export type P256<bigintType = bigint, numberType = number> = {
162
180
  prehash: boolean;
163
181
  publicKey: PublicKey.PublicKey;
@@ -438,21 +456,17 @@ export declare function deserialize(value: Serialized): SignatureEnvelope;
438
456
  * ```
439
457
  *
440
458
  * @example
441
- * ### Multisig (from initial config)
442
- *
443
- * Pass `initialConfig` to derive `account` automatically. Set `init: true` to
444
- * opt into bootstrap (uses `initialConfig` as the bootstrap `init`); omit
445
- * `init` for subsequent (non-bootstrap) transactions.
459
+ * ### Multisig
446
460
  *
447
461
  * ```ts twoslash
448
462
  * import { Secp256k1 } from 'ox'
449
463
  * import { MultisigConfig, SignatureEnvelope } from 'ox/tempo'
450
464
  *
451
- * const initialConfig = MultisigConfig.from({
452
- * threshold: 1,
465
+ * const config = MultisigConfig.from({
453
466
  * owners: [
454
467
  * { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
455
468
  * ],
469
+ * threshold: 1,
456
470
  * })
457
471
  *
458
472
  * const privateKey = Secp256k1.randomPrivateKey()
@@ -460,16 +474,8 @@ export declare function deserialize(value: Serialized): SignatureEnvelope;
460
474
  * Secp256k1.sign({ payload: '0xdeadbeef', privateKey }),
461
475
  * )
462
476
  *
463
- * // Bootstrap transaction
464
- * const bootstrap = SignatureEnvelope.from({
465
- * initialConfig,
466
- * signatures: [signature],
467
- * init: true,
468
- * })
469
- *
470
- * // Subsequent (non-bootstrap) transactions
471
- * const subsequent = SignatureEnvelope.from({
472
- * initialConfig,
477
+ * const multisig = SignatureEnvelope.from({
478
+ * config,
473
479
  * signatures: [signature],
474
480
  * })
475
481
  * ```
@@ -483,24 +489,30 @@ export declare namespace from {
483
489
  /** Payload that was signed. Used to recover `keyId` for keychain envelopes with secp256k1 inner signatures. */
484
490
  payload?: Hex.Hex | Bytes.Bytes | undefined;
485
491
  };
486
- /**
487
- * Multisig envelope input variant where `account` is derived from the
488
- * supplied `initialConfig`. Pass `init: true` to opt into bootstrap (uses
489
- * `initialConfig` as the bootstrap `init`); omit `init` for subsequent
490
- * (non-bootstrap) transactions.
491
- */
492
- type MultisigFromInitialConfig = {
492
+ /** Multisig signature input with an optional derived initial account. */
493
+ type MultisigFromConfig = {
494
+ /** Initial native multisig account, derived from config when omitted. */
495
+ account?: Address.Address | undefined;
496
+ /** Initial version-0 multisig configuration witness. */
497
+ config: MultisigConfig.Input<0 | 0n>;
498
+ /** Primitive or nested owner approvals. */
499
+ signatures: readonly SignatureEnvelope[];
493
500
  type?: 'multisig' | undefined;
494
- initialConfig: MultisigConfig.Config;
501
+ } | {
502
+ /** Native multisig account. */
503
+ account: Address.Address;
504
+ /** Complete applicable multisig configuration witness. */
505
+ config: MultisigConfig.Input;
506
+ /** Primitive or nested owner approvals. */
495
507
  signatures: readonly SignatureEnvelope[];
496
- init?: MultisigConfig.Config | boolean | undefined;
508
+ type?: 'multisig' | undefined;
497
509
  };
498
- type Value = UnionPartialBy<SignatureEnvelope, 'prehash' | 'type'> | Secp256k1Flat | Serialized | MultisigFromInitialConfig;
499
- type ReturnValue<value extends Value> = Compute<OneOf<value extends Serialized ? SignatureEnvelope : value extends Secp256k1Flat ? Secp256k1 : value extends MultisigFromInitialConfig ? Multisig : IsNarrowable<value, SignatureEnvelope> extends true ? SignatureEnvelope : Assign<value, {
510
+ type Value = UnionPartialBy<SignatureEnvelope, 'prehash' | 'type'> | Secp256k1Flat | Serialized | MultisigFromConfig;
511
+ type ReturnValue<value extends Value> = value extends Serialized ? SignatureEnvelope : value extends Secp256k1Flat ? Secp256k1 : value extends MultisigFromConfig ? MultisigOneOf : IsNarrowable<value, SignatureEnvelope> extends true ? SignatureEnvelope : Assign<value, {
500
512
  readonly type: GetType<value>;
501
513
  } & (GetType<value> extends 'keychain' ? {
502
514
  keyId?: Address.Address | undefined;
503
- } : {})>>>;
515
+ } : {})>;
504
516
  }
505
517
  /**
506
518
  * Converts an RPC-formatted signature envelope to a typed signature envelope.
@@ -522,7 +534,7 @@ export declare namespace from {
522
534
  */
523
535
  export declare function fromRpc(envelope: SignatureEnvelopeRpc): SignatureEnvelope;
524
536
  export declare namespace fromRpc {
525
- type ErrorType = assert.ErrorType | CoercionError | InvalidSerializedError | MultisigConfig.getAddress.ErrorType | Signature.fromRpc.ErrorType | Errors.GlobalErrorType;
537
+ type ErrorType = assert.ErrorType | CoercionError | InvalidSerializedError | MultisigConfig.fromRpc.ErrorType | Signature.fromRpc.ErrorType | Errors.GlobalErrorType;
526
538
  }
527
539
  /**
528
540
  * Determines the signature type of an envelope.
@@ -551,7 +563,7 @@ export declare function getType<envelope extends PartialBy<SignatureEnvelope, 't
551
563
  * - WebAuthn: `0x02` + webauthnData (variable) + r (32) + s (32) + pubKeyX (32) + pubKeyY (32)
552
564
  * - Keychain V1: `0x03` + userAddress (20) + inner signature (recursive)
553
565
  * - Keychain V2: `0x04` + userAddress (20) + inner signature (recursive)
554
- * - Multisig: `0x05` + RLP `[account | init, signatures]`
566
+ * - Multisig: `0x05` + RLP `[account, config, signatures]`
555
567
  *
556
568
  * [Signature Types](https://docs.tempo.xyz/protocol/transactions/spec-tempo-transaction#signature-types)
557
569
  *
@@ -591,21 +603,19 @@ export declare namespace serialize {
591
603
  * recovered owner address. Works for any owner key type (secp256k1, p256,
592
604
  * webAuthn).
593
605
  *
594
- * Config updates never change `account`, so the initial config is the correct
595
- * input even for post-update transactions.
596
- *
597
606
  * @example
598
607
  * ```ts twoslash
599
608
  * import { Secp256k1 } from 'ox'
600
609
  * import { MultisigConfig, SignatureEnvelope, TxEnvelopeTempo } from 'ox/tempo'
601
610
  *
602
- * const initialConfig = MultisigConfig.from({
603
- * threshold: 2,
611
+ * const config = MultisigConfig.from({
604
612
  * owners: [
605
613
  * { owner: '0x1111111111111111111111111111111111111111', weight: 1 },
606
614
  * { owner: '0x2222222222222222222222222222222222222222', weight: 1 },
607
615
  * ],
616
+ * threshold: 2,
608
617
  * })
618
+ * const account = MultisigConfig.getAddress(config)
609
619
  *
610
620
  * const tx = TxEnvelopeTempo.from({ chainId: 1, calls: [] })
611
621
  * const payload = TxEnvelopeTempo.getSignPayload(tx)
@@ -615,15 +625,17 @@ export declare namespace serialize {
615
625
  * Secp256k1.randomPrivateKey(),
616
626
  * ]
617
627
  * const digest = MultisigConfig.getSignPayload({
628
+ * account,
629
+ * config,
618
630
  * payload,
619
- * initialConfig,
620
631
  * })
621
632
  * const signatures = privateKeys.map((privateKey) =>
622
633
  * SignatureEnvelope.from(Secp256k1.sign({ payload: digest, privateKey })),
623
634
  * )
624
635
  *
625
636
  * const ordered = SignatureEnvelope.sortMultisigApprovals({ // [!code focus]
626
- * initialConfig, // [!code focus]
637
+ * account, // [!code focus]
638
+ * config, // [!code focus]
627
639
  * payload, // [!code focus]
628
640
  * signatures, // [!code focus]
629
641
  * }) // [!code focus]
@@ -635,22 +647,15 @@ export declare namespace serialize {
635
647
  export declare function sortMultisigApprovals(value: sortMultisigApprovals.Value): readonly SignatureEnvelope[];
636
648
  export declare namespace sortMultisigApprovals {
637
649
  type Value = {
650
+ /** The native multisig account address. */
651
+ account: Address.Address;
652
+ /** Complete applicable multisig configuration witness. */
653
+ config: MultisigConfig.Input;
638
654
  /** The inner transaction sign payload (`tx.signature_hash()`). */
639
655
  payload: Hex.Hex | Bytes.Bytes;
640
656
  /** The owner approvals to order. */
641
657
  signatures: readonly SignatureEnvelope[];
642
- /** Current multisig config version. Defaults to `0n`. */
643
- version?: bigint | undefined;
644
- } & OneOf<{
645
- /** The native multisig account address. */
646
- account: Address.Address;
647
- } | {
648
- /**
649
- * The initial multisig config (the bootstrap config that derived the
650
- * permanent `account`). Used to derive the account automatically.
651
- */
652
- initialConfig: MultisigConfig.Config;
653
- }>;
658
+ };
654
659
  type ErrorType = MultisigConfig.getSignPayload.ErrorType | extractAddress.ErrorType | Errors.GlobalErrorType;
655
660
  }
656
661
  /**
@@ -675,7 +680,7 @@ export declare namespace toRpc {
675
680
  type Input = SignatureEnvelope;
676
681
  /** RPC signature envelope inferred from the input type. */
677
682
  type ReturnType<envelope extends Input = Input> = GetType<envelope> extends 'secp256k1' ? Secp256k1Rpc : GetType<envelope> extends 'p256' ? P256Rpc : GetType<envelope> extends 'webAuthn' ? WebAuthnRpc : GetType<envelope> extends 'keychain' ? KeychainRpc : GetType<envelope> extends 'multisig' ? MultisigRpc : SignatureEnvelopeRpc;
678
- type ErrorType = assert.ErrorType | CoercionError | Signature.toRpc.ErrorType | Errors.GlobalErrorType;
683
+ type ErrorType = assert.ErrorType | CoercionError | MultisigConfig.toRpc.ErrorType | Signature.toRpc.ErrorType | Errors.GlobalErrorType;
679
684
  }
680
685
  /**
681
686
  * Validates a signature envelope. Returns `true` if the envelope is valid, `false` otherwise.
@@ -860,4 +865,5 @@ export declare class InvalidMultisigApprovalError extends Errors.BaseError {
860
865
  export declare class VerificationError extends Errors.BaseError {
861
866
  readonly name = "SignatureEnvelope.VerificationError";
862
867
  }
868
+ export {};
863
869
  //# sourceMappingURL=SignatureEnvelope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignatureEnvelope.d.ts","sourceRoot":"","sources":["../../tempo/SignatureEnvelope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SignatureEnvelope.d.ts","sourceRoot":"","sources":["../../tempo/SignatureEnvelope.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  /** @internal */
2
- export declare const version = "0.14.38";
2
+ export declare const version = "0.14.39";
3
3
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ox",
3
3
  "description": "Ethereum Standard Library",
4
- "version": "0.14.38",
4
+ "version": "0.14.39",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
@@ -523,6 +523,11 @@
523
523
  "import": "./_esm/tempo/KeyAuthorization.js",
524
524
  "default": "./_cjs/tempo/KeyAuthorization.js"
525
525
  },
526
+ "./tempo/MultisigConfig.test-d": {
527
+ "types": "./_types/tempo/MultisigConfig.test-d.d.ts",
528
+ "import": "./_esm/tempo/MultisigConfig.test-d.js",
529
+ "default": "./_cjs/tempo/MultisigConfig.test-d.js"
530
+ },
526
531
  "./tempo/MultisigConfig": {
527
532
  "types": "./_types/tempo/MultisigConfig.d.ts",
528
533
  "import": "./_esm/tempo/MultisigConfig.js",
@@ -1,5 +1,6 @@
1
1
  import { expectTypeOf, test } from 'vitest'
2
2
  import * as KeyAuthorization from './KeyAuthorization.js'
3
+ import * as MultisigConfig from './MultisigConfig.js'
3
4
  import type * as SignatureEnvelope from './SignatureEnvelope.js'
4
5
 
5
6
  const authorization = {
@@ -19,6 +20,16 @@ const signature = {
19
20
 
20
21
  const multisig = {
21
22
  account: '0x2222222222222222222222222222222222222222',
23
+ config: MultisigConfig.from({
24
+ owners: [
25
+ {
26
+ owner: '0x1111111111111111111111111111111111111111',
27
+ weight: 1,
28
+ },
29
+ ],
30
+ threshold: 1,
31
+ version: 1n,
32
+ }),
22
33
  signatures: [signature],
23
34
  type: 'multisig',
24
35
  } as const satisfies SignatureEnvelope.Multisig
@@ -46,6 +57,7 @@ test('accepts multisig signatures', () => {
46
57
 
47
58
  const multisigRpc = {
48
59
  account: multisig.account,
60
+ config: MultisigConfig.toRpc(multisig.config),
49
61
  signatures: [
50
62
  {
51
63
  r: '0x01',
@@ -9,6 +9,7 @@ import {
9
9
  } from 'ox'
10
10
  import { describe, expect, test } from 'vitest'
11
11
  import * as KeyAuthorization from './KeyAuthorization.js'
12
+ import * as MultisigConfig from './MultisigConfig.js'
12
13
  import * as Period from './Period.js'
13
14
  import * as SignatureEnvelope from './SignatureEnvelope.js'
14
15
 
@@ -55,6 +56,16 @@ const signature_webauthn = SignatureEnvelope.from({
55
56
 
56
57
  const signature_multisig = {
57
58
  account: address,
59
+ config: MultisigConfig.from({
60
+ owners: [
61
+ {
62
+ owner: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
63
+ weight: 1,
64
+ },
65
+ ],
66
+ threshold: 1,
67
+ version: 1n,
68
+ }),
58
69
  signatures: [SignatureEnvelope.from(signature_secp256k1)],
59
70
  type: 'multisig',
60
71
  } as const satisfies SignatureEnvelope.Multisig
@@ -1105,6 +1116,49 @@ describe('getSignPayload', () => {
1105
1116
  })
1106
1117
 
1107
1118
  describe('deserialize', () => {
1119
+ test('example: matches the frozen multisig witness vector', () => {
1120
+ const serialized =
1121
+ '0xf8f1f85382107980941eff47bc3a10a45d4b230b5d10e37751fe6aa718808080a0535353535353535353535353535353535353535353535353535353535353535380949dba7f426b711d4893c11611eacf7cc334e7146bb89a05f897949dba7f426b711d4893c11611eacf7cc334e7146bf83ba000000000000000000000000000000000000000000000000000000000000000008001d7d6947e5f4552091a69125d5dfcb7b8c2659029395bdf01f843b8412cfed9350faf80e4115e3c4c967356b80a8e6ee42e4a49ab953c8c8a3537d8d8359bf035a9bea18f32b0da7129cdce3ce701abc09ad8919b93da21a0d57e21451b' as const
1122
+ const authorization = KeyAuthorization.deserialize(serialized)
1123
+
1124
+ expect(authorization).toMatchInlineSnapshot(`
1125
+ {
1126
+ "account": "0x9dba7f426b711d4893c11611eacf7cc334e7146b",
1127
+ "address": "0x1eff47bc3a10a45d4b230b5d10e37751fe6aa718",
1128
+ "chainId": 4217n,
1129
+ "isAdmin": false,
1130
+ "signature": {
1131
+ "account": "0x9dba7f426b711d4893c11611eacf7cc334e7146b",
1132
+ "config": {
1133
+ "owners": [
1134
+ {
1135
+ "owner": "0x7e5f4552091a69125d5dfcb7b8c2659029395bdf",
1136
+ "weight": 1,
1137
+ },
1138
+ ],
1139
+ "salt": "0x0000000000000000000000000000000000000000000000000000000000000000",
1140
+ "threshold": 1,
1141
+ "version": 0n,
1142
+ },
1143
+ "signatures": [
1144
+ {
1145
+ "signature": {
1146
+ "r": 20352043601603739938552089215678686496502071349800253093806146960015285016792n,
1147
+ "s": 24248100135830369623517016370647991375751195948759416747839894916952879931717n,
1148
+ "yParity": 0,
1149
+ },
1150
+ "type": "secp256k1",
1151
+ },
1152
+ ],
1153
+ "type": "multisig",
1154
+ },
1155
+ "type": "secp256k1",
1156
+ "witness": "0x5353535353535353535353535353535353535353535353535353535353535353",
1157
+ }
1158
+ `)
1159
+ expect(KeyAuthorization.serialize(authorization)).toBe(serialized)
1160
+ })
1161
+
1108
1162
  test('multisig', () => {
1109
1163
  const serialized = Rlp.fromHex([
1110
1164
  ['0x1', '0x', address],
@@ -159,7 +159,7 @@ type SignatureValue =
159
159
  | UnionPartialBy<Signature, 'prehash' | 'type'>
160
160
  | SignatureEnvelope.Secp256k1Flat
161
161
  | SignatureEnvelope.Serialized
162
- | SignatureEnvelope.from.MultisigFromInitialConfig
162
+ | SignatureEnvelope.from.MultisigFromConfig
163
163
 
164
164
  type BaseTuple = readonly [
165
165
  chainId: Hex.Hex,
@@ -0,0 +1,6 @@
1
+ {
2
+ "type": "module",
3
+ "types": "../../_types/tempo/MultisigConfig.test-d.d.ts",
4
+ "main": "../../_cjs/tempo/MultisigConfig.test-d.js",
5
+ "module": "../../_esm/tempo/MultisigConfig.test-d.js"
6
+ }
@@ -0,0 +1,52 @@
1
+ import { expectTypeOf, test } from 'vitest'
2
+ import * as MultisigConfig from './MultisigConfig.js'
3
+
4
+ const input = {
5
+ owners: [
6
+ {
7
+ owner: '0x1111111111111111111111111111111111111111',
8
+ weight: 1,
9
+ },
10
+ ],
11
+ threshold: 1,
12
+ } as const satisfies MultisigConfig.Input
13
+
14
+ test('from returns a complete configuration', () => {
15
+ const config = MultisigConfig.from(input)
16
+ const numeric = MultisigConfig.from({ ...input, version: 1 })
17
+ const zero = MultisigConfig.from({ ...input, version: 0 })
18
+
19
+ expectTypeOf(config).toMatchTypeOf<MultisigConfig.Config>()
20
+ expectTypeOf(config.version).toEqualTypeOf<0n>()
21
+ expectTypeOf(numeric.version).toEqualTypeOf<bigint>()
22
+ expectTypeOf(zero.version).toEqualTypeOf<0n>()
23
+ })
24
+
25
+ test('RPC configurations use hexadecimal versions', () => {
26
+ const rpc = MultisigConfig.toRpc(MultisigConfig.from(input))
27
+
28
+ expectTypeOf(rpc).toEqualTypeOf<MultisigConfig.Rpc>()
29
+ expectTypeOf(rpc.version).toEqualTypeOf<`0x${string}`>()
30
+ })
31
+
32
+ test('complete configurations require a version', () => {
33
+ // @ts-expect-error Complete configurations include their version.
34
+ const config: MultisigConfig.Config = input
35
+
36
+ expectTypeOf(config).toEqualTypeOf<MultisigConfig.Config>()
37
+ })
38
+
39
+ test('sign payloads take the version from config', () => {
40
+ MultisigConfig.getSignPayload({
41
+ account: '0x2222222222222222222222222222222222222222',
42
+ config: { version: 1 },
43
+ payload: '0x1234',
44
+ })
45
+
46
+ MultisigConfig.getSignPayload({
47
+ account: '0x2222222222222222222222222222222222222222',
48
+ // @ts-expect-error A configuration version is required.
49
+ config: {},
50
+ payload: '0x1234',
51
+ })
52
+ })