ox 1.7.2 → 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.
- package/CHANGELOG.md +43 -0
- package/dist/core/AbiEvent.d.ts.map +1 -1
- package/dist/core/AbiEvent.js +10 -9
- package/dist/core/AbiEvent.js.map +1 -1
- package/dist/core/Blobs.d.ts.map +1 -1
- package/dist/core/Blobs.js +6 -2
- package/dist/core/Blobs.js.map +1 -1
- package/dist/core/Signature.d.ts +6 -5
- package/dist/core/Signature.d.ts.map +1 -1
- package/dist/core/Signature.js +17 -7
- package/dist/core/Signature.js.map +1 -1
- package/dist/core/Siwe.d.ts.map +1 -1
- package/dist/core/Siwe.js +21 -1
- package/dist/core/Siwe.js.map +1 -1
- package/dist/tempo/KeyAuthorization.d.ts +43 -39
- package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
- package/dist/tempo/KeyAuthorization.js +24 -4
- package/dist/tempo/KeyAuthorization.js.map +1 -1
- package/dist/tempo/MultisigConfig.d.ts +18 -15
- package/dist/tempo/MultisigConfig.d.ts.map +1 -1
- package/dist/tempo/MultisigConfig.js +49 -20
- package/dist/tempo/MultisigConfig.js.map +1 -1
- package/dist/tempo/MultisigOperation.d.ts +45 -28
- package/dist/tempo/MultisigOperation.d.ts.map +1 -1
- package/dist/tempo/MultisigOperation.js +81 -131
- package/dist/tempo/MultisigOperation.js.map +1 -1
- package/dist/tempo/MultisigSimulation.d.ts +85 -0
- package/dist/tempo/MultisigSimulation.d.ts.map +1 -0
- package/dist/tempo/MultisigSimulation.js +112 -0
- package/dist/tempo/MultisigSimulation.js.map +1 -0
- package/dist/tempo/RpcSchemaTempo.d.ts +20 -10
- package/dist/tempo/RpcSchemaTempo.d.ts.map +1 -1
- package/dist/tempo/SignatureEnvelope.d.ts +74 -153
- package/dist/tempo/SignatureEnvelope.d.ts.map +1 -1
- package/dist/tempo/SignatureEnvelope.js +130 -187
- package/dist/tempo/SignatureEnvelope.js.map +1 -1
- package/dist/tempo/TransactionRequest.d.ts +9 -7
- package/dist/tempo/TransactionRequest.d.ts.map +1 -1
- package/dist/tempo/TransactionRequest.js +12 -7
- package/dist/tempo/TransactionRequest.js.map +1 -1
- package/dist/tempo/index.d.ts +7 -5
- package/dist/tempo/index.d.ts.map +1 -1
- package/dist/tempo/index.js +7 -5
- package/dist/tempo/index.js.map +1 -1
- package/dist/zod/tempo/AuthorizationTempo.d.ts +360 -140
- package/dist/zod/tempo/AuthorizationTempo.d.ts.map +1 -1
- package/dist/zod/tempo/KeyAuthorization.d.ts +247 -487
- package/dist/zod/tempo/KeyAuthorization.d.ts.map +1 -1
- package/dist/zod/tempo/KeyAuthorization.js +29 -31
- package/dist/zod/tempo/KeyAuthorization.js.map +1 -1
- package/dist/zod/tempo/MultisigOperation.d.ts +0 -10
- package/dist/zod/tempo/MultisigOperation.d.ts.map +1 -1
- package/dist/zod/tempo/MultisigOperation.js +0 -3
- package/dist/zod/tempo/MultisigOperation.js.map +1 -1
- package/dist/zod/tempo/MultisigSimulation.d.ts +52 -0
- package/dist/zod/tempo/MultisigSimulation.d.ts.map +1 -0
- package/dist/zod/tempo/MultisigSimulation.js +44 -0
- package/dist/zod/tempo/MultisigSimulation.js.map +1 -0
- package/dist/zod/tempo/RpcSchemaTempo.d.ts +357 -422
- package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
- package/dist/zod/tempo/RpcSchemaTempo.js +19 -10
- package/dist/zod/tempo/RpcSchemaTempo.js.map +1 -1
- package/dist/zod/tempo/SignatureEnvelope.d.ts +108 -42
- package/dist/zod/tempo/SignatureEnvelope.d.ts.map +1 -1
- package/dist/zod/tempo/SignatureEnvelope.js +21 -19
- package/dist/zod/tempo/SignatureEnvelope.js.map +1 -1
- package/dist/zod/tempo/Transaction.d.ts +678 -666
- package/dist/zod/tempo/Transaction.d.ts.map +1 -1
- package/dist/zod/tempo/TransactionRequest.d.ts +580 -619
- package/dist/zod/tempo/TransactionRequest.d.ts.map +1 -1
- package/dist/zod/tempo/TransactionRequest.js +18 -10
- package/dist/zod/tempo/TransactionRequest.js.map +1 -1
- package/dist/zod/tempo/TxEnvelopeTempo.d.ts +327 -213
- package/dist/zod/tempo/TxEnvelopeTempo.d.ts.map +1 -1
- package/dist/zod/tempo/ZoneRpcAuthentication.d.ts +105 -3
- package/dist/zod/tempo/ZoneRpcAuthentication.d.ts.map +1 -1
- package/dist/zod/tempo/z.d.ts +1 -1
- package/dist/zod/tempo/z.d.ts.map +1 -1
- package/dist/zod/tempo/z.js +1 -1
- package/dist/zod/tempo/z.js.map +1 -1
- package/package.json +9 -9
- package/src/core/AbiEvent.ts +11 -9
- package/src/core/Blobs.ts +6 -2
- package/src/core/Signature.ts +41 -11
- package/src/core/Siwe.ts +20 -1
- package/src/core/_test/AbiEvent.test.ts +45 -0
- package/src/core/_test/Blobs.test.ts +22 -0
- package/src/core/_test/Signature.test.ts +166 -0
- package/src/core/_test/Siwe.test.ts +100 -1
- package/src/tempo/AuthorizationTempo.test.ts +8 -0
- package/src/tempo/KeyAuthorization.test-d.ts +16 -74
- package/src/tempo/KeyAuthorization.test.ts +113 -14
- package/src/tempo/KeyAuthorization.ts +110 -66
- package/src/tempo/MultisigConfig.test.ts +44 -20
- package/src/tempo/MultisigConfig.ts +65 -23
- package/src/tempo/MultisigOperation.test-d.ts +8 -6
- package/src/tempo/MultisigOperation.test.ts +187 -591
- package/src/tempo/MultisigOperation.ts +129 -205
- package/src/tempo/MultisigSimulation.test-d.ts +33 -0
- package/src/tempo/MultisigSimulation.test.ts +194 -0
- package/src/tempo/MultisigSimulation.ts +192 -0
- package/src/tempo/RpcSchemaTempo.test-d.ts +45 -10
- package/src/tempo/RpcSchemaTempo.ts +15 -6
- package/src/tempo/SignatureEnvelope.test-d.ts +27 -101
- package/src/tempo/SignatureEnvelope.test.ts +330 -533
- package/src/tempo/SignatureEnvelope.ts +198 -310
- package/src/tempo/Transaction.test.ts +61 -0
- package/src/tempo/TransactionRequest.test-d.ts +7 -7
- package/src/tempo/TransactionRequest.test.ts +81 -223
- package/src/tempo/TransactionRequest.ts +34 -13
- package/src/tempo/index.ts +7 -5
- package/src/tempo/multisig.e2e.test.ts +329 -818
- package/src/version.ts +1 -1
- package/src/zod/tempo/KeyAuthorization.ts +50 -39
- package/src/zod/tempo/MultisigOperation.ts +0 -3
- package/src/zod/tempo/MultisigSimulation.ts +53 -0
- package/src/zod/tempo/RpcSchemaTempo.ts +20 -10
- package/src/zod/tempo/SignatureEnvelope.ts +46 -59
- package/src/zod/tempo/TransactionRequest.ts +28 -14
- package/src/zod/tempo/_test/KeyAuthorization.test.ts +66 -30
- package/src/zod/tempo/_test/MultisigOperation.test.ts +0 -2
- package/src/zod/tempo/_test/MultisigSimulation.test-d.ts +13 -0
- package/src/zod/tempo/_test/MultisigSimulation.test.ts +53 -0
- package/src/zod/tempo/_test/RpcSchemaTempo.test-d.ts +19 -2
- package/src/zod/tempo/_test/RpcSchemaTempo.test.ts +46 -4
- package/src/zod/tempo/_test/SignatureEnvelope.test.ts +108 -129
- package/src/zod/tempo/_test/TransactionRequest.test.ts +17 -168
- package/src/zod/tempo/z.ts +1 -1
- package/dist/tempo/MultisigWitness.d.ts +0 -106
- package/dist/tempo/MultisigWitness.d.ts.map +0 -1
- package/dist/tempo/MultisigWitness.js +0 -118
- package/dist/tempo/MultisigWitness.js.map +0 -1
- package/dist/zod/tempo/MultisigWitness.d.ts +0 -152
- package/dist/zod/tempo/MultisigWitness.d.ts.map +0 -1
- package/dist/zod/tempo/MultisigWitness.js +0 -76
- package/dist/zod/tempo/MultisigWitness.js.map +0 -1
- package/src/tempo/MultisigWitness.test-d.ts +0 -42
- package/src/tempo/MultisigWitness.test.ts +0 -288
- package/src/tempo/MultisigWitness.ts +0 -210
- package/src/zod/tempo/MultisigWitness.ts +0 -101
- package/src/zod/tempo/_test/MultisigWitness.test-d.ts +0 -13
- package/src/zod/tempo/_test/MultisigWitness.test.ts +0 -149
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import type * as Address from '../core/Address.js';
|
|
2
|
-
import * as Errors from '../core/Errors.js';
|
|
3
|
-
import * as Hex from '../core/Hex.js';
|
|
4
|
-
import type { Compute } from '../core/internal/types.js';
|
|
5
|
-
import * as MultisigConfig from './MultisigConfig.js';
|
|
6
|
-
import type * as SignatureEnvelope from './SignatureEnvelope.js';
|
|
7
|
-
/** Native multisig owner approval used for RPC simulation. */
|
|
8
|
-
export type Approval<versionType = bigint> = NestedApproval<versionType> | PrimitiveApproval;
|
|
9
|
-
/** Native multisig witness used to construct an RPC simulation signature. */
|
|
10
|
-
export type MultisigWitness<versionType = bigint> = Compute<{
|
|
11
|
-
/** Account authorized by this witness. */
|
|
12
|
-
account: Address.Address;
|
|
13
|
-
/** Owner approvals to model. */
|
|
14
|
-
approvals: readonly Approval<versionType>[];
|
|
15
|
-
/** Complete applicable configuration. */
|
|
16
|
-
config: MultisigConfig.Config<versionType>;
|
|
17
|
-
}>;
|
|
18
|
-
/** Nested native multisig owner approval used for RPC simulation. */
|
|
19
|
-
export type NestedApproval<versionType = bigint> = {
|
|
20
|
-
/** Approval type. */
|
|
21
|
-
type: 'multisig';
|
|
22
|
-
/** Depth-2 multisig witness. */
|
|
23
|
-
witness: NestedWitness<versionType>;
|
|
24
|
-
};
|
|
25
|
-
/** Primitive approval in a depth-2 multisig simulation witness. */
|
|
26
|
-
export type NestedPrimitiveApproval = {
|
|
27
|
-
/** Optional signature-specific gas-estimation data. */
|
|
28
|
-
keyData?: Hex.Hex | undefined;
|
|
29
|
-
/** Signature type to model. Omission uses a maximum-size WebAuthn signature. */
|
|
30
|
-
keyType?: SignatureEnvelope.Type | undefined;
|
|
31
|
-
/** Configured owner address. */
|
|
32
|
-
owner: Address.Address;
|
|
33
|
-
};
|
|
34
|
-
/** Depth-2 native multisig witness used for RPC simulation. */
|
|
35
|
-
export type NestedWitness<versionType = bigint> = {
|
|
36
|
-
/** Nested multisig account. */
|
|
37
|
-
account: Address.Address;
|
|
38
|
-
/** Primitive owner approvals to model. */
|
|
39
|
-
approvals: readonly NestedPrimitiveApproval[];
|
|
40
|
-
/** Complete applicable configuration. */
|
|
41
|
-
config: MultisigConfig.Config<versionType>;
|
|
42
|
-
};
|
|
43
|
-
/** Primitive owner approval used for RPC simulation. */
|
|
44
|
-
export type PrimitiveApproval = {
|
|
45
|
-
/** Optional signature-specific gas-estimation data. */
|
|
46
|
-
keyData?: Hex.Hex | undefined;
|
|
47
|
-
/** Signature type to model. Omission uses a maximum-size WebAuthn signature. */
|
|
48
|
-
keyType?: SignatureEnvelope.Type | undefined;
|
|
49
|
-
/** Configured owner address. */
|
|
50
|
-
owner: Address.Address;
|
|
51
|
-
/** Approval type. */
|
|
52
|
-
type: 'primitive';
|
|
53
|
-
};
|
|
54
|
-
/** JSON-RPC representation of a native multisig simulation witness. */
|
|
55
|
-
export type Rpc = MultisigWitness<number>;
|
|
56
|
-
/**
|
|
57
|
-
* Converts a JSON-RPC multisig witness to its domain representation.
|
|
58
|
-
*
|
|
59
|
-
* @example
|
|
60
|
-
* ```ts twoslash
|
|
61
|
-
* // @noErrors
|
|
62
|
-
* import { MultisigWitness } from 'ox/tempo'
|
|
63
|
-
*
|
|
64
|
-
* const witness = MultisigWitness.fromRpc(witnessRpc)
|
|
65
|
-
* ```
|
|
66
|
-
*
|
|
67
|
-
* @param witness - JSON-RPC multisig witness.
|
|
68
|
-
* @returns The multisig witness with bigint configuration versions.
|
|
69
|
-
*/
|
|
70
|
-
export declare function fromRpc(witness: Rpc): MultisigWitness;
|
|
71
|
-
export declare namespace fromRpc {
|
|
72
|
-
/** Error type for `fromRpc`. */
|
|
73
|
-
type ErrorType = InvalidWitnessError | MultisigConfig.assert.ErrorType | Errors.GlobalErrorType;
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* Converts a multisig witness to its JSON-RPC representation.
|
|
77
|
-
*
|
|
78
|
-
* @example
|
|
79
|
-
* ```ts twoslash
|
|
80
|
-
* // @noErrors
|
|
81
|
-
* import { MultisigWitness } from 'ox/tempo'
|
|
82
|
-
*
|
|
83
|
-
* const witnessRpc = MultisigWitness.toRpc(witness)
|
|
84
|
-
* ```
|
|
85
|
-
*
|
|
86
|
-
* @param witness - Multisig witness.
|
|
87
|
-
* @returns The JSON-RPC multisig witness with numeric configuration versions.
|
|
88
|
-
*/
|
|
89
|
-
export declare function toRpc(witness: MultisigWitness): Rpc;
|
|
90
|
-
export declare namespace toRpc {
|
|
91
|
-
/** Error type for `toRpc`. */
|
|
92
|
-
type ErrorType = Hex.fromNumber.ErrorType | Hex.toNumber.ErrorType | InvalidWitnessError | MultisigConfig.assert.ErrorType | Errors.GlobalErrorType;
|
|
93
|
-
}
|
|
94
|
-
/** Thrown when a native multisig witness is invalid. */
|
|
95
|
-
export declare class InvalidWitnessError extends Errors.BaseError {
|
|
96
|
-
readonly name = "MultisigWitness.InvalidWitnessError";
|
|
97
|
-
constructor(options: InvalidWitnessError.Options);
|
|
98
|
-
}
|
|
99
|
-
export declare namespace InvalidWitnessError {
|
|
100
|
-
/** Error construction options. */
|
|
101
|
-
type Options = {
|
|
102
|
-
/** Validation failure. */
|
|
103
|
-
reason: string;
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=MultisigWitness.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MultisigWitness.d.ts","sourceRoot":"","sources":["../../src/tempo/MultisigWitness.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import * as Errors from '../core/Errors.js';
|
|
2
|
-
import * as Hex from '../core/Hex.js';
|
|
3
|
-
import * as MultisigConfig from './MultisigConfig.js';
|
|
4
|
-
/**
|
|
5
|
-
* Converts a JSON-RPC multisig witness to its domain representation.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```ts twoslash
|
|
9
|
-
* // @noErrors
|
|
10
|
-
* import { MultisigWitness } from 'ox/tempo'
|
|
11
|
-
*
|
|
12
|
-
* const witness = MultisigWitness.fromRpc(witnessRpc)
|
|
13
|
-
* ```
|
|
14
|
-
*
|
|
15
|
-
* @param witness - JSON-RPC multisig witness.
|
|
16
|
-
* @returns The multisig witness with bigint configuration versions.
|
|
17
|
-
*/
|
|
18
|
-
export function fromRpc(witness) {
|
|
19
|
-
const { account, approvals, config } = witness;
|
|
20
|
-
assertApprovalCount(approvals);
|
|
21
|
-
return {
|
|
22
|
-
account,
|
|
23
|
-
approvals: approvals.map((approval) => {
|
|
24
|
-
if (approval.type === 'primitive')
|
|
25
|
-
return approval;
|
|
26
|
-
assertApprovalCount(approval.witness.approvals);
|
|
27
|
-
return {
|
|
28
|
-
type: 'multisig',
|
|
29
|
-
witness: {
|
|
30
|
-
account: approval.witness.account,
|
|
31
|
-
approvals: approval.witness.approvals,
|
|
32
|
-
config: MultisigConfig.from(approval.witness.config),
|
|
33
|
-
},
|
|
34
|
-
};
|
|
35
|
-
}),
|
|
36
|
-
config: MultisigConfig.from(config),
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Converts a multisig witness to its JSON-RPC representation.
|
|
41
|
-
*
|
|
42
|
-
* @example
|
|
43
|
-
* ```ts twoslash
|
|
44
|
-
* // @noErrors
|
|
45
|
-
* import { MultisigWitness } from 'ox/tempo'
|
|
46
|
-
*
|
|
47
|
-
* const witnessRpc = MultisigWitness.toRpc(witness)
|
|
48
|
-
* ```
|
|
49
|
-
*
|
|
50
|
-
* @param witness - Multisig witness.
|
|
51
|
-
* @returns The JSON-RPC multisig witness with numeric configuration versions.
|
|
52
|
-
*/
|
|
53
|
-
export function toRpc(witness) {
|
|
54
|
-
const { account, approvals, config } = witness;
|
|
55
|
-
assertApprovalCount(approvals);
|
|
56
|
-
return {
|
|
57
|
-
account,
|
|
58
|
-
approvals: approvals.map((approval) => {
|
|
59
|
-
if (approval.type === 'primitive')
|
|
60
|
-
return {
|
|
61
|
-
...approval,
|
|
62
|
-
...(typeof approval.keyData !== 'undefined'
|
|
63
|
-
? { keyData: shimKeyData(approval.keyData) }
|
|
64
|
-
: {}),
|
|
65
|
-
};
|
|
66
|
-
assertApprovalCount(approval.witness.approvals);
|
|
67
|
-
return {
|
|
68
|
-
type: 'multisig',
|
|
69
|
-
witness: {
|
|
70
|
-
account: approval.witness.account,
|
|
71
|
-
approvals: approval.witness.approvals.map((approval) => ({
|
|
72
|
-
...approval,
|
|
73
|
-
...(typeof approval.keyData !== 'undefined'
|
|
74
|
-
? { keyData: shimKeyData(approval.keyData) }
|
|
75
|
-
: {}),
|
|
76
|
-
})),
|
|
77
|
-
config: configToRpc(approval.witness.config),
|
|
78
|
-
},
|
|
79
|
-
};
|
|
80
|
-
}),
|
|
81
|
-
config: configToRpc(config),
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
/** @internal */
|
|
85
|
-
function assertApprovalCount(approvals) {
|
|
86
|
-
if (approvals.length > MultisigConfig.maxSignatures)
|
|
87
|
-
throw new InvalidWitnessError({
|
|
88
|
-
reason: `approval count exceeds ${MultisigConfig.maxSignatures}`,
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
/** @internal */
|
|
92
|
-
function configToRpc(config) {
|
|
93
|
-
const value = MultisigConfig.from(config);
|
|
94
|
-
return {
|
|
95
|
-
...value,
|
|
96
|
-
version: Hex.toNumber(Hex.fromNumber(value.version)),
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Shims key data longer than 4 bytes into a 2-byte big-endian length hint.
|
|
101
|
-
* The node's gas estimator only accepts 1, 2, or 4-byte key data as a
|
|
102
|
-
* signature-size hint; anything else silently falls back to the default.
|
|
103
|
-
* @internal
|
|
104
|
-
*/
|
|
105
|
-
function shimKeyData(data) {
|
|
106
|
-
const size = Hex.size(data);
|
|
107
|
-
if (size <= 4)
|
|
108
|
-
return data;
|
|
109
|
-
return Hex.fromNumber(size, { size: 2 });
|
|
110
|
-
}
|
|
111
|
-
/** Thrown when a native multisig witness is invalid. */
|
|
112
|
-
export class InvalidWitnessError extends Errors.BaseError {
|
|
113
|
-
name = 'MultisigWitness.InvalidWitnessError';
|
|
114
|
-
constructor(options) {
|
|
115
|
-
super(`Invalid multisig witness: ${options.reason}.`);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
//# sourceMappingURL=MultisigWitness.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MultisigWitness.js","sourceRoot":"","sources":["../../src/tempo/MultisigWitness.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import * as z from 'zod/mini';
|
|
2
|
-
/** Native multisig simulation witness schema. */
|
|
3
|
-
export declare const Domain: z.ZodMiniObject<{
|
|
4
|
-
account: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
5
|
-
approvals: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniUnion<readonly [z.ZodMiniObject<{
|
|
6
|
-
keyData: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
|
|
7
|
-
keyType: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"secp256k1">, z.ZodMiniLiteral<"p256">, z.ZodMiniLiteral<"webAuthn">]>>;
|
|
8
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
9
|
-
type: z.ZodMiniLiteral<"primitive">;
|
|
10
|
-
}, z.core.$strip>, z.ZodMiniObject<{
|
|
11
|
-
type: z.ZodMiniLiteral<"multisig">;
|
|
12
|
-
witness: z.ZodMiniObject<{
|
|
13
|
-
account: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
14
|
-
approvals: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
15
|
-
keyData: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
|
|
16
|
-
keyType: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"secp256k1">, z.ZodMiniLiteral<"p256">, z.ZodMiniLiteral<"webAuthn">]>>;
|
|
17
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
18
|
-
}, z.core.$strip>>>;
|
|
19
|
-
config: z.ZodMiniObject<{
|
|
20
|
-
owners: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
21
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
22
|
-
weight: z.ZodMiniNumber<number>;
|
|
23
|
-
}, z.core.$strip>>>;
|
|
24
|
-
salt: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
25
|
-
threshold: z.ZodMiniNumber<number>;
|
|
26
|
-
version: z.ZodMiniBigInt<bigint>;
|
|
27
|
-
}, z.core.$strip>;
|
|
28
|
-
}, z.core.$strip>;
|
|
29
|
-
}, z.core.$strip>]>>>;
|
|
30
|
-
config: z.ZodMiniObject<{
|
|
31
|
-
owners: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
32
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
33
|
-
weight: z.ZodMiniNumber<number>;
|
|
34
|
-
}, z.core.$strip>>>;
|
|
35
|
-
salt: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
36
|
-
threshold: z.ZodMiniNumber<number>;
|
|
37
|
-
version: z.ZodMiniBigInt<bigint>;
|
|
38
|
-
}, z.core.$strip>;
|
|
39
|
-
}, z.core.$strip>;
|
|
40
|
-
/** Codec decoding an RPC multisig witness into its domain representation. */
|
|
41
|
-
export declare const MultisigWitness: z.ZodMiniCodec<z.ZodMiniObject<{
|
|
42
|
-
account: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
43
|
-
approvals: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniUnion<readonly [z.ZodMiniObject<{
|
|
44
|
-
keyData: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
|
|
45
|
-
keyType: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"secp256k1">, z.ZodMiniLiteral<"p256">, z.ZodMiniLiteral<"webAuthn">]>>;
|
|
46
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
47
|
-
type: z.ZodMiniLiteral<"primitive">;
|
|
48
|
-
}, z.core.$strip>, z.ZodMiniObject<{
|
|
49
|
-
type: z.ZodMiniLiteral<"multisig">;
|
|
50
|
-
witness: z.ZodMiniObject<{
|
|
51
|
-
account: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
52
|
-
approvals: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
53
|
-
keyData: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
|
|
54
|
-
keyType: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"secp256k1">, z.ZodMiniLiteral<"p256">, z.ZodMiniLiteral<"webAuthn">]>>;
|
|
55
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
56
|
-
}, z.core.$strip>>>;
|
|
57
|
-
config: z.ZodMiniObject<{
|
|
58
|
-
owners: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
59
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
60
|
-
weight: z.ZodMiniNumber<number>;
|
|
61
|
-
}, z.core.$strip>>>;
|
|
62
|
-
salt: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
63
|
-
threshold: z.ZodMiniNumber<number>;
|
|
64
|
-
version: z.ZodMiniNumber<number>;
|
|
65
|
-
}, z.core.$strip>;
|
|
66
|
-
}, z.core.$strip>;
|
|
67
|
-
}, z.core.$strip>]>>>;
|
|
68
|
-
config: z.ZodMiniObject<{
|
|
69
|
-
owners: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
70
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
71
|
-
weight: z.ZodMiniNumber<number>;
|
|
72
|
-
}, z.core.$strip>>>;
|
|
73
|
-
salt: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
74
|
-
threshold: z.ZodMiniNumber<number>;
|
|
75
|
-
version: z.ZodMiniNumber<number>;
|
|
76
|
-
}, z.core.$strip>;
|
|
77
|
-
}, z.core.$strip>, z.ZodMiniObject<{
|
|
78
|
-
account: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
79
|
-
approvals: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniUnion<readonly [z.ZodMiniObject<{
|
|
80
|
-
keyData: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
|
|
81
|
-
keyType: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"secp256k1">, z.ZodMiniLiteral<"p256">, z.ZodMiniLiteral<"webAuthn">]>>;
|
|
82
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
83
|
-
type: z.ZodMiniLiteral<"primitive">;
|
|
84
|
-
}, z.core.$strip>, z.ZodMiniObject<{
|
|
85
|
-
type: z.ZodMiniLiteral<"multisig">;
|
|
86
|
-
witness: z.ZodMiniObject<{
|
|
87
|
-
account: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
88
|
-
approvals: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
89
|
-
keyData: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
|
|
90
|
-
keyType: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"secp256k1">, z.ZodMiniLiteral<"p256">, z.ZodMiniLiteral<"webAuthn">]>>;
|
|
91
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
92
|
-
}, z.core.$strip>>>;
|
|
93
|
-
config: z.ZodMiniObject<{
|
|
94
|
-
owners: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
95
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
96
|
-
weight: z.ZodMiniNumber<number>;
|
|
97
|
-
}, z.core.$strip>>>;
|
|
98
|
-
salt: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
99
|
-
threshold: z.ZodMiniNumber<number>;
|
|
100
|
-
version: z.ZodMiniBigInt<bigint>;
|
|
101
|
-
}, z.core.$strip>;
|
|
102
|
-
}, z.core.$strip>;
|
|
103
|
-
}, z.core.$strip>]>>>;
|
|
104
|
-
config: z.ZodMiniObject<{
|
|
105
|
-
owners: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
106
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
107
|
-
weight: z.ZodMiniNumber<number>;
|
|
108
|
-
}, z.core.$strip>>>;
|
|
109
|
-
salt: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
110
|
-
threshold: z.ZodMiniNumber<number>;
|
|
111
|
-
version: z.ZodMiniBigInt<bigint>;
|
|
112
|
-
}, z.core.$strip>;
|
|
113
|
-
}, z.core.$strip>>;
|
|
114
|
-
/** RPC native multisig simulation witness schema. */
|
|
115
|
-
export declare const Rpc: z.ZodMiniObject<{
|
|
116
|
-
account: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
117
|
-
approvals: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniUnion<readonly [z.ZodMiniObject<{
|
|
118
|
-
keyData: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
|
|
119
|
-
keyType: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"secp256k1">, z.ZodMiniLiteral<"p256">, z.ZodMiniLiteral<"webAuthn">]>>;
|
|
120
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
121
|
-
type: z.ZodMiniLiteral<"primitive">;
|
|
122
|
-
}, z.core.$strip>, z.ZodMiniObject<{
|
|
123
|
-
type: z.ZodMiniLiteral<"multisig">;
|
|
124
|
-
witness: z.ZodMiniObject<{
|
|
125
|
-
account: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
126
|
-
approvals: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
127
|
-
keyData: z.ZodMiniOptional<z.ZodMiniTemplateLiteral<`0x${string}`>>;
|
|
128
|
-
keyType: z.ZodMiniOptional<z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"secp256k1">, z.ZodMiniLiteral<"p256">, z.ZodMiniLiteral<"webAuthn">]>>;
|
|
129
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
130
|
-
}, z.core.$strip>>>;
|
|
131
|
-
config: z.ZodMiniObject<{
|
|
132
|
-
owners: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
133
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
134
|
-
weight: z.ZodMiniNumber<number>;
|
|
135
|
-
}, z.core.$strip>>>;
|
|
136
|
-
salt: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
137
|
-
threshold: z.ZodMiniNumber<number>;
|
|
138
|
-
version: z.ZodMiniNumber<number>;
|
|
139
|
-
}, z.core.$strip>;
|
|
140
|
-
}, z.core.$strip>;
|
|
141
|
-
}, z.core.$strip>]>>>;
|
|
142
|
-
config: z.ZodMiniObject<{
|
|
143
|
-
owners: z.ZodMiniReadonly<z.ZodMiniArray<z.ZodMiniObject<{
|
|
144
|
-
owner: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
145
|
-
weight: z.ZodMiniNumber<number>;
|
|
146
|
-
}, z.core.$strip>>>;
|
|
147
|
-
salt: z.ZodMiniTemplateLiteral<`0x${string}`>;
|
|
148
|
-
threshold: z.ZodMiniNumber<number>;
|
|
149
|
-
version: z.ZodMiniNumber<number>;
|
|
150
|
-
}, z.core.$strip>;
|
|
151
|
-
}, z.core.$strip>;
|
|
152
|
-
//# sourceMappingURL=MultisigWitness.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MultisigWitness.d.ts","sourceRoot":"","sources":["../../../src/zod/tempo/MultisigWitness.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,CAAC,MAAM,UAAU,CAAA;AAmD7B,iDAAiD;AACjD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAgBjB,CAAA;AAoBF,6EAA6E;AAC7E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAG1B,CAAA;AAEF,qDAAqD;AACrD,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAAO,CAAA"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/* eslint-disable jsdoc-js/require-jsdoc, jsdoc-js/require-description, jsdoc-js/require-example */
|
|
2
|
-
import * as core_MultisigConfig from '../../tempo/MultisigConfig.js';
|
|
3
|
-
import * as core_MultisigWitness from '../../tempo/MultisigWitness.js';
|
|
4
|
-
import * as z_Address from '../Address.js';
|
|
5
|
-
import * as z_Hex from '../Hex.js';
|
|
6
|
-
import * as z from 'zod/mini';
|
|
7
|
-
import * as z_MultisigConfig from './MultisigConfig.js';
|
|
8
|
-
import * as z_SignatureEnvelope from './SignatureEnvelope.js';
|
|
9
|
-
const ConfigRpc = z
|
|
10
|
-
.object({
|
|
11
|
-
owners: z.readonly(z.array(z_MultisigConfig.Owner)),
|
|
12
|
-
salt: z_Hex.Hex,
|
|
13
|
-
threshold: z.number(),
|
|
14
|
-
version: z.number(),
|
|
15
|
-
})
|
|
16
|
-
.check(z.refine((value) => core_MultisigConfig.validate(value), 'expected valid native multisig configuration'));
|
|
17
|
-
const NestedPrimitiveApproval = z.object({
|
|
18
|
-
keyData: z.optional(z_Hex.Hex),
|
|
19
|
-
keyType: z.optional(z_SignatureEnvelope.Type),
|
|
20
|
-
owner: z_Address.Address,
|
|
21
|
-
});
|
|
22
|
-
const PrimitiveApproval = z.object({
|
|
23
|
-
keyData: z.optional(z_Hex.Hex),
|
|
24
|
-
keyType: z.optional(z_SignatureEnvelope.Type),
|
|
25
|
-
owner: z_Address.Address,
|
|
26
|
-
type: z.literal('primitive'),
|
|
27
|
-
});
|
|
28
|
-
const NestedWitness = z.object({
|
|
29
|
-
account: z_Address.Address,
|
|
30
|
-
approvals: z.readonly(z
|
|
31
|
-
.array(NestedPrimitiveApproval)
|
|
32
|
-
.check(z.maxLength(core_MultisigConfig.maxSignatures))),
|
|
33
|
-
config: z_MultisigConfig.Config,
|
|
34
|
-
});
|
|
35
|
-
const NestedWitnessRpc = z.object({
|
|
36
|
-
account: z_Address.Address,
|
|
37
|
-
approvals: z.readonly(z
|
|
38
|
-
.array(NestedPrimitiveApproval)
|
|
39
|
-
.check(z.maxLength(core_MultisigConfig.maxSignatures))),
|
|
40
|
-
config: ConfigRpc,
|
|
41
|
-
});
|
|
42
|
-
/** Native multisig simulation witness schema. */
|
|
43
|
-
export const Domain = z.object({
|
|
44
|
-
account: z_Address.Address,
|
|
45
|
-
approvals: z.readonly(z
|
|
46
|
-
.array(z.union([
|
|
47
|
-
PrimitiveApproval,
|
|
48
|
-
z.object({
|
|
49
|
-
type: z.literal('multisig'),
|
|
50
|
-
witness: NestedWitness,
|
|
51
|
-
}),
|
|
52
|
-
]))
|
|
53
|
-
.check(z.maxLength(core_MultisigConfig.maxSignatures))),
|
|
54
|
-
config: z_MultisigConfig.Config,
|
|
55
|
-
});
|
|
56
|
-
const Rpc_ = z.object({
|
|
57
|
-
account: z_Address.Address,
|
|
58
|
-
approvals: z.readonly(z
|
|
59
|
-
.array(z.union([
|
|
60
|
-
PrimitiveApproval,
|
|
61
|
-
z.object({
|
|
62
|
-
type: z.literal('multisig'),
|
|
63
|
-
witness: NestedWitnessRpc,
|
|
64
|
-
}),
|
|
65
|
-
]))
|
|
66
|
-
.check(z.maxLength(core_MultisigConfig.maxSignatures))),
|
|
67
|
-
config: ConfigRpc,
|
|
68
|
-
});
|
|
69
|
-
/** Codec decoding an RPC multisig witness into its domain representation. */
|
|
70
|
-
export const MultisigWitness = z.codec(Rpc_, Domain, {
|
|
71
|
-
decode: (value) => core_MultisigWitness.fromRpc(value),
|
|
72
|
-
encode: (value) => core_MultisigWitness.toRpc(value),
|
|
73
|
-
});
|
|
74
|
-
/** RPC native multisig simulation witness schema. */
|
|
75
|
-
export const Rpc = Rpc_;
|
|
76
|
-
//# sourceMappingURL=MultisigWitness.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MultisigWitness.js","sourceRoot":"","sources":["../../../src/zod/tempo/MultisigWitness.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { expectTypeOf, test } from 'vp/test'
|
|
2
|
-
import * as MultisigWitness from './MultisigWitness.js'
|
|
3
|
-
|
|
4
|
-
const rpc = {
|
|
5
|
-
account: '0x2222222222222222222222222222222222222222',
|
|
6
|
-
approvals: [
|
|
7
|
-
{
|
|
8
|
-
owner: '0x1111111111111111111111111111111111111111',
|
|
9
|
-
type: 'primitive',
|
|
10
|
-
},
|
|
11
|
-
],
|
|
12
|
-
config: {
|
|
13
|
-
owners: [
|
|
14
|
-
{
|
|
15
|
-
owner: '0x1111111111111111111111111111111111111111',
|
|
16
|
-
weight: 1,
|
|
17
|
-
},
|
|
18
|
-
],
|
|
19
|
-
salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
20
|
-
threshold: 1,
|
|
21
|
-
version: 0,
|
|
22
|
-
},
|
|
23
|
-
} as const satisfies MultisigWitness.Rpc
|
|
24
|
-
|
|
25
|
-
test('fromRpc returns a domain witness', () => {
|
|
26
|
-
const witness = MultisigWitness.fromRpc(rpc)
|
|
27
|
-
|
|
28
|
-
expectTypeOf(witness).toEqualTypeOf<MultisigWitness.MultisigWitness>()
|
|
29
|
-
expectTypeOf(witness.config.version).toEqualTypeOf<bigint>()
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
test('RPC witnesses use numeric configuration versions', () => {
|
|
33
|
-
expectTypeOf<
|
|
34
|
-
MultisigWitness.Rpc['config']['version']
|
|
35
|
-
>().toEqualTypeOf<number>()
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
test('toRpc returns an RPC witness', () => {
|
|
39
|
-
expectTypeOf(
|
|
40
|
-
MultisigWitness.toRpc(MultisigWitness.fromRpc(rpc)),
|
|
41
|
-
).toEqualTypeOf<MultisigWitness.Rpc>()
|
|
42
|
-
})
|