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.
Files changed (123) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/core/Hash.js +1 -1
  3. package/dist/core/Hash.js.map +1 -1
  4. package/dist/tempo/KeyAuthorization.d.ts +2 -2
  5. package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
  6. package/dist/tempo/MultisigConfig.d.ts +151 -83
  7. package/dist/tempo/MultisigConfig.d.ts.map +1 -1
  8. package/dist/tempo/MultisigConfig.js +164 -86
  9. package/dist/tempo/MultisigConfig.js.map +1 -1
  10. package/dist/tempo/MultisigOperation.d.ts +340 -0
  11. package/dist/tempo/MultisigOperation.d.ts.map +1 -0
  12. package/dist/tempo/MultisigOperation.js +839 -0
  13. package/dist/tempo/MultisigOperation.js.map +1 -0
  14. package/dist/tempo/MultisigSimulation.d.ts +132 -0
  15. package/dist/tempo/MultisigSimulation.d.ts.map +1 -0
  16. package/dist/tempo/MultisigSimulation.js +140 -0
  17. package/dist/tempo/MultisigSimulation.js.map +1 -0
  18. package/dist/tempo/RpcSchemaTempo.d.ts +45 -0
  19. package/dist/tempo/RpcSchemaTempo.d.ts.map +1 -1
  20. package/dist/tempo/SignatureEnvelope.d.ts +55 -86
  21. package/dist/tempo/SignatureEnvelope.d.ts.map +1 -1
  22. package/dist/tempo/SignatureEnvelope.js +93 -158
  23. package/dist/tempo/SignatureEnvelope.js.map +1 -1
  24. package/dist/tempo/TransactionRequest.d.ts +9 -17
  25. package/dist/tempo/TransactionRequest.d.ts.map +1 -1
  26. package/dist/tempo/TransactionRequest.js +7 -7
  27. package/dist/tempo/TransactionRequest.js.map +1 -1
  28. package/dist/tempo/TxEnvelopeTempo.d.ts +3 -2
  29. package/dist/tempo/TxEnvelopeTempo.d.ts.map +1 -1
  30. package/dist/tempo/TxEnvelopeTempo.js +3 -2
  31. package/dist/tempo/TxEnvelopeTempo.js.map +1 -1
  32. package/dist/tempo/index.d.ts +22 -2
  33. package/dist/tempo/index.d.ts.map +1 -1
  34. package/dist/tempo/index.js +22 -2
  35. package/dist/tempo/index.js.map +1 -1
  36. package/dist/zod/tempo/AuthorizationTempo.d.ts +60 -180
  37. package/dist/zod/tempo/AuthorizationTempo.d.ts.map +1 -1
  38. package/dist/zod/tempo/KeyAuthorization.d.ts +65 -118
  39. package/dist/zod/tempo/KeyAuthorization.d.ts.map +1 -1
  40. package/dist/zod/tempo/MultisigConfig.d.ts +31 -2
  41. package/dist/zod/tempo/MultisigConfig.d.ts.map +1 -1
  42. package/dist/zod/tempo/MultisigConfig.js +26 -3
  43. package/dist/zod/tempo/MultisigConfig.js.map +1 -1
  44. package/dist/zod/tempo/MultisigOperation.d.ts +158 -0
  45. package/dist/zod/tempo/MultisigOperation.d.ts.map +1 -0
  46. package/dist/zod/tempo/MultisigOperation.js +62 -0
  47. package/dist/zod/tempo/MultisigOperation.js.map +1 -0
  48. package/dist/zod/tempo/MultisigSimulation.d.ts +120 -0
  49. package/dist/zod/tempo/MultisigSimulation.d.ts.map +1 -0
  50. package/dist/zod/tempo/MultisigSimulation.js +78 -0
  51. package/dist/zod/tempo/MultisigSimulation.js.map +1 -0
  52. package/dist/zod/tempo/RpcSchemaTempo.d.ts +528 -144
  53. package/dist/zod/tempo/RpcSchemaTempo.d.ts.map +1 -1
  54. package/dist/zod/tempo/RpcSchemaTempo.js +47 -0
  55. package/dist/zod/tempo/RpcSchemaTempo.js.map +1 -1
  56. package/dist/zod/tempo/SignatureEnvelope.d.ts +18 -54
  57. package/dist/zod/tempo/SignatureEnvelope.d.ts.map +1 -1
  58. package/dist/zod/tempo/SignatureEnvelope.js +5 -22
  59. package/dist/zod/tempo/SignatureEnvelope.js.map +1 -1
  60. package/dist/zod/tempo/Transaction.d.ts +138 -348
  61. package/dist/zod/tempo/Transaction.d.ts.map +1 -1
  62. package/dist/zod/tempo/TransactionRequest.d.ts +286 -239
  63. package/dist/zod/tempo/TransactionRequest.d.ts.map +1 -1
  64. package/dist/zod/tempo/TransactionRequest.js +11 -22
  65. package/dist/zod/tempo/TransactionRequest.js.map +1 -1
  66. package/dist/zod/tempo/TxEnvelopeTempo.d.ts +60 -48
  67. package/dist/zod/tempo/TxEnvelopeTempo.d.ts.map +1 -1
  68. package/dist/zod/tempo/ZoneRpcAuthentication.d.ts +15 -12
  69. package/dist/zod/tempo/ZoneRpcAuthentication.d.ts.map +1 -1
  70. package/dist/zod/tempo/z.d.ts +2 -0
  71. package/dist/zod/tempo/z.d.ts.map +1 -1
  72. package/dist/zod/tempo/z.js +2 -0
  73. package/dist/zod/tempo/z.js.map +1 -1
  74. package/package.json +21 -1
  75. package/src/core/Hash.ts +1 -1
  76. package/src/core/_test/Hash.test.ts +15 -0
  77. package/src/tempo/AuthorizationTempo.test.ts +4 -0
  78. package/src/tempo/KeyAuthorization.test-d.ts +13 -12
  79. package/src/tempo/KeyAuthorization.test.ts +109 -3
  80. package/src/tempo/KeyAuthorization.ts +4 -4
  81. package/src/tempo/MultisigConfig.test-d.ts +52 -0
  82. package/src/tempo/MultisigConfig.test.ts +288 -227
  83. package/src/tempo/MultisigConfig.ts +275 -104
  84. package/src/tempo/MultisigOperation.test-d.ts +79 -0
  85. package/src/tempo/MultisigOperation.test.ts +1950 -0
  86. package/src/tempo/MultisigOperation.ts +1293 -0
  87. package/src/tempo/MultisigSimulation.test-d.ts +33 -0
  88. package/src/tempo/MultisigSimulation.test.ts +283 -0
  89. package/src/tempo/MultisigSimulation.ts +266 -0
  90. package/src/tempo/RpcSchemaTempo.test-d.ts +91 -0
  91. package/src/tempo/RpcSchemaTempo.ts +46 -0
  92. package/src/tempo/SignatureEnvelope.test-d.ts +33 -72
  93. package/src/tempo/SignatureEnvelope.test.ts +533 -500
  94. package/src/tempo/SignatureEnvelope.ts +171 -258
  95. package/src/tempo/Transaction.test.ts +61 -0
  96. package/src/tempo/TransactionRequest.test-d.ts +11 -0
  97. package/src/tempo/TransactionRequest.test.ts +214 -41
  98. package/src/tempo/TransactionRequest.ts +19 -20
  99. package/src/tempo/TxEnvelopeTempo.test-d.ts +7 -0
  100. package/src/tempo/TxEnvelopeTempo.test.ts +25 -0
  101. package/src/tempo/TxEnvelopeTempo.ts +5 -3
  102. package/src/tempo/index.ts +22 -2
  103. package/src/tempo/multisig.e2e.test.ts +164 -87
  104. package/src/version.ts +1 -1
  105. package/src/zod/tempo/MultisigConfig.ts +29 -3
  106. package/src/zod/tempo/MultisigOperation.ts +66 -0
  107. package/src/zod/tempo/MultisigSimulation.ts +98 -0
  108. package/src/zod/tempo/RpcSchemaTempo.ts +53 -0
  109. package/src/zod/tempo/SignatureEnvelope.ts +12 -54
  110. package/src/zod/tempo/TransactionRequest.ts +17 -26
  111. package/src/zod/tempo/_test/KeyAuthorization.test.ts +2 -4
  112. package/src/zod/tempo/_test/MultisigConfig.test-d.ts +13 -0
  113. package/src/zod/tempo/_test/MultisigConfig.test.ts +13 -2
  114. package/src/zod/tempo/_test/MultisigOperation.test-d.ts +27 -0
  115. package/src/zod/tempo/_test/MultisigOperation.test.ts +66 -0
  116. package/src/zod/tempo/_test/MultisigSimulation.test-d.ts +13 -0
  117. package/src/zod/tempo/_test/MultisigSimulation.test.ts +78 -0
  118. package/src/zod/tempo/_test/RpcSchemaTempo.test-d.ts +48 -0
  119. package/src/zod/tempo/_test/RpcSchemaTempo.test.ts +83 -0
  120. package/src/zod/tempo/_test/SignatureEnvelope.test-d.ts +1 -1
  121. package/src/zod/tempo/_test/SignatureEnvelope.test.ts +57 -120
  122. package/src/zod/tempo/_test/TransactionRequest.test.ts +43 -16
  123. package/src/zod/tempo/z.ts +2 -0
@@ -19,39 +19,25 @@ const p256 = {
19
19
  type: 'p256',
20
20
  } as const
21
21
 
22
- const multisig = {
23
- account: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
24
- signatures: [secp256k1],
25
- } as const
26
-
27
- const multisigBootstrap = {
28
- init: {
29
- owners: [
30
- {
31
- owner: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
32
- weight: 1,
33
- },
34
- ],
35
- salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
36
- threshold: 1,
37
- },
38
- signatures: [secp256k1],
39
- } as const
22
+ const multisig =
23
+ '0xf897949dba7f426b711d4893c11611eacf7cc334e7146bf83ba000000000000000000000000000000000000000000000000000000000000000008001d7d6947e5f4552091a69125d5dfcb7b8c2659029395bdf01f843b841869437e01f64bebeb78a8a6b30bfd3a993819c8cad82c807515d9b9e9b36f98535dfaa5eebc597715d05f6ce4927747f14fa4cd2acc717fdcd3877146437f8f41b' as const
24
+ const nestedMultisig =
25
+ '0xf8f0949969e2243075b27a8eab61009c59b77ab13b83f6f83ba033333333333333333333333333333333333333333333333333333333333333338001d7d6944f9f5b162a7464bcc260ce44d7ae0d935f9c583701f89cb89a05f897944f9f5b162a7464bcc260ce44d7ae0d935f9c5837f83ba022222222222222222222222222222222222222222222222222222222222222228001d7d6946813eb9362372eef6200f3b1dbc3f819671cba6901f843b841032aa6f3ea7b0b7069720d0f3891983c493d149326c5c957d864ed7371b8475e3e95325079b24491f4b6d68920e4b3bacd7c6094df6ed88b8674864ab559c8fb1b' as const
40
26
 
41
27
  describe('SignatureEnvelope', () => {
42
- test('decodes a secp256k1 envelope', () => {
28
+ test('behavior: decodes a secp256k1 envelope', () => {
43
29
  expect(z.decode(z_SignatureEnvelope.SignatureEnvelope, secp256k1)).toEqual(
44
30
  core_SignatureEnvelope.fromRpc(secp256k1),
45
31
  )
46
32
  })
47
33
 
48
- test('decodes a p256 envelope', () => {
34
+ test('behavior: decodes a p256 envelope', () => {
49
35
  expect(z.decode(z_SignatureEnvelope.SignatureEnvelope, p256)).toEqual(
50
36
  core_SignatureEnvelope.fromRpc(p256),
51
37
  )
52
38
  })
53
39
 
54
- test('decodes a recursive keychain envelope', () => {
40
+ test('behavior: decodes a recursive keychain envelope', () => {
55
41
  const keychain = {
56
42
  signature: secp256k1,
57
43
  type: 'keychain',
@@ -62,152 +48,103 @@ describe('SignatureEnvelope', () => {
62
48
  )
63
49
  })
64
50
 
65
- test('decodes an initialized multisig envelope', () => {
51
+ test('behavior: decodes a multisig envelope', () => {
66
52
  expect(z.decode(z_SignatureEnvelope.SignatureEnvelope, multisig)).toEqual(
67
53
  core_SignatureEnvelope.fromRpc(multisig),
68
54
  )
69
55
  })
70
56
 
71
- test('decodes a bootstrap multisig envelope', () => {
57
+ test('behavior: decodes recursive multisig approvals', () => {
72
58
  expect(
73
- z.decode(z_SignatureEnvelope.SignatureEnvelope, multisigBootstrap),
74
- ).toEqual(core_SignatureEnvelope.fromRpc(multisigBootstrap))
59
+ z.decode(z_SignatureEnvelope.SignatureEnvelope, nestedMultisig),
60
+ ).toEqual(core_SignatureEnvelope.fromRpc(nestedMultisig))
75
61
  })
76
62
 
77
- test('decodes recursive multisig approvals', () => {
78
- const nested = {
79
- ...multisig,
80
- signatures: [
81
- {
82
- account: '0x1111111111111111111111111111111111111111',
83
- signatures: [secp256k1],
84
- },
85
- ],
86
- } as const
87
- expect(z.decode(z_SignatureEnvelope.SignatureEnvelope, nested)).toEqual(
88
- core_SignatureEnvelope.fromRpc(nested),
89
- )
90
- })
91
-
92
- test('round-trips secp256k1 via encode', () => {
63
+ test('behavior: round-trips secp256k1 via encode', () => {
93
64
  const decoded = z.decode(z_SignatureEnvelope.SignatureEnvelope, secp256k1)
94
65
  expect(z.encode(z_SignatureEnvelope.SignatureEnvelope, decoded)).toEqual(
95
66
  core_SignatureEnvelope.toRpc(decoded),
96
67
  )
97
68
  })
98
69
 
99
- test('round-trips initialized multisig via encode', () => {
70
+ test('behavior: round-trips multisig via encode', () => {
100
71
  const decoded = z.decode(z_SignatureEnvelope.SignatureEnvelope, multisig)
101
72
  expect(z.encode(z_SignatureEnvelope.SignatureEnvelope, decoded)).toEqual(
102
- core_SignatureEnvelope.toRpc(decoded),
103
- )
104
- })
105
-
106
- test('round-trips bootstrap multisig via encode', () => {
107
- const decoded = z.decode(
108
- z_SignatureEnvelope.SignatureEnvelope,
109
- multisigBootstrap,
110
- )
111
- expect(z.encode(z_SignatureEnvelope.SignatureEnvelope, decoded)).toEqual(
112
- multisigBootstrap,
73
+ multisig,
113
74
  )
114
75
  })
115
76
 
116
- test('rejects invalid recursive multisig domains before encode', () => {
117
- const invalid = {
118
- account: multisig.account,
119
- signatures: [
120
- {
121
- inner: core_SignatureEnvelope.fromRpc(secp256k1),
122
- type: 'keychain',
123
- userAddress: multisig.account,
124
- },
125
- ],
126
- type: 'multisig',
127
- } as const
128
-
77
+ test('error: rejects invalid recursive multisig domains before encode', () => {
78
+ const decoded = core_SignatureEnvelope.fromRpc(multisig)
79
+ if (decoded.type !== 'multisig') throw new Error('unreachable')
129
80
  expect(
130
- z.safeEncode(z_SignatureEnvelope.SignatureEnvelope, invalid as never)
131
- .success,
132
- ).toMatchInlineSnapshot(`false`)
133
- })
134
-
135
- test('rejects legacy multisig approval encoding', () => {
136
- expect(
137
- z.safeDecode(z_SignatureEnvelope.SignatureEnvelope, {
138
- ...multisig,
81
+ z.safeEncode(z_SignatureEnvelope.SignatureEnvelope, {
82
+ ...decoded,
139
83
  signatures: [
140
- core_SignatureEnvelope.serialize(
141
- core_SignatureEnvelope.fromRpc(secp256k1),
142
- ),
84
+ {
85
+ inner: core_SignatureEnvelope.fromRpc(secp256k1),
86
+ type: 'keychain',
87
+ userAddress: decoded.account,
88
+ },
143
89
  ],
144
90
  } as never).success,
145
91
  ).toMatchInlineSnapshot(`false`)
146
92
  })
147
93
 
148
- test('rejects multisig approval counts outside protocol limits', () => {
94
+ test('error: rejects multisig approval counts outside protocol limits', () => {
95
+ const decoded = core_SignatureEnvelope.fromRpc(multisig)
96
+ if (decoded.type !== 'multisig') throw new Error('unreachable')
149
97
  expect(
150
- z.safeDecode(z_SignatureEnvelope.SignatureEnvelope, {
151
- ...multisig,
98
+ z.safeEncode(z_SignatureEnvelope.SignatureEnvelope, {
99
+ ...decoded,
152
100
  signatures: [],
153
- }).success,
101
+ } as never).success,
154
102
  ).toMatchInlineSnapshot(`false`)
155
103
  expect(
156
- z.safeDecode(z_SignatureEnvelope.SignatureEnvelope, {
157
- ...multisig,
158
- signatures: Array.from({ length: 9 }, () => secp256k1),
159
- }).success,
104
+ z.safeEncode(z_SignatureEnvelope.SignatureEnvelope, {
105
+ ...decoded,
106
+ signatures: Array.from({ length: 9 }, () => decoded.signatures[0]),
107
+ } as never).success,
160
108
  ).toMatchInlineSnapshot(`false`)
161
109
  })
162
110
 
163
- test('rejects invalid recursive multisig approvals', () => {
164
- const keychain = {
165
- signature: secp256k1,
166
- type: 'keychain',
167
- userAddress: multisig.account,
168
- } as const
169
- const depth2 = {
170
- account: '0x1111111111111111111111111111111111111111',
171
- signatures: [secp256k1],
172
- } as const
173
- const depth3 = {
174
- account: '0x2222222222222222222222222222222222222222',
175
- signatures: [depth2],
176
- } as const
177
-
111
+ test('error: rejects excess multisig nesting', () => {
112
+ const nested = core_SignatureEnvelope.fromRpc(nestedMultisig)
113
+ if (nested.type !== 'multisig') throw new Error('unreachable')
178
114
  expect(
179
- z.safeDecode(z_SignatureEnvelope.SignatureEnvelope, {
180
- ...multisig,
181
- signatures: [keychain],
182
- }).success,
183
- ).toMatchInlineSnapshot(`false`)
184
- expect(
185
- z.safeDecode(z_SignatureEnvelope.SignatureEnvelope, {
186
- ...multisig,
187
- signatures: [depth3],
188
- }).success,
115
+ z.safeEncode(z_SignatureEnvelope.SignatureEnvelope, {
116
+ account: '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
117
+ config: {
118
+ ...nested.config,
119
+ owners: [{ owner: nested.account, weight: 1 }],
120
+ version: 1n,
121
+ },
122
+ signatures: [nested],
123
+ type: 'multisig',
124
+ } as never).success,
189
125
  ).toMatchInlineSnapshot(`false`)
190
126
  })
191
127
 
192
- test('rejects mixed multisig initialization fields', () => {
128
+ test('error: rejects structured multisig RPC envelopes', () => {
193
129
  expect(
194
130
  z.safeDecode(z_SignatureEnvelope.SignatureEnvelope, {
195
- ...multisigBootstrap,
196
- account: multisig.account,
131
+ account: '0x9dba7f426b711d4893c11611eacf7cc334e7146b',
132
+ config: {},
133
+ signatures: [],
197
134
  } as never).success,
198
135
  ).toMatchInlineSnapshot(`false`)
199
136
  })
200
137
 
201
- test('rejects tagged multisig RPC envelopes', () => {
138
+ test('error: rejects tagged multisig RPC envelopes', () => {
202
139
  expect(
203
- z.safeDecode(z_SignatureEnvelope.SignatureEnvelope, {
204
- ...multisig,
205
- type: 'multisig',
206
- } as never).success,
140
+ z.safeDecode(
141
+ z_SignatureEnvelope.SignatureEnvelope,
142
+ `0x05${multisig.slice(2)}`,
143
+ ).success,
207
144
  ).toMatchInlineSnapshot(`false`)
208
145
  })
209
146
 
210
- test('rejects an invalid envelope', () => {
147
+ test('error: rejects an invalid envelope', () => {
211
148
  expect(
212
149
  z.safeDecode(z_SignatureEnvelope.SignatureEnvelope, {
213
150
  type: 'secp256k1',
@@ -44,27 +44,12 @@ describe('TransactionRequest', () => {
44
44
  )
45
45
  })
46
46
 
47
- test('gas-model hints and capabilities round-trip', () => {
47
+ test('capabilities and key hints round-trip', () => {
48
48
  const hints = {
49
49
  capabilities: { balanceDiffs: true },
50
50
  keyData: '0x0578',
51
51
  keyId: '0xcccccccccccccccccccccccccccccccccccccccc',
52
52
  keyType: 'webAuthn',
53
- multisigInit: {
54
- salt: '0x0000000000000000000000000000000000000000000000000000000000000000',
55
- threshold: 2,
56
- owners: [
57
- {
58
- owner: '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
59
- weight: 1,
60
- },
61
- {
62
- owner: '0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',
63
- weight: 1,
64
- },
65
- ],
66
- },
67
- multisigSignatureCount: 2,
68
53
  } as const
69
54
 
70
55
  const decoded = z.decode(z_TransactionRequest.TransactionRequest, {
@@ -78,6 +63,48 @@ describe('TransactionRequest', () => {
78
63
  expect(encoded).toEqual(core_TransactionRequest.toRpc(decoded))
79
64
  })
80
65
 
66
+ test('multisig simulation round-trips', () => {
67
+ const multisigSimulation = {
68
+ account: '0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
69
+ approvals: [
70
+ {
71
+ keyType: 'secp256k1',
72
+ owner: '0x1111111111111111111111111111111111111111',
73
+ type: 'primitive',
74
+ },
75
+ {
76
+ spec: {
77
+ account: '0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',
78
+ approvals: [
79
+ {
80
+ keyData: '0x0578',
81
+ keyType: 'webAuthn',
82
+ owner: '0x2222222222222222222222222222222222222222',
83
+ },
84
+ ],
85
+ config:
86
+ '0xf83ba022222222222222222222222222222222222222222222222222222222222222220101d7d694222222222222222222222222222222222222222201',
87
+ },
88
+ type: 'multisig',
89
+ },
90
+ ],
91
+ config:
92
+ '0xf852a011111111111111111111111111111111111111111111111111111111111111118002eed694111111111111111111111111111111111111111101d694bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb01',
93
+ } as const
94
+
95
+ const decoded = z.decode(z_TransactionRequest.TransactionRequest, {
96
+ ...rpc,
97
+ multisigSimulation,
98
+ })
99
+ expect(decoded).toEqual(
100
+ core_TransactionRequest.fromRpc({ ...rpc, multisigSimulation }),
101
+ )
102
+
103
+ const encoded = z.encode(z_TransactionRequest.TransactionRequest, decoded)
104
+ expect(encoded.multisigSimulation).toStrictEqual(multisigSimulation)
105
+ expect(encoded).toEqual(core_TransactionRequest.toRpc(decoded))
106
+ })
107
+
81
108
  test('feeToken is withheld until the fee payer signs (TIP-76)', () => {
82
109
  const decoded = z.decode(z_TransactionRequest.TransactionRequest, rpc)
83
110
  const pending = z.encode(z_TransactionRequest.TransactionRequest, {
@@ -2,6 +2,8 @@
2
2
  export * as AuthorizationTempo from './AuthorizationTempo.js'
3
3
  export * as KeyAuthorization from './KeyAuthorization.js'
4
4
  export * as MultisigConfig from './MultisigConfig.js'
5
+ export * as MultisigOperation from './MultisigOperation.js'
6
+ export * as MultisigSimulation from './MultisigSimulation.js'
5
7
  export * as PoolId from './PoolId.js'
6
8
  export * as RpcSchemaTempo from './RpcSchemaTempo.js'
7
9
  export * as SignatureEnvelope from './SignatureEnvelope.js'