ox 1.7.1 → 1.7.4
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 +42 -0
- package/dist/core/Hash.js +1 -1
- package/dist/core/Hash.js.map +1 -1
- package/dist/tempo/KeyAuthorization.d.ts +2 -2
- 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 +340 -0
- package/dist/tempo/MultisigOperation.d.ts.map +1 -0
- package/dist/tempo/MultisigOperation.js +839 -0
- package/dist/tempo/MultisigOperation.js.map +1 -0
- package/dist/tempo/MultisigSimulation.d.ts +132 -0
- package/dist/tempo/MultisigSimulation.d.ts.map +1 -0
- package/dist/tempo/MultisigSimulation.js +140 -0
- package/dist/tempo/MultisigSimulation.js.map +1 -0
- package/dist/tempo/RpcSchemaTempo.d.ts +45 -0
- package/dist/tempo/RpcSchemaTempo.d.ts.map +1 -1
- package/dist/tempo/SignatureEnvelope.d.ts +55 -86
- package/dist/tempo/SignatureEnvelope.d.ts.map +1 -1
- package/dist/tempo/SignatureEnvelope.js +93 -158
- 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 +60 -180
- package/dist/zod/tempo/AuthorizationTempo.d.ts.map +1 -1
- package/dist/zod/tempo/KeyAuthorization.d.ts +65 -118
- 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 +158 -0
- package/dist/zod/tempo/MultisigOperation.d.ts.map +1 -0
- package/dist/zod/tempo/MultisigOperation.js +62 -0
- package/dist/zod/tempo/MultisigOperation.js.map +1 -0
- package/dist/zod/tempo/MultisigSimulation.d.ts +120 -0
- package/dist/zod/tempo/MultisigSimulation.d.ts.map +1 -0
- package/dist/zod/tempo/MultisigSimulation.js +78 -0
- package/dist/zod/tempo/MultisigSimulation.js.map +1 -0
- package/dist/zod/tempo/RpcSchemaTempo.d.ts +528 -144
- package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
- package/dist/zod/tempo/RpcSchemaTempo.js +47 -0
- package/dist/zod/tempo/RpcSchemaTempo.js.map +1 -1
- package/dist/zod/tempo/SignatureEnvelope.d.ts +18 -54
- package/dist/zod/tempo/SignatureEnvelope.d.ts.map +1 -1
- package/dist/zod/tempo/SignatureEnvelope.js +5 -22
- package/dist/zod/tempo/SignatureEnvelope.js.map +1 -1
- package/dist/zod/tempo/Transaction.d.ts +138 -348
- package/dist/zod/tempo/Transaction.d.ts.map +1 -1
- package/dist/zod/tempo/TransactionRequest.d.ts +286 -239
- 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/_test/Hash.test.ts +15 -0
- package/src/tempo/AuthorizationTempo.test.ts +4 -0
- package/src/tempo/KeyAuthorization.test-d.ts +13 -12
- package/src/tempo/KeyAuthorization.test.ts +109 -3
- package/src/tempo/KeyAuthorization.ts +4 -4
- 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 +79 -0
- package/src/tempo/MultisigOperation.test.ts +1950 -0
- package/src/tempo/MultisigOperation.ts +1293 -0
- package/src/tempo/MultisigSimulation.test-d.ts +33 -0
- package/src/tempo/MultisigSimulation.test.ts +283 -0
- package/src/tempo/MultisigSimulation.ts +266 -0
- package/src/tempo/RpcSchemaTempo.test-d.ts +91 -0
- package/src/tempo/RpcSchemaTempo.ts +46 -0
- package/src/tempo/SignatureEnvelope.test-d.ts +33 -72
- package/src/tempo/SignatureEnvelope.test.ts +533 -500
- package/src/tempo/SignatureEnvelope.ts +171 -258
- package/src/tempo/Transaction.test.ts +61 -0
- package/src/tempo/TransactionRequest.test-d.ts +11 -0
- package/src/tempo/TransactionRequest.test.ts +214 -41
- package/src/tempo/TransactionRequest.ts +19 -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 +164 -87
- package/src/version.ts +1 -1
- package/src/zod/tempo/MultisigConfig.ts +29 -3
- package/src/zod/tempo/MultisigOperation.ts +66 -0
- package/src/zod/tempo/MultisigSimulation.ts +98 -0
- package/src/zod/tempo/RpcSchemaTempo.ts +53 -0
- package/src/zod/tempo/SignatureEnvelope.ts +12 -54
- package/src/zod/tempo/TransactionRequest.ts +17 -26
- package/src/zod/tempo/_test/KeyAuthorization.test.ts +2 -4
- 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 +66 -0
- package/src/zod/tempo/_test/MultisigSimulation.test-d.ts +13 -0
- package/src/zod/tempo/_test/MultisigSimulation.test.ts +78 -0
- package/src/zod/tempo/_test/RpcSchemaTempo.test-d.ts +48 -0
- package/src/zod/tempo/_test/RpcSchemaTempo.test.ts +83 -0
- package/src/zod/tempo/_test/SignatureEnvelope.test-d.ts +1 -1
- package/src/zod/tempo/_test/SignatureEnvelope.test.ts +57 -120
- package/src/zod/tempo/_test/TransactionRequest.test.ts +43 -16
- package/src/zod/tempo/z.ts +2 -0
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import type * as Address from '../core/Address.js'
|
|
1
2
|
import type * as Block from '../core/Block.js'
|
|
2
3
|
import type * as BlockOverrides from '../core/BlockOverrides.js'
|
|
3
4
|
import type * as Hex from '../core/Hex.js'
|
|
4
5
|
import type * as Log from '../core/Log.js'
|
|
5
6
|
import type * as RpcSchema from '../core/RpcSchema.js'
|
|
6
7
|
import type * as StateOverrides from '../core/StateOverrides.js'
|
|
8
|
+
import type * as KeyAuthorization from './KeyAuthorization.js'
|
|
9
|
+
import type * as MultisigConfig from './MultisigConfig.js'
|
|
10
|
+
import type * as MultisigOperation from './MultisigOperation.js'
|
|
7
11
|
import type * as TransactionRequest from './TransactionRequest.js'
|
|
8
12
|
|
|
9
13
|
/**
|
|
@@ -53,3 +57,45 @@ export type Tempo = RpcSchema.From<{
|
|
|
53
57
|
}
|
|
54
58
|
}
|
|
55
59
|
}>
|
|
60
|
+
|
|
61
|
+
/** Union of all JSON-RPC methods for the `multisig_` namespace. */
|
|
62
|
+
export type Multisig = RpcSchema.From<
|
|
63
|
+
| {
|
|
64
|
+
Request: {
|
|
65
|
+
method: 'multisig_approveKeyAuthorization'
|
|
66
|
+
params: [
|
|
67
|
+
| { keyAuthorization: KeyAuthorization.Rpc }
|
|
68
|
+
| { hash: Hex.Hex; signature: Hex.Hex },
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
ReturnType: MultisigOperation.KeyAuthorizationRpc
|
|
72
|
+
}
|
|
73
|
+
| {
|
|
74
|
+
Request: {
|
|
75
|
+
method: 'multisig_approveRawTransaction'
|
|
76
|
+
params: [serializedTransaction: Hex.Hex]
|
|
77
|
+
}
|
|
78
|
+
ReturnType: Hex.Hex
|
|
79
|
+
}
|
|
80
|
+
| {
|
|
81
|
+
Request: {
|
|
82
|
+
method: 'multisig_approveRawTransactionSync'
|
|
83
|
+
params: [serializedTransaction: Hex.Hex, timeout?: number]
|
|
84
|
+
}
|
|
85
|
+
ReturnType: MultisigOperation.TransactionRpc
|
|
86
|
+
}
|
|
87
|
+
| {
|
|
88
|
+
Request: {
|
|
89
|
+
method: 'multisig_getConfig'
|
|
90
|
+
params: [{ address: Address.Address }]
|
|
91
|
+
}
|
|
92
|
+
ReturnType: MultisigConfig.Rpc | null
|
|
93
|
+
}
|
|
94
|
+
| {
|
|
95
|
+
Request: {
|
|
96
|
+
method: 'multisig_getOperation'
|
|
97
|
+
params: [hash: Hex.Hex]
|
|
98
|
+
}
|
|
99
|
+
ReturnType: MultisigOperation.Rpc | null
|
|
100
|
+
}
|
|
101
|
+
>
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
import { expectTypeOf, test } from 'vp/test'
|
|
2
|
+
import * as MultisigConfig from './MultisigConfig.js'
|
|
2
3
|
import * as SignatureEnvelope from './SignatureEnvelope.js'
|
|
3
4
|
|
|
4
5
|
const signature = {
|
|
5
|
-
r: '0x01',
|
|
6
|
-
s: '0x02',
|
|
7
|
-
type: 'secp256k1',
|
|
8
|
-
yParity: '0x0',
|
|
9
|
-
} as const satisfies SignatureEnvelope.SignatureEnvelopeRpc
|
|
10
|
-
|
|
11
|
-
const signatureDomain = {
|
|
12
6
|
signature: {
|
|
13
7
|
r: '0x01',
|
|
14
8
|
s: '0x02',
|
|
@@ -17,81 +11,48 @@ const signatureDomain = {
|
|
|
17
11
|
type: 'secp256k1',
|
|
18
12
|
} as const satisfies SignatureEnvelope.Secp256k1
|
|
19
13
|
|
|
14
|
+
const config = MultisigConfig.from({
|
|
15
|
+
owners: [
|
|
16
|
+
{
|
|
17
|
+
owner: '0x1111111111111111111111111111111111111111',
|
|
18
|
+
weight: 1,
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
threshold: 1,
|
|
22
|
+
})
|
|
23
|
+
|
|
20
24
|
test('toRpc preserves the signature type', () => {
|
|
21
25
|
expectTypeOf(
|
|
22
|
-
SignatureEnvelope.toRpc(
|
|
26
|
+
SignatureEnvelope.toRpc(signature),
|
|
23
27
|
).toEqualTypeOf<SignatureEnvelope.Secp256k1Rpc>()
|
|
24
28
|
})
|
|
25
29
|
|
|
26
|
-
test('MultisigRpc
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
signatures: [signature],
|
|
30
|
-
} as const satisfies SignatureEnvelope.MultisigRpc
|
|
31
|
-
const bootstrap = {
|
|
32
|
-
init: {
|
|
33
|
-
owners: [
|
|
34
|
-
{
|
|
35
|
-
owner: '0x1111111111111111111111111111111111111111',
|
|
36
|
-
weight: 1,
|
|
37
|
-
},
|
|
38
|
-
],
|
|
39
|
-
threshold: 1,
|
|
40
|
-
},
|
|
41
|
-
signatures: [signature],
|
|
42
|
-
} as const satisfies SignatureEnvelope.MultisigRpc
|
|
43
|
-
const bootstrapWithAccountUndefined: SignatureEnvelope.MultisigRpc = {
|
|
44
|
-
...bootstrap,
|
|
45
|
-
account: undefined,
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
expectTypeOf(initialized.signatures).toMatchTypeOf<
|
|
49
|
-
readonly SignatureEnvelope.SignatureEnvelopeRpc[]
|
|
50
|
-
>()
|
|
51
|
-
expectTypeOf(bootstrap.signatures).toMatchTypeOf<
|
|
52
|
-
readonly SignatureEnvelope.SignatureEnvelopeRpc[]
|
|
53
|
-
>()
|
|
54
|
-
expectTypeOf(
|
|
55
|
-
bootstrapWithAccountUndefined,
|
|
56
|
-
).toMatchTypeOf<SignatureEnvelope.MultisigRpc>()
|
|
57
|
-
expectTypeOf<
|
|
58
|
-
SignatureEnvelope.GetType<typeof bootstrap>
|
|
59
|
-
>().toEqualTypeOf<'multisig'>()
|
|
30
|
+
test('MultisigRpc contains an untagged serialized multisig signature', () => {
|
|
31
|
+
const rpc = '0xf8' as const satisfies SignatureEnvelope.MultisigRpc
|
|
32
|
+
expectTypeOf(rpc).toMatchTypeOf<`0x${string}`>()
|
|
60
33
|
})
|
|
61
34
|
|
|
62
|
-
test('
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
init: {
|
|
66
|
-
owners: [
|
|
67
|
-
{
|
|
68
|
-
owner: '0x1111111111111111111111111111111111111111',
|
|
69
|
-
weight: 1,
|
|
70
|
-
},
|
|
71
|
-
],
|
|
72
|
-
threshold: 1,
|
|
73
|
-
},
|
|
35
|
+
test('from derives an initial account', () => {
|
|
36
|
+
const multisig = SignatureEnvelope.from({
|
|
37
|
+
config,
|
|
74
38
|
signatures: [signature],
|
|
75
|
-
}
|
|
76
|
-
// @ts-expect-error Bootstrap RPC signatures omit `account`.
|
|
77
|
-
const combinedRpc: SignatureEnvelope.MultisigRpc = combined
|
|
39
|
+
})
|
|
78
40
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
} as const
|
|
83
|
-
// @ts-expect-error Owner approvals use structured RPC envelopes.
|
|
84
|
-
const serializedRpc: SignatureEnvelope.MultisigRpc = serialized
|
|
41
|
+
expectTypeOf(multisig).toMatchTypeOf<SignatureEnvelope.Multisig>()
|
|
42
|
+
expectTypeOf(multisig.config.version).toEqualTypeOf<bigint>()
|
|
43
|
+
})
|
|
85
44
|
|
|
86
|
-
|
|
87
|
-
|
|
45
|
+
test('from requires an account for a current config', () => {
|
|
46
|
+
// @ts-expect-error Current configurations require an explicit account.
|
|
47
|
+
SignatureEnvelope.from({
|
|
48
|
+
config: { ...config, version: 1 },
|
|
88
49
|
signatures: [signature],
|
|
89
|
-
|
|
90
|
-
} as const
|
|
91
|
-
// @ts-expect-error Multisig RPC signatures are untagged.
|
|
92
|
-
const taggedRpc: SignatureEnvelope.MultisigRpc = tagged
|
|
50
|
+
})
|
|
93
51
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
52
|
+
const multisig = SignatureEnvelope.from({
|
|
53
|
+
account: '0x2222222222222222222222222222222222222222',
|
|
54
|
+
config: { ...config, version: 1 },
|
|
55
|
+
signatures: [signature],
|
|
56
|
+
})
|
|
57
|
+
expectTypeOf(multisig).toMatchTypeOf<SignatureEnvelope.Multisig>()
|
|
97
58
|
})
|