ox 1.7.1 → 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 +15 -0
- package/dist/core/Hash.js +1 -1
- package/dist/core/Hash.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/_test/Hash.test.ts +15 -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
|
@@ -1,14 +1,15 @@
|
|
|
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
|
-
const
|
|
5
|
+
const signatureRpc = {
|
|
5
6
|
r: '0x01',
|
|
6
7
|
s: '0x02',
|
|
7
8
|
type: 'secp256k1',
|
|
8
9
|
yParity: '0x0',
|
|
9
10
|
} as const satisfies SignatureEnvelope.SignatureEnvelopeRpc
|
|
10
11
|
|
|
11
|
-
const
|
|
12
|
+
const signature = {
|
|
12
13
|
signature: {
|
|
13
14
|
r: '0x01',
|
|
14
15
|
s: '0x02',
|
|
@@ -17,67 +18,81 @@ const signatureDomain = {
|
|
|
17
18
|
type: 'secp256k1',
|
|
18
19
|
} as const satisfies SignatureEnvelope.Secp256k1
|
|
19
20
|
|
|
21
|
+
const config = MultisigConfig.from({
|
|
22
|
+
owners: [
|
|
23
|
+
{
|
|
24
|
+
owner: '0x1111111111111111111111111111111111111111',
|
|
25
|
+
weight: 1,
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
threshold: 1,
|
|
29
|
+
})
|
|
30
|
+
|
|
20
31
|
test('toRpc preserves the signature type', () => {
|
|
21
32
|
expectTypeOf(
|
|
22
|
-
SignatureEnvelope.toRpc(
|
|
33
|
+
SignatureEnvelope.toRpc(signature),
|
|
23
34
|
).toEqualTypeOf<SignatureEnvelope.Secp256k1Rpc>()
|
|
24
35
|
})
|
|
25
36
|
|
|
26
|
-
test('MultisigRpc
|
|
27
|
-
const
|
|
37
|
+
test('MultisigRpc carries one complete witness shape', () => {
|
|
38
|
+
const rpc = {
|
|
28
39
|
account: '0x1111111111111111111111111111111111111111',
|
|
29
|
-
|
|
40
|
+
config: MultisigConfig.toRpc(config),
|
|
41
|
+
signatures: [signatureRpc],
|
|
30
42
|
} 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
43
|
|
|
48
|
-
expectTypeOf(
|
|
49
|
-
|
|
50
|
-
>()
|
|
51
|
-
expectTypeOf(bootstrap.signatures).toMatchTypeOf<
|
|
44
|
+
expectTypeOf(rpc.config).toMatchTypeOf<MultisigConfig.Rpc>()
|
|
45
|
+
expectTypeOf(rpc.signatures).toMatchTypeOf<
|
|
52
46
|
readonly SignatureEnvelope.SignatureEnvelopeRpc[]
|
|
53
47
|
>()
|
|
54
|
-
expectTypeOf(
|
|
55
|
-
bootstrapWithAccountUndefined,
|
|
56
|
-
).toMatchTypeOf<SignatureEnvelope.MultisigRpc>()
|
|
57
48
|
expectTypeOf<
|
|
58
|
-
SignatureEnvelope.GetType<typeof
|
|
49
|
+
SignatureEnvelope.GetType<typeof rpc>
|
|
59
50
|
>().toEqualTypeOf<'multisig'>()
|
|
60
51
|
})
|
|
61
52
|
|
|
62
|
-
test('
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
53
|
+
test('from derives an initial account', () => {
|
|
54
|
+
const multisig = SignatureEnvelope.from({
|
|
55
|
+
config,
|
|
56
|
+
signatures: [signature],
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
expectTypeOf(multisig).toMatchTypeOf<SignatureEnvelope.Multisig>()
|
|
60
|
+
expectTypeOf(multisig.config.version).toEqualTypeOf<bigint>()
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
test('from requires an account for a current config', () => {
|
|
64
|
+
// @ts-expect-error Current configurations require an explicit account.
|
|
65
|
+
SignatureEnvelope.from({
|
|
66
|
+
config: { ...config, version: 1 },
|
|
67
|
+
signatures: [signature],
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
const multisig = SignatureEnvelope.from({
|
|
71
|
+
account: '0x2222222222222222222222222222222222222222',
|
|
72
|
+
config: { ...config, version: 1 },
|
|
74
73
|
signatures: [signature],
|
|
74
|
+
})
|
|
75
|
+
expectTypeOf(multisig).toMatchTypeOf<SignatureEnvelope.Multisig>()
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
test('MultisigRpc rejects old witness shapes', () => {
|
|
79
|
+
const accountOnly = {
|
|
80
|
+
account: '0x1111111111111111111111111111111111111111',
|
|
81
|
+
signatures: [signatureRpc],
|
|
75
82
|
} as const
|
|
76
|
-
// @ts-expect-error
|
|
77
|
-
const
|
|
83
|
+
// @ts-expect-error Multisig RPC signatures require config.
|
|
84
|
+
const accountOnlyRpc: SignatureEnvelope.MultisigRpc = accountOnly
|
|
85
|
+
|
|
86
|
+
const init = {
|
|
87
|
+
init: config,
|
|
88
|
+
signatures: [signatureRpc],
|
|
89
|
+
} as const
|
|
90
|
+
// @ts-expect-error Multisig RPC signatures no longer accept init.
|
|
91
|
+
const initRpc: SignatureEnvelope.MultisigRpc = init
|
|
78
92
|
|
|
79
93
|
const serialized = {
|
|
80
94
|
account: '0x1111111111111111111111111111111111111111',
|
|
95
|
+
config: MultisigConfig.toRpc(config),
|
|
81
96
|
signatures: ['0x1234'],
|
|
82
97
|
} as const
|
|
83
98
|
// @ts-expect-error Owner approvals use structured RPC envelopes.
|
|
@@ -85,13 +100,15 @@ test('MultisigRpc rejects legacy shapes', () => {
|
|
|
85
100
|
|
|
86
101
|
const tagged = {
|
|
87
102
|
account: '0x1111111111111111111111111111111111111111',
|
|
88
|
-
|
|
103
|
+
config: MultisigConfig.toRpc(config),
|
|
104
|
+
signatures: [signatureRpc],
|
|
89
105
|
type: 'multisig',
|
|
90
106
|
} as const
|
|
91
107
|
// @ts-expect-error Multisig RPC signatures are untagged.
|
|
92
108
|
const taggedRpc: SignatureEnvelope.MultisigRpc = tagged
|
|
93
109
|
|
|
94
|
-
expectTypeOf(
|
|
110
|
+
expectTypeOf(accountOnlyRpc).toEqualTypeOf<SignatureEnvelope.MultisigRpc>()
|
|
111
|
+
expectTypeOf(initRpc).toEqualTypeOf<SignatureEnvelope.MultisigRpc>()
|
|
95
112
|
expectTypeOf(serializedRpc).toEqualTypeOf<SignatureEnvelope.MultisigRpc>()
|
|
96
113
|
expectTypeOf(taggedRpc).toEqualTypeOf<SignatureEnvelope.MultisigRpc>()
|
|
97
114
|
})
|