ox 1.7.0 → 1.7.2
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 +21 -0
- package/dist/core/Hash.js +1 -1
- package/dist/core/Hash.js.map +1 -1
- package/dist/core/Siwe.d.ts.map +1 -1
- package/dist/core/Siwe.js +45 -6
- package/dist/core/Siwe.js.map +1 -1
- package/dist/tempo/KeyAuthorization.d.ts +1 -1
- package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
- package/dist/tempo/MultisigConfig.d.ts +151 -83
- package/dist/tempo/MultisigConfig.d.ts.map +1 -1
- package/dist/tempo/MultisigConfig.js +164 -86
- package/dist/tempo/MultisigConfig.js.map +1 -1
- package/dist/tempo/MultisigOperation.d.ts +324 -0
- package/dist/tempo/MultisigOperation.d.ts.map +1 -0
- package/dist/tempo/MultisigOperation.js +809 -0
- package/dist/tempo/MultisigOperation.js.map +1 -0
- package/dist/tempo/MultisigWitness.d.ts +106 -0
- package/dist/tempo/MultisigWitness.d.ts.map +1 -0
- package/dist/tempo/MultisigWitness.js +118 -0
- package/dist/tempo/MultisigWitness.js.map +1 -0
- package/dist/tempo/RpcSchemaTempo.d.ts +35 -0
- package/dist/tempo/RpcSchemaTempo.d.ts.map +1 -1
- package/dist/tempo/SignatureEnvelope.d.ts +60 -80
- package/dist/tempo/SignatureEnvelope.d.ts.map +1 -1
- package/dist/tempo/SignatureEnvelope.js +87 -146
- package/dist/tempo/SignatureEnvelope.js.map +1 -1
- package/dist/tempo/TransactionRequest.d.ts +9 -17
- package/dist/tempo/TransactionRequest.d.ts.map +1 -1
- package/dist/tempo/TransactionRequest.js +7 -7
- package/dist/tempo/TransactionRequest.js.map +1 -1
- package/dist/tempo/TxEnvelopeTempo.d.ts +3 -2
- package/dist/tempo/TxEnvelopeTempo.d.ts.map +1 -1
- package/dist/tempo/TxEnvelopeTempo.js +3 -2
- package/dist/tempo/TxEnvelopeTempo.js.map +1 -1
- package/dist/tempo/index.d.ts +22 -2
- package/dist/tempo/index.d.ts.map +1 -1
- package/dist/tempo/index.js +22 -2
- package/dist/tempo/index.js.map +1 -1
- package/dist/zod/tempo/AuthorizationTempo.d.ts +110 -110
- package/dist/zod/tempo/AuthorizationTempo.d.ts.map +1 -1
- package/dist/zod/tempo/KeyAuthorization.d.ts +90 -83
- package/dist/zod/tempo/KeyAuthorization.d.ts.map +1 -1
- package/dist/zod/tempo/MultisigConfig.d.ts +31 -2
- package/dist/zod/tempo/MultisigConfig.d.ts.map +1 -1
- package/dist/zod/tempo/MultisigConfig.js +26 -3
- package/dist/zod/tempo/MultisigConfig.js.map +1 -1
- package/dist/zod/tempo/MultisigOperation.d.ts +168 -0
- package/dist/zod/tempo/MultisigOperation.d.ts.map +1 -0
- package/dist/zod/tempo/MultisigOperation.js +65 -0
- package/dist/zod/tempo/MultisigOperation.js.map +1 -0
- package/dist/zod/tempo/MultisigWitness.d.ts +152 -0
- package/dist/zod/tempo/MultisigWitness.d.ts.map +1 -0
- package/dist/zod/tempo/MultisigWitness.js +76 -0
- package/dist/zod/tempo/MultisigWitness.js.map +1 -0
- package/dist/zod/tempo/RpcSchemaTempo.d.ts +607 -102
- package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
- package/dist/zod/tempo/RpcSchemaTempo.js +38 -0
- package/dist/zod/tempo/RpcSchemaTempo.js.map +1 -1
- package/dist/zod/tempo/SignatureEnvelope.d.ts +33 -33
- package/dist/zod/tempo/SignatureEnvelope.d.ts.map +1 -1
- package/dist/zod/tempo/SignatureEnvelope.js +9 -16
- package/dist/zod/tempo/SignatureEnvelope.js.map +1 -1
- package/dist/zod/tempo/Transaction.d.ts +228 -222
- package/dist/zod/tempo/Transaction.d.ts.map +1 -1
- package/dist/zod/tempo/TransactionRequest.d.ts +379 -176
- package/dist/zod/tempo/TransactionRequest.d.ts.map +1 -1
- package/dist/zod/tempo/TransactionRequest.js +11 -22
- package/dist/zod/tempo/TransactionRequest.js.map +1 -1
- package/dist/zod/tempo/TxEnvelopeTempo.d.ts +60 -48
- package/dist/zod/tempo/TxEnvelopeTempo.d.ts.map +1 -1
- package/dist/zod/tempo/ZoneRpcAuthentication.d.ts +15 -12
- package/dist/zod/tempo/ZoneRpcAuthentication.d.ts.map +1 -1
- package/dist/zod/tempo/z.d.ts +2 -0
- package/dist/zod/tempo/z.d.ts.map +1 -1
- package/dist/zod/tempo/z.js +2 -0
- package/dist/zod/tempo/z.js.map +1 -1
- package/package.json +21 -1
- package/src/core/Hash.ts +1 -1
- package/src/core/Siwe.ts +45 -5
- package/src/core/_test/Hash.test.ts +15 -0
- package/src/core/_test/Siwe.test.ts +98 -0
- package/src/tempo/KeyAuthorization.test-d.ts +13 -1
- package/src/tempo/KeyAuthorization.test.ts +65 -0
- package/src/tempo/KeyAuthorization.ts +1 -1
- package/src/tempo/MultisigConfig.test-d.ts +52 -0
- package/src/tempo/MultisigConfig.test.ts +288 -227
- package/src/tempo/MultisigConfig.ts +275 -104
- package/src/tempo/MultisigOperation.test-d.ts +77 -0
- package/src/tempo/MultisigOperation.test.ts +1883 -0
- package/src/tempo/MultisigOperation.ts +1254 -0
- package/src/tempo/MultisigWitness.test-d.ts +42 -0
- package/src/tempo/MultisigWitness.test.ts +288 -0
- package/src/tempo/MultisigWitness.ts +210 -0
- package/src/tempo/RpcSchemaTempo.test-d.ts +56 -0
- package/src/tempo/RpcSchemaTempo.ts +37 -0
- package/src/tempo/SignatureEnvelope.test-d.ts +63 -46
- package/src/tempo/SignatureEnvelope.test.ts +523 -500
- package/src/tempo/SignatureEnvelope.ts +172 -242
- package/src/tempo/TransactionRequest.test-d.ts +11 -0
- package/src/tempo/TransactionRequest.test.ts +285 -33
- package/src/tempo/TransactionRequest.ts +15 -20
- package/src/tempo/TxEnvelopeTempo.test-d.ts +7 -0
- package/src/tempo/TxEnvelopeTempo.test.ts +25 -0
- package/src/tempo/TxEnvelopeTempo.ts +5 -3
- package/src/tempo/index.ts +22 -2
- package/src/tempo/multisig.e2e.test.ts +113 -86
- package/src/version.ts +1 -1
- package/src/zod/tempo/MultisigConfig.ts +29 -3
- package/src/zod/tempo/MultisigOperation.ts +69 -0
- package/src/zod/tempo/MultisigWitness.ts +101 -0
- package/src/zod/tempo/RpcSchemaTempo.ts +43 -0
- package/src/zod/tempo/SignatureEnvelope.ts +20 -38
- package/src/zod/tempo/TransactionRequest.ts +17 -26
- package/src/zod/tempo/_test/KeyAuthorization.test.ts +11 -0
- package/src/zod/tempo/_test/MultisigConfig.test-d.ts +13 -0
- package/src/zod/tempo/_test/MultisigConfig.test.ts +13 -2
- package/src/zod/tempo/_test/MultisigOperation.test-d.ts +27 -0
- package/src/zod/tempo/_test/MultisigOperation.test.ts +68 -0
- package/src/zod/tempo/_test/MultisigWitness.test-d.ts +13 -0
- package/src/zod/tempo/_test/MultisigWitness.test.ts +149 -0
- package/src/zod/tempo/_test/RpcSchemaTempo.test-d.ts +31 -0
- package/src/zod/tempo/_test/RpcSchemaTempo.test.ts +41 -0
- package/src/zod/tempo/_test/SignatureEnvelope.test-d.ts +1 -1
- package/src/zod/tempo/_test/SignatureEnvelope.test.ts +25 -34
- package/src/zod/tempo/_test/TransactionRequest.test.ts +176 -8
- package/src/zod/tempo/z.ts +2 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultisigOperation.js","sourceRoot":"","sources":["../../src/tempo/MultisigOperation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultisigWitness.d.ts","sourceRoot":"","sources":["../../src/tempo/MultisigWitness.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultisigWitness.js","sourceRoot":"","sources":["../../src/tempo/MultisigWitness.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ import type * as Hex from '../core/Hex.js';
|
|
|
4
4
|
import type * as Log from '../core/Log.js';
|
|
5
5
|
import type * as RpcSchema from '../core/RpcSchema.js';
|
|
6
6
|
import type * as StateOverrides from '../core/StateOverrides.js';
|
|
7
|
+
import type * as KeyAuthorization from './KeyAuthorization.js';
|
|
8
|
+
import type * as MultisigOperation from './MultisigOperation.js';
|
|
7
9
|
import type * as TransactionRequest from './TransactionRequest.js';
|
|
8
10
|
/**
|
|
9
11
|
* Union of all JSON-RPC Methods for the `tempo_` namespace.
|
|
@@ -48,4 +50,37 @@ export type Tempo = RpcSchema.From<{
|
|
|
48
50
|
};
|
|
49
51
|
};
|
|
50
52
|
}>;
|
|
53
|
+
/** Union of all JSON-RPC methods for the `multisig_` namespace. */
|
|
54
|
+
export type Multisig = RpcSchema.From<{
|
|
55
|
+
Request: {
|
|
56
|
+
method: 'multisig_approveRawTransaction';
|
|
57
|
+
params: [serializedTransaction: Hex.Hex];
|
|
58
|
+
};
|
|
59
|
+
ReturnType: Hex.Hex;
|
|
60
|
+
} | {
|
|
61
|
+
Request: {
|
|
62
|
+
method: 'multisig_approveRawTransactionSync';
|
|
63
|
+
params: [serializedTransaction: Hex.Hex, timeout?: number];
|
|
64
|
+
};
|
|
65
|
+
ReturnType: MultisigOperation.TransactionRpc;
|
|
66
|
+
} | {
|
|
67
|
+
Request: {
|
|
68
|
+
method: 'multisig_approveKeyAuthorization';
|
|
69
|
+
params: [
|
|
70
|
+
{
|
|
71
|
+
keyAuthorization: KeyAuthorization.Rpc;
|
|
72
|
+
} | {
|
|
73
|
+
hash: Hex.Hex;
|
|
74
|
+
signature: Hex.Hex;
|
|
75
|
+
}
|
|
76
|
+
];
|
|
77
|
+
};
|
|
78
|
+
ReturnType: MultisigOperation.KeyAuthorizationRpc;
|
|
79
|
+
} | {
|
|
80
|
+
Request: {
|
|
81
|
+
method: 'multisig_getOperation';
|
|
82
|
+
params: [hash: Hex.Hex];
|
|
83
|
+
};
|
|
84
|
+
ReturnType: MultisigOperation.Rpc | null;
|
|
85
|
+
}>;
|
|
51
86
|
//# sourceMappingURL=RpcSchemaTempo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RpcSchemaTempo.d.ts","sourceRoot":"","sources":["../../src/tempo/RpcSchemaTempo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,KAAK,cAAc,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,KAAK,SAAS,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,KAAK,cAAc,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAElE;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC;IACjC,OAAO,EAAE;QACP,MAAM,EAAE,kBAAkB,CAAA;QAC1B,MAAM,EAAE;YACN;gBACE,eAAe,EAAE,SAAS;oBACxB,cAAc,CAAC,EAAE,cAAc,CAAC,GAAG,GAAG,SAAS,CAAA;oBAC/C,KAAK,CAAC,EAAE,SAAS,kBAAkB,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;oBACrD,cAAc,CAAC,EAAE,cAAc,CAAC,GAAG,GAAG,SAAS,CAAA;iBAChD,EAAE,CAAA;gBACH,sBAAsB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;gBAC5C,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;gBACpC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;aACjC;YACD,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;SACrE,CAAA;KACF,CAAA;IACD,UAAU,EAAE;QACV,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG;YAC5B,KAAK,CAAC,EACF,SAAS;gBACP,KAAK,CAAC,EACF;oBACE,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;oBAC1B,IAAI,EAAE,MAAM,CAAA;oBACZ,OAAO,EAAE,MAAM,CAAA;iBAChB,GACD,SAAS,CAAA;gBACb,IAAI,CAAC,EAAE,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;gBACrC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAA;gBAChB,UAAU,EAAE,GAAG,CAAC,GAAG,CAAA;gBACnB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAA;aAChB,EAAE,GACH,SAAS,CAAA;SACd,CAAC,EAAE,CAAA;QACJ,aAAa,EAAE;YACb,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,GAAG;gBAClB,IAAI,EAAE,MAAM,CAAA;gBACZ,MAAM,EAAE,MAAM,CAAA;gBACd,QAAQ,EAAE,MAAM,CAAA;aACjB,CAAA;SACF,CAAA;KACF,CAAA;CACF,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"RpcSchemaTempo.d.ts","sourceRoot":"","sources":["../../src/tempo/RpcSchemaTempo.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,15 @@ import * as Address from '../core/Address.js';
|
|
|
2
2
|
import type * as Bytes from '../core/Bytes.js';
|
|
3
3
|
import * as Errors from '../core/Errors.js';
|
|
4
4
|
import * as Hex from '../core/Hex.js';
|
|
5
|
-
import type { Assign, Compute, IsNarrowable, OneOf, PartialBy, UnionPartialBy } from '../core/internal/types.js';
|
|
5
|
+
import type { Assign, Compute, IsNarrowable, OneOf, PartialBy, Undefined, UnionPartialBy } from '../core/internal/types.js';
|
|
6
6
|
import type * as PublicKey from '../core/PublicKey.js';
|
|
7
7
|
import * as Rlp from '../core/Rlp.js';
|
|
8
8
|
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 NonMultisig<numberType = number> = OneOf<Secp256k1<numberType> | P256<numberType> | WebAuthn<numberType> | Keychain<numberType>>;
|
|
13
|
+
type NonMultisigRpc = OneOf<Secp256k1Rpc | P256Rpc | WebAuthnRpc | KeychainRpc>;
|
|
12
14
|
/** Serialized magic identifier for Tempo signature envelopes. */
|
|
13
15
|
export declare const magicBytes = "0x7777777777777777777777777777777777777777777777777777777777777777";
|
|
14
16
|
/**
|
|
@@ -55,10 +57,7 @@ export type GetType<envelope extends PartialBy<SignatureEnvelope, 'type'> | unkn
|
|
|
55
57
|
} ? 'secp256k1' : envelope extends {
|
|
56
58
|
userAddress: Address.Address;
|
|
57
59
|
} ? 'keychain' : envelope extends {
|
|
58
|
-
|
|
59
|
-
signatures: any;
|
|
60
|
-
} | {
|
|
61
|
-
init: MultisigConfig.Config;
|
|
60
|
+
config: unknown;
|
|
62
61
|
signatures: any;
|
|
63
62
|
} ? 'multisig' : never;
|
|
64
63
|
/**
|
|
@@ -84,11 +83,9 @@ export type GetType<envelope extends PartialBy<SignatureEnvelope, 'type'> | unkn
|
|
|
84
83
|
*
|
|
85
84
|
* [Signature Types Specification](https://docs.tempo.xyz/protocol/transactions/spec-tempo-transaction#signature-types)
|
|
86
85
|
*/
|
|
87
|
-
export type SignatureEnvelope<numberType = number> =
|
|
88
|
-
/**
|
|
89
|
-
|
|
90
|
-
*/
|
|
91
|
-
export type SignatureEnvelopeRpc = OneOf<Secp256k1Rpc | P256Rpc | WebAuthnRpc | KeychainRpc | MultisigRpc>;
|
|
86
|
+
export type SignatureEnvelope<numberType = number> = (NonMultisig<numberType> & Undefined<Omit<Multisig<numberType>, 'type'>>) | MultisigOneOf<numberType>;
|
|
87
|
+
/** RPC-formatted signature envelope. */
|
|
88
|
+
export type SignatureEnvelopeRpc = (NonMultisigRpc & Undefined<Omit<MultisigRpc, 'type'>>) | MultisigRpcOneOf;
|
|
92
89
|
/** Primitive signature envelope accepted by protocol sidecars. */
|
|
93
90
|
export type Primitive<numberType = number> = OneOf<Secp256k1<numberType> | P256<numberType> | WebAuthn<numberType>>;
|
|
94
91
|
/** RPC-formatted primitive signature envelope. */
|
|
@@ -130,38 +127,33 @@ export type KeychainRpc = {
|
|
|
130
127
|
* [TIP-1061](https://tips.sh/1061)
|
|
131
128
|
*/
|
|
132
129
|
export type Multisig<numberType = number> = {
|
|
133
|
-
type: 'multisig';
|
|
134
130
|
/** Native multisig account address. */
|
|
135
131
|
account: Address.Address;
|
|
132
|
+
/** Complete applicable multisig configuration witness. */
|
|
133
|
+
config: MultisigConfig.Config<bigint, numberType>;
|
|
136
134
|
/**
|
|
137
135
|
* Owner approvals over the multisig owner approval digest. Each approval is
|
|
138
136
|
* either a primitive signature or a nested multisig signature (keychain
|
|
139
137
|
* approvals are invalid).
|
|
140
138
|
*/
|
|
141
139
|
signatures: readonly SignatureEnvelope<numberType>[];
|
|
142
|
-
|
|
143
|
-
* Initial native multisig config for bootstrapping this account. Present only on
|
|
144
|
-
* the first (bootstrap) transaction from the derived account; absent on every
|
|
145
|
-
* subsequent transaction.
|
|
146
|
-
*/
|
|
147
|
-
init?: MultisigConfig.Config<numberType> | undefined;
|
|
140
|
+
type: 'multisig';
|
|
148
141
|
};
|
|
142
|
+
interface MultisigOneOf<numberType = number> extends Multisig<numberType>, Undefined<Omit<NonMultisig<numberType>, 'type'>> {
|
|
143
|
+
}
|
|
149
144
|
/** RPC-formatted native multisig signature. */
|
|
150
|
-
export type MultisigRpc =
|
|
151
|
-
/**
|
|
145
|
+
export type MultisigRpc = {
|
|
146
|
+
/** Native multisig account address. */
|
|
152
147
|
account: Address.Address;
|
|
148
|
+
/** Complete applicable multisig configuration witness. */
|
|
149
|
+
config: MultisigConfig.Rpc;
|
|
153
150
|
/** Structured owner approvals. */
|
|
154
151
|
signatures: readonly SignatureEnvelopeRpc[];
|
|
155
152
|
/** Multisig RPC signatures are untagged. */
|
|
156
153
|
type?: undefined;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
/** Structured owner approvals. */
|
|
161
|
-
signatures: readonly SignatureEnvelopeRpc[];
|
|
162
|
-
/** Multisig RPC signatures are untagged. */
|
|
163
|
-
type?: undefined;
|
|
164
|
-
}>;
|
|
154
|
+
};
|
|
155
|
+
interface MultisigRpcOneOf extends MultisigRpc, Undefined<Omit<NonMultisigRpc, 'type'>> {
|
|
156
|
+
}
|
|
165
157
|
export type P256<numberType = number> = {
|
|
166
158
|
prehash: boolean;
|
|
167
159
|
publicKey: PublicKey.PublicKey;
|
|
@@ -463,24 +455,20 @@ export declare function deserialize(value: Serialized): SignatureEnvelope;
|
|
|
463
455
|
* ```
|
|
464
456
|
*
|
|
465
457
|
* @example
|
|
466
|
-
* ### Multisig
|
|
467
|
-
*
|
|
468
|
-
* Pass `initialConfig` to derive `account` automatically. Set `init: true` to
|
|
469
|
-
* opt into bootstrap (uses `initialConfig` as the bootstrap `init`); omit
|
|
470
|
-
* `init` for subsequent (non-bootstrap) transactions.
|
|
458
|
+
* ### Multisig
|
|
471
459
|
*
|
|
472
460
|
* ```ts twoslash
|
|
473
461
|
* import { Secp256k1 } from 'ox'
|
|
474
462
|
* import { MultisigConfig, SignatureEnvelope } from 'ox/tempo'
|
|
475
463
|
*
|
|
476
|
-
* const
|
|
477
|
-
* threshold: 1,
|
|
464
|
+
* const config = MultisigConfig.from({
|
|
478
465
|
* owners: [
|
|
479
466
|
* {
|
|
480
467
|
* owner: '0x1111111111111111111111111111111111111111',
|
|
481
468
|
* weight: 1
|
|
482
469
|
* }
|
|
483
|
-
* ]
|
|
470
|
+
* ],
|
|
471
|
+
* threshold: 1
|
|
484
472
|
* })
|
|
485
473
|
*
|
|
486
474
|
* const privateKey = Secp256k1.randomPrivateKey()
|
|
@@ -488,16 +476,8 @@ export declare function deserialize(value: Serialized): SignatureEnvelope;
|
|
|
488
476
|
* Secp256k1.sign({ payload: '0xdeadbeef', privateKey })
|
|
489
477
|
* )
|
|
490
478
|
*
|
|
491
|
-
*
|
|
492
|
-
*
|
|
493
|
-
* initialConfig,
|
|
494
|
-
* signatures: [signature],
|
|
495
|
-
* init: true
|
|
496
|
-
* })
|
|
497
|
-
*
|
|
498
|
-
* // Subsequent (non-bootstrap) transactions
|
|
499
|
-
* const subsequent = SignatureEnvelope.from({
|
|
500
|
-
* initialConfig,
|
|
479
|
+
* const multisig = SignatureEnvelope.from({
|
|
480
|
+
* config,
|
|
501
481
|
* signatures: [signature]
|
|
502
482
|
* })
|
|
503
483
|
* ```
|
|
@@ -511,20 +491,26 @@ export declare namespace from {
|
|
|
511
491
|
/** Payload that was signed. Used to recover `keyId` for keychain envelopes with secp256k1 inner signatures. */
|
|
512
492
|
payload?: Hex.Hex | Bytes.Bytes | undefined;
|
|
513
493
|
};
|
|
514
|
-
/**
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
494
|
+
/** Multisig signature input with an optional derived initial account. */
|
|
495
|
+
type MultisigFromConfig = {
|
|
496
|
+
/** Initial native multisig account, derived from config when omitted. */
|
|
497
|
+
account?: Address.Address | undefined;
|
|
498
|
+
/** Initial version-0 multisig configuration witness. */
|
|
499
|
+
config: MultisigConfig.Input<0 | 0n>;
|
|
500
|
+
/** Primitive or nested owner approvals. */
|
|
501
|
+
signatures: readonly SignatureEnvelope[];
|
|
521
502
|
type?: 'multisig' | undefined;
|
|
522
|
-
|
|
503
|
+
} | {
|
|
504
|
+
/** Native multisig account. */
|
|
505
|
+
account: Address.Address;
|
|
506
|
+
/** Complete applicable multisig configuration witness. */
|
|
507
|
+
config: MultisigConfig.Input;
|
|
508
|
+
/** Primitive or nested owner approvals. */
|
|
523
509
|
signatures: readonly SignatureEnvelope[];
|
|
524
|
-
|
|
510
|
+
type?: 'multisig' | undefined;
|
|
525
511
|
};
|
|
526
|
-
type Value = UnionPartialBy<SignatureEnvelope, 'prehash' | 'type'> | Secp256k1Flat | Serialized |
|
|
527
|
-
type ReturnValue<value extends Value> = Compute<OneOf<value extends Serialized ? SignatureEnvelope : value extends Secp256k1Flat ? Secp256k1 : value extends
|
|
512
|
+
type Value = UnionPartialBy<SignatureEnvelope, 'prehash' | 'type'> | Secp256k1Flat | Serialized | MultisigFromConfig;
|
|
513
|
+
type ReturnValue<value extends Value> = Compute<OneOf<value extends Serialized ? SignatureEnvelope : value extends Secp256k1Flat ? Secp256k1 : value extends MultisigFromConfig ? Multisig : IsNarrowable<value, SignatureEnvelope> extends true ? SignatureEnvelope : Assign<value, {
|
|
528
514
|
readonly type: GetType<value>;
|
|
529
515
|
} & (GetType<value> extends 'keychain' ? {
|
|
530
516
|
keyId?: Address.Address | undefined;
|
|
@@ -550,7 +536,7 @@ export declare namespace from {
|
|
|
550
536
|
*/
|
|
551
537
|
export declare function fromRpc(envelope: SignatureEnvelopeRpc): SignatureEnvelope;
|
|
552
538
|
export declare namespace fromRpc {
|
|
553
|
-
type ErrorType = assert.ErrorType | CoercionError | InvalidSerializedError | MultisigConfig.
|
|
539
|
+
type ErrorType = assert.ErrorType | CoercionError | InvalidSerializedError | MultisigConfig.fromRpc.ErrorType | Signature.fromRpc.ErrorType | Errors.GlobalErrorType;
|
|
554
540
|
}
|
|
555
541
|
/**
|
|
556
542
|
* Determines the signature type of an envelope.
|
|
@@ -583,7 +569,7 @@ export declare function getType<envelope extends PartialBy<SignatureEnvelope, 't
|
|
|
583
569
|
* - WebAuthn: `0x02` + webauthnData (variable) + r (32) + s (32) + pubKeyX (32) + pubKeyY (32)
|
|
584
570
|
* - Keychain V1: `0x03` + userAddress (20) + inner signature (recursive)
|
|
585
571
|
* - Keychain V2: `0x04` + userAddress (20) + inner signature (recursive)
|
|
586
|
-
* - Multisig: `0x05` + RLP `[account
|
|
572
|
+
* - Multisig: `0x05` + RLP `[account, config, signatures]`
|
|
587
573
|
*
|
|
588
574
|
* [Signature Types](https://docs.tempo.xyz/protocol/transactions/spec-tempo-transaction#signature-types)
|
|
589
575
|
*
|
|
@@ -627,9 +613,6 @@ export declare namespace serialize {
|
|
|
627
613
|
* recovered owner address. Works for any owner key type (secp256k1, p256,
|
|
628
614
|
* webAuthn).
|
|
629
615
|
*
|
|
630
|
-
* Config updates never change `account`, so the initial config is the correct
|
|
631
|
-
* input even for post-update transactions.
|
|
632
|
-
*
|
|
633
616
|
* @example
|
|
634
617
|
* ```ts twoslash
|
|
635
618
|
* import { Secp256k1 } from 'ox'
|
|
@@ -639,8 +622,7 @@ export declare namespace serialize {
|
|
|
639
622
|
* TxEnvelopeTempo
|
|
640
623
|
* } from 'ox/tempo'
|
|
641
624
|
*
|
|
642
|
-
* const
|
|
643
|
-
* threshold: 2,
|
|
625
|
+
* const config = MultisigConfig.from({
|
|
644
626
|
* owners: [
|
|
645
627
|
* {
|
|
646
628
|
* owner: '0x1111111111111111111111111111111111111111',
|
|
@@ -650,8 +632,10 @@ export declare namespace serialize {
|
|
|
650
632
|
* owner: '0x2222222222222222222222222222222222222222',
|
|
651
633
|
* weight: 1
|
|
652
634
|
* }
|
|
653
|
-
* ]
|
|
635
|
+
* ],
|
|
636
|
+
* threshold: 2
|
|
654
637
|
* })
|
|
638
|
+
* const account = MultisigConfig.getAddress(config)
|
|
655
639
|
*
|
|
656
640
|
* const tx = TxEnvelopeTempo.from({ chainId: 1, calls: [] })
|
|
657
641
|
* const payload = TxEnvelopeTempo.getSignPayload(tx)
|
|
@@ -661,8 +645,9 @@ export declare namespace serialize {
|
|
|
661
645
|
* Secp256k1.randomPrivateKey()
|
|
662
646
|
* ]
|
|
663
647
|
* const digest = MultisigConfig.getSignPayload({
|
|
664
|
-
*
|
|
665
|
-
*
|
|
648
|
+
* account,
|
|
649
|
+
* config,
|
|
650
|
+
* payload
|
|
666
651
|
* })
|
|
667
652
|
* const signatures = privateKeys.map((privateKey) =>
|
|
668
653
|
* SignatureEnvelope.from(
|
|
@@ -672,7 +657,8 @@ export declare namespace serialize {
|
|
|
672
657
|
*
|
|
673
658
|
* const ordered = SignatureEnvelope.sortMultisigApprovals({
|
|
674
659
|
* // [!code focus]
|
|
675
|
-
*
|
|
660
|
+
* account, // [!code focus]
|
|
661
|
+
* config, // [!code focus]
|
|
676
662
|
* payload, // [!code focus]
|
|
677
663
|
* signatures // [!code focus]
|
|
678
664
|
* }) // [!code focus]
|
|
@@ -684,22 +670,15 @@ export declare namespace serialize {
|
|
|
684
670
|
export declare function sortMultisigApprovals(value: sortMultisigApprovals.Value): readonly SignatureEnvelope[];
|
|
685
671
|
export declare namespace sortMultisigApprovals {
|
|
686
672
|
type Value = {
|
|
673
|
+
/** The native multisig account address. */
|
|
674
|
+
account: Address.Address;
|
|
675
|
+
/** Complete applicable multisig configuration witness. */
|
|
676
|
+
config: MultisigConfig.Input;
|
|
687
677
|
/** The inner transaction sign payload (`tx.signature_hash()`). */
|
|
688
678
|
payload: Hex.Hex | Bytes.Bytes;
|
|
689
679
|
/** The owner approvals to order. */
|
|
690
680
|
signatures: readonly SignatureEnvelope[];
|
|
691
|
-
|
|
692
|
-
version?: bigint | undefined;
|
|
693
|
-
} & OneOf<{
|
|
694
|
-
/** The native multisig account address. */
|
|
695
|
-
account: Address.Address;
|
|
696
|
-
} | {
|
|
697
|
-
/**
|
|
698
|
-
* The initial multisig config (the bootstrap config that derived the
|
|
699
|
-
* permanent `account`). Used to derive the account automatically.
|
|
700
|
-
*/
|
|
701
|
-
initialConfig: MultisigConfig.Config;
|
|
702
|
-
}>;
|
|
681
|
+
};
|
|
703
682
|
type ErrorType = MultisigConfig.getSignPayload.ErrorType | extractAddress.ErrorType | Errors.GlobalErrorType;
|
|
704
683
|
}
|
|
705
684
|
/**
|
|
@@ -728,7 +707,7 @@ export declare namespace toRpc {
|
|
|
728
707
|
type Input = SignatureEnvelope<Hex.Hex | number>;
|
|
729
708
|
/** RPC signature envelope inferred from the input type. */
|
|
730
709
|
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;
|
|
731
|
-
type ErrorType = assert.ErrorType | CoercionError | Signature.toRpc.ErrorType | Errors.GlobalErrorType;
|
|
710
|
+
type ErrorType = assert.ErrorType | CoercionError | MultisigConfig.toRpc.ErrorType | Signature.toRpc.ErrorType | Errors.GlobalErrorType;
|
|
732
711
|
}
|
|
733
712
|
/**
|
|
734
713
|
* Validates a signature envelope. Returns `true` if the envelope is valid, `false` otherwise.
|
|
@@ -931,4 +910,5 @@ export declare class InvalidMultisigApprovalError extends Errors.BaseError {
|
|
|
931
910
|
export declare class VerificationError extends Errors.BaseError {
|
|
932
911
|
readonly name = "SignatureEnvelope.VerificationError";
|
|
933
912
|
}
|
|
913
|
+
export {};
|
|
934
914
|
//# sourceMappingURL=SignatureEnvelope.d.ts.map
|