ox 0.14.43 → 0.14.44
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 +6 -0
- package/_cjs/tempo/MultisigConfig.js +9 -2
- package/_cjs/tempo/MultisigConfig.js.map +1 -1
- package/_cjs/version.js +1 -1
- package/_esm/tempo/MultisigConfig.js +14 -4
- package/_esm/tempo/MultisigConfig.js.map +1 -1
- package/_esm/version.js +1 -1
- package/_types/tempo/MultisigConfig.d.ts +5 -3
- package/_types/tempo/MultisigConfig.d.ts.map +1 -1
- package/_types/version.d.ts +1 -1
- package/package.json +1 -1
- package/tempo/KeyAuthorization.test.ts +3 -3
- package/tempo/MultisigConfig.test.ts +21 -5
- package/tempo/MultisigConfig.ts +18 -6
- package/tempo/MultisigOperation.test.ts +37 -37
- package/tempo/SignatureEnvelope.test.ts +22 -22
- package/tempo/Transaction.test.ts +4 -4
- package/tempo/multisig.e2e.test.ts +20 -20
- package/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# ox
|
|
2
2
|
|
|
3
|
+
## 0.14.44
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#430](https://github.com/wevm/ox/pull/430) [`1c78a92`](https://github.com/wevm/ox/commit/1c78a9228392544cf8fabbfe2d5e46f252bb0679) Thanks [@jxom](https://github.com/jxom)! - Updated Tempo multisig account derivation to use the canonical CREATE2 recovery address.
|
|
8
|
+
|
|
3
9
|
## 0.14.43
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
|
@@ -12,6 +12,7 @@ exports.toRpc = toRpc;
|
|
|
12
12
|
exports.toTuple = toTuple;
|
|
13
13
|
exports.validate = validate;
|
|
14
14
|
const Address = require("../core/Address.js");
|
|
15
|
+
const ContractAddress = require("../core/ContractAddress.js");
|
|
15
16
|
const Errors = require("../core/Errors.js");
|
|
16
17
|
const Hash = require("../core/Hash.js");
|
|
17
18
|
const Hex = require("../core/Hex.js");
|
|
@@ -25,6 +26,8 @@ exports.signatureTypeByte = '0x05';
|
|
|
25
26
|
exports.zeroSalt = `0x${'00'.repeat(32)}`;
|
|
26
27
|
const accountDomain = 'tempo:multisig:account';
|
|
27
28
|
const configDomain = 'tempo:multisig:config';
|
|
29
|
+
const recoveryFactory = '0x8a196A227C48Ae8A3E36EebD4E106675CC0f6E64';
|
|
30
|
+
const recoveryWalletInitCodeHash = '0x4b5ff53c5328a10a6ec5224adf16de5e204a47057c98af037ee30b7de660a8a6';
|
|
28
31
|
const signatureDomain = 'tempo:multisig:signature';
|
|
29
32
|
function assert(config) {
|
|
30
33
|
const { owners, salt, threshold, version = 0n } = config;
|
|
@@ -120,11 +123,15 @@ function getAddress(config) {
|
|
|
120
123
|
throw new InvalidConfigError({
|
|
121
124
|
reason: 'account address requires version zero',
|
|
122
125
|
});
|
|
123
|
-
const
|
|
126
|
+
const accountSalt = Hash.keccak256(Hex.concat(Hex.fromString(accountDomain), Hex.padLeft(config.salt ?? exports.zeroSalt, 32), Hex.fromNumber(config.threshold, { size: 1 }), Hex.fromNumber(config.owners.length, { size: 1 }), ...config.owners.flatMap((owner) => [
|
|
124
127
|
owner.owner,
|
|
125
128
|
Hex.fromNumber(owner.weight, { size: 1 }),
|
|
126
129
|
])));
|
|
127
|
-
const account =
|
|
130
|
+
const account = ContractAddress.fromCreate2({
|
|
131
|
+
bytecodeHash: recoveryWalletInitCodeHash,
|
|
132
|
+
from: recoveryFactory,
|
|
133
|
+
salt: accountSalt,
|
|
134
|
+
});
|
|
128
135
|
if (Hex.toBigInt(account) === 0n)
|
|
129
136
|
throw new InvalidConfigError({ reason: 'derived account cannot be zero' });
|
|
130
137
|
if (config.owners.some((owner) => Address.isEqual(owner.owner, account)))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultisigConfig.js","sourceRoot":"","sources":["../../tempo/MultisigConfig.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"MultisigConfig.js","sourceRoot":"","sources":["../../tempo/MultisigConfig.ts"],"names":[],"mappings":"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"}
|
package/_cjs/version.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as Address from '../core/Address.js';
|
|
2
|
+
import * as ContractAddress from '../core/ContractAddress.js';
|
|
2
3
|
import * as Errors from '../core/Errors.js';
|
|
3
4
|
import * as Hash from '../core/Hash.js';
|
|
4
5
|
import * as Hex from '../core/Hex.js';
|
|
@@ -25,6 +26,10 @@ export const zeroSalt = `0x${'00'.repeat(32)}`;
|
|
|
25
26
|
const accountDomain = 'tempo:multisig:account';
|
|
26
27
|
/** Domain prefix for native multisig configuration commitments. */
|
|
27
28
|
const configDomain = 'tempo:multisig:config';
|
|
29
|
+
/** Canonical CREATE2 factory for multisig recovery wallets. */
|
|
30
|
+
const recoveryFactory = '0x8a196A227C48Ae8A3E36EebD4E106675CC0f6E64';
|
|
31
|
+
/** Keccak-256 of the canonical recovery wallet creation code. */
|
|
32
|
+
const recoveryWalletInitCodeHash = '0x4b5ff53c5328a10a6ec5224adf16de5e204a47057c98af037ee30b7de660a8a6';
|
|
28
33
|
/** Domain prefix for native multisig owner approvals. */
|
|
29
34
|
const signatureDomain = 'tempo:multisig:signature';
|
|
30
35
|
/**
|
|
@@ -181,8 +186,9 @@ export function fromTuple(tuple) {
|
|
|
181
186
|
/**
|
|
182
187
|
* Derives the stable native multisig account address.
|
|
183
188
|
*
|
|
184
|
-
*
|
|
185
|
-
*
|
|
189
|
+
* The initial config is hashed into a CREATE2 salt using fixed-width
|
|
190
|
+
* big-endian fields, not RLP. The account uses the canonical recovery factory
|
|
191
|
+
* and wallet init-code hash.
|
|
186
192
|
*
|
|
187
193
|
* The address is derived once from the initial version-0 config. Config
|
|
188
194
|
* updates do not change it.
|
|
@@ -210,11 +216,15 @@ export function getAddress(config) {
|
|
|
210
216
|
throw new InvalidConfigError({
|
|
211
217
|
reason: 'account address requires version zero',
|
|
212
218
|
});
|
|
213
|
-
const
|
|
219
|
+
const accountSalt = Hash.keccak256(Hex.concat(Hex.fromString(accountDomain), Hex.padLeft(config.salt ?? zeroSalt, 32), Hex.fromNumber(config.threshold, { size: 1 }), Hex.fromNumber(config.owners.length, { size: 1 }), ...config.owners.flatMap((owner) => [
|
|
214
220
|
owner.owner,
|
|
215
221
|
Hex.fromNumber(owner.weight, { size: 1 }),
|
|
216
222
|
])));
|
|
217
|
-
const account =
|
|
223
|
+
const account = ContractAddress.fromCreate2({
|
|
224
|
+
bytecodeHash: recoveryWalletInitCodeHash,
|
|
225
|
+
from: recoveryFactory,
|
|
226
|
+
salt: accountSalt,
|
|
227
|
+
});
|
|
218
228
|
if (Hex.toBigInt(account) === 0n)
|
|
219
229
|
throw new InvalidConfigError({ reason: 'derived account cannot be zero' });
|
|
220
230
|
if (config.owners.some((owner) => Address.isEqual(owner.owner, account)))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultisigConfig.js","sourceRoot":"","sources":["../../tempo/MultisigConfig.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MultisigConfig.js","sourceRoot":"","sources":["../../tempo/MultisigConfig.ts"],"names":[],"mappings":"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"}
|
package/_esm/version.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as Address from '../core/Address.js';
|
|
2
2
|
import type * as Bytes from '../core/Bytes.js';
|
|
3
|
+
import * as ContractAddress from '../core/ContractAddress.js';
|
|
3
4
|
import * as Errors from '../core/Errors.js';
|
|
4
5
|
import * as Hash from '../core/Hash.js';
|
|
5
6
|
import * as Hex from '../core/Hex.js';
|
|
@@ -173,8 +174,9 @@ export declare function fromTuple(tuple: Tuple): Config;
|
|
|
173
174
|
/**
|
|
174
175
|
* Derives the stable native multisig account address.
|
|
175
176
|
*
|
|
176
|
-
*
|
|
177
|
-
*
|
|
177
|
+
* The initial config is hashed into a CREATE2 salt using fixed-width
|
|
178
|
+
* big-endian fields, not RLP. The account uses the canonical recovery factory
|
|
179
|
+
* and wallet init-code hash.
|
|
178
180
|
*
|
|
179
181
|
* The address is derived once from the initial version-0 config. Config
|
|
180
182
|
* updates do not change it.
|
|
@@ -198,7 +200,7 @@ export declare function fromTuple(tuple: Tuple): Config;
|
|
|
198
200
|
*/
|
|
199
201
|
export declare function getAddress(config: Input): Address.Address;
|
|
200
202
|
export declare namespace getAddress {
|
|
201
|
-
type ErrorType = assert.ErrorType |
|
|
203
|
+
type ErrorType = assert.ErrorType | ContractAddress.fromCreate2.ErrorType | Hash.keccak256.ErrorType | Hex.concat.ErrorType | Hex.fromNumber.ErrorType | Hex.fromString.ErrorType | Errors.GlobalErrorType;
|
|
202
204
|
}
|
|
203
205
|
/**
|
|
204
206
|
* Computes the commitment for a native multisig configuration.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultisigConfig.d.ts","sourceRoot":"","sources":["../../tempo/MultisigConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAExD;;;GAGG;AACH,eAAO,MAAM,eAAe,IAAI,CAAA;AAEhC,oEAAoE;AACpE,eAAO,MAAM,sBAAsB,OAAO,CAAA;AAE1C,oEAAoE;AACpE,eAAO,MAAM,SAAS,KAAK,CAAA;AAE3B,wEAAwE;AACxE,eAAO,MAAM,aAAa,IAAI,CAAA;AAE9B,8DAA8D;AAC9D,eAAO,MAAM,YAAY,MAAO,CAAA;AAEhC,4DAA4D;AAC5D,eAAO,MAAM,UAAU,QAAiB,CAAA;AAExC,gEAAgE;AAChE,eAAO,MAAM,iBAAiB,QAAkB,CAAA;AAEhD,gEAAgE;AAChE,eAAO,MAAM,QAAQ,eAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"MultisigConfig.d.ts","sourceRoot":"","sources":["../../tempo/MultisigConfig.ts"],"names":[],"mappings":"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"}
|
package/_types/version.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1146,17 +1146,17 @@ describe('getSignPayload', () => {
|
|
|
1146
1146
|
describe('deserialize', () => {
|
|
1147
1147
|
test('example: matches the frozen multisig witness vector', () => {
|
|
1148
1148
|
const serialized =
|
|
1149
|
-
'
|
|
1149
|
+
'0xf8f1f85382107980941eff47bc3a10a45d4b230b5d10e37751fe6aa718808080a053535353535353535353535353535353535353535353535353535353535353538094c4a590afa7337e5cd5eb3aa60cacf91c5400044bb89a05f89794c4a590afa7337e5cd5eb3aa60cacf91c5400044bf83ba000000000000000000000000000000000000000000000000000000000000000008001d7d6947e5f4552091a69125d5dfcb7b8c2659029395bdf01f843b8412cfed9350faf80e4115e3c4c967356b80a8e6ee42e4a49ab953c8c8a3537d8d8359bf035a9bea18f32b0da7129cdce3ce701abc09ad8919b93da21a0d57e21451b' as const
|
|
1150
1150
|
const authorization = KeyAuthorization.deserialize(serialized)
|
|
1151
1151
|
|
|
1152
1152
|
expect(authorization).toMatchInlineSnapshot(`
|
|
1153
1153
|
{
|
|
1154
|
-
"account": "
|
|
1154
|
+
"account": "0xc4a590afa7337e5cd5eb3aa60cacf91c5400044b",
|
|
1155
1155
|
"address": "0x1eff47bc3a10a45d4b230b5d10e37751fe6aa718",
|
|
1156
1156
|
"chainId": 4217n,
|
|
1157
1157
|
"isAdmin": false,
|
|
1158
1158
|
"signature": {
|
|
1159
|
-
"account": "
|
|
1159
|
+
"account": "0xc4a590afa7337e5cd5eb3aa60cacf91c5400044b",
|
|
1160
1160
|
"config": {
|
|
1161
1161
|
"owners": [
|
|
1162
1162
|
{
|
|
@@ -99,10 +99,11 @@ describe('fromRpc/toRpc', () => {
|
|
|
99
99
|
})
|
|
100
100
|
|
|
101
101
|
describe('getAddress', () => {
|
|
102
|
-
test('example: matches the frozen
|
|
102
|
+
test('example: matches the frozen CREATE2 vector', () => {
|
|
103
103
|
expect(account).toMatchInlineSnapshot(
|
|
104
|
-
`"
|
|
104
|
+
`"0xf4b916c5aea0fb199bd942389be00db0690c961f"`,
|
|
105
105
|
)
|
|
106
|
+
expect(account).not.toBe('0x8820d1497eeaf4f68e00b2cfc00a2f3b1dbb00da')
|
|
106
107
|
})
|
|
107
108
|
|
|
108
109
|
test('behavior: includes salt, threshold, and owners', () => {
|
|
@@ -115,7 +116,22 @@ describe('getAddress', () => {
|
|
|
115
116
|
salt: `0x${'42'.repeat(32)}`,
|
|
116
117
|
threshold: 2,
|
|
117
118
|
}),
|
|
118
|
-
).toMatchInlineSnapshot(`"
|
|
119
|
+
).toMatchInlineSnapshot(`"0x94040edd3d7b542e0a96e01141bc250d709b4469"`)
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
test('behavior: is stable and binds the salt', () => {
|
|
123
|
+
expect({
|
|
124
|
+
repeated: MultisigConfig.getAddress(config),
|
|
125
|
+
salted: MultisigConfig.getAddress({
|
|
126
|
+
...config,
|
|
127
|
+
salt: `0x${'42'.repeat(32)}`,
|
|
128
|
+
}),
|
|
129
|
+
}).toMatchInlineSnapshot(`
|
|
130
|
+
{
|
|
131
|
+
"repeated": "0xf4b916c5aea0fb199bd942389be00db0690c961f",
|
|
132
|
+
"salted": "0x95e771f514fd6ac5b8bbd62a9b37db86eeed7e38",
|
|
133
|
+
}
|
|
134
|
+
`)
|
|
119
135
|
})
|
|
120
136
|
|
|
121
137
|
test('error: rejects a current configuration', () => {
|
|
@@ -152,7 +168,7 @@ describe('getSignPayload', () => {
|
|
|
152
168
|
expect(
|
|
153
169
|
MultisigConfig.getSignPayload({ account, config, payload }),
|
|
154
170
|
).toMatchInlineSnapshot(
|
|
155
|
-
`"
|
|
171
|
+
`"0xdba6b49849aaef399fbc1de73fe26d520f21846c80c3e5d2486ad56e8df3cee3"`,
|
|
156
172
|
)
|
|
157
173
|
})
|
|
158
174
|
|
|
@@ -214,7 +230,7 @@ describe('assert/validate', () => {
|
|
|
214
230
|
valid: MultisigConfig.validate(boundary),
|
|
215
231
|
}).toMatchInlineSnapshot(`
|
|
216
232
|
{
|
|
217
|
-
"account": "
|
|
233
|
+
"account": "0xa832c9a61d254a157c05edcd856b2cbe4dea8c77",
|
|
218
234
|
"commitment": "0x0dc47a7ab45ffa21a01bfd115427e26617b5a57d7ccbea57db2fd4537ba96f56",
|
|
219
235
|
"rlpHash": "0xbaf0d030add91caaa10815d2e99c942f1e39b0d199216973781adb4fc1af6955",
|
|
220
236
|
"rlpLength": 1145,
|
package/tempo/MultisigConfig.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as Address from '../core/Address.js'
|
|
2
2
|
import type * as Bytes from '../core/Bytes.js'
|
|
3
|
+
import * as ContractAddress from '../core/ContractAddress.js'
|
|
3
4
|
import * as Errors from '../core/Errors.js'
|
|
4
5
|
import * as Hash from '../core/Hash.js'
|
|
5
6
|
import * as Hex from '../core/Hex.js'
|
|
@@ -38,6 +39,13 @@ const accountDomain = 'tempo:multisig:account'
|
|
|
38
39
|
/** Domain prefix for native multisig configuration commitments. */
|
|
39
40
|
const configDomain = 'tempo:multisig:config'
|
|
40
41
|
|
|
42
|
+
/** Canonical CREATE2 factory for multisig recovery wallets. */
|
|
43
|
+
const recoveryFactory = '0x8a196A227C48Ae8A3E36EebD4E106675CC0f6E64'
|
|
44
|
+
|
|
45
|
+
/** Keccak-256 of the canonical recovery wallet creation code. */
|
|
46
|
+
const recoveryWalletInitCodeHash =
|
|
47
|
+
'0x4b5ff53c5328a10a6ec5224adf16de5e204a47057c98af037ee30b7de660a8a6'
|
|
48
|
+
|
|
41
49
|
/** Domain prefix for native multisig owner approvals. */
|
|
42
50
|
const signatureDomain = 'tempo:multisig:signature'
|
|
43
51
|
|
|
@@ -309,8 +317,9 @@ export function fromTuple(tuple: Tuple): Config {
|
|
|
309
317
|
/**
|
|
310
318
|
* Derives the stable native multisig account address.
|
|
311
319
|
*
|
|
312
|
-
*
|
|
313
|
-
*
|
|
320
|
+
* The initial config is hashed into a CREATE2 salt using fixed-width
|
|
321
|
+
* big-endian fields, not RLP. The account uses the canonical recovery factory
|
|
322
|
+
* and wallet init-code hash.
|
|
314
323
|
*
|
|
315
324
|
* The address is derived once from the initial version-0 config. Config
|
|
316
325
|
* updates do not change it.
|
|
@@ -338,7 +347,7 @@ export function getAddress(config: Input): Address.Address {
|
|
|
338
347
|
throw new InvalidConfigError({
|
|
339
348
|
reason: 'account address requires version zero',
|
|
340
349
|
})
|
|
341
|
-
const
|
|
350
|
+
const accountSalt = Hash.keccak256(
|
|
342
351
|
Hex.concat(
|
|
343
352
|
Hex.fromString(accountDomain),
|
|
344
353
|
Hex.padLeft(config.salt ?? zeroSalt, 32),
|
|
@@ -350,7 +359,11 @@ export function getAddress(config: Input): Address.Address {
|
|
|
350
359
|
]),
|
|
351
360
|
),
|
|
352
361
|
)
|
|
353
|
-
const account =
|
|
362
|
+
const account = ContractAddress.fromCreate2({
|
|
363
|
+
bytecodeHash: recoveryWalletInitCodeHash,
|
|
364
|
+
from: recoveryFactory,
|
|
365
|
+
salt: accountSalt,
|
|
366
|
+
})
|
|
354
367
|
if (Hex.toBigInt(account) === 0n)
|
|
355
368
|
throw new InvalidConfigError({ reason: 'derived account cannot be zero' })
|
|
356
369
|
if (config.owners.some((owner) => Address.isEqual(owner.owner, account)))
|
|
@@ -363,12 +376,11 @@ export function getAddress(config: Input): Address.Address {
|
|
|
363
376
|
export declare namespace getAddress {
|
|
364
377
|
type ErrorType =
|
|
365
378
|
| assert.ErrorType
|
|
366
|
-
|
|
|
379
|
+
| ContractAddress.fromCreate2.ErrorType
|
|
367
380
|
| Hash.keccak256.ErrorType
|
|
368
381
|
| Hex.concat.ErrorType
|
|
369
382
|
| Hex.fromNumber.ErrorType
|
|
370
383
|
| Hex.fromString.ErrorType
|
|
371
|
-
| Hex.slice.ErrorType
|
|
372
384
|
| Errors.GlobalErrorType
|
|
373
385
|
}
|
|
374
386
|
|
|
@@ -149,8 +149,8 @@ describe('getHash', () => {
|
|
|
149
149
|
}),
|
|
150
150
|
}).toMatchInlineSnapshot(`
|
|
151
151
|
{
|
|
152
|
-
"keyAuthorization": "
|
|
153
|
-
"transaction": "
|
|
152
|
+
"keyAuthorization": "0xd903cd2c94f6a1526a6f79da6f87087c10b26e06d4d4bc1624ce4498961a3b04",
|
|
153
|
+
"transaction": "0xc93c1dc27cc9fb7616d61f97962e4fab8b39af0d1dace8f8b8730cb6922bd096",
|
|
154
154
|
}
|
|
155
155
|
`)
|
|
156
156
|
})
|
|
@@ -303,10 +303,10 @@ describe('selectApprovals', () => {
|
|
|
303
303
|
"complete": {
|
|
304
304
|
"approvals": [
|
|
305
305
|
"0x07e1ed8ea0e9601e5546b0a03aed683df3601407",
|
|
306
|
-
"
|
|
306
|
+
"0xf75618474e5f7fd9ef17dd85167a5b1e1f19b84b",
|
|
307
307
|
],
|
|
308
308
|
"selectedApprovals": [
|
|
309
|
-
"
|
|
309
|
+
"0xf75618474e5f7fd9ef17dd85167a5b1e1f19b84b",
|
|
310
310
|
],
|
|
311
311
|
"signatureCount": 1,
|
|
312
312
|
"threshold": 2,
|
|
@@ -315,7 +315,7 @@ describe('selectApprovals', () => {
|
|
|
315
315
|
"partial": {
|
|
316
316
|
"approvals": [
|
|
317
317
|
"0x07e1ed8ea0e9601e5546b0a03aed683df3601407",
|
|
318
|
-
"
|
|
318
|
+
"0xf75618474e5f7fd9ef17dd85167a5b1e1f19b84b",
|
|
319
319
|
],
|
|
320
320
|
"selectedApprovals": [
|
|
321
321
|
"0x07e1ed8ea0e9601e5546b0a03aed683df3601407",
|
|
@@ -393,7 +393,7 @@ describe('selectApprovals', () => {
|
|
|
393
393
|
hash,
|
|
394
394
|
}),
|
|
395
395
|
).rejects.toThrowErrorMatchingInlineSnapshot(
|
|
396
|
-
`[MultisigOperation.InvalidApprovalError: Invalid multisig approval: nested multisig owner
|
|
396
|
+
`[MultisigOperation.InvalidApprovalError: Invalid multisig approval: nested multisig owner 0x5b7c564e95bde16197e73f9eaa9c7413f11f49ad has conflicting config witnesses.]`,
|
|
397
397
|
)
|
|
398
398
|
})
|
|
399
399
|
|
|
@@ -672,7 +672,7 @@ describe('selectApprovals', () => {
|
|
|
672
672
|
hash,
|
|
673
673
|
}),
|
|
674
674
|
).rejects.toThrowErrorMatchingInlineSnapshot(
|
|
675
|
-
`[MultisigOperation.InvalidApprovalError: Invalid multisig approval: nested multisig owner
|
|
675
|
+
`[MultisigOperation.InvalidApprovalError: Invalid multisig approval: nested multisig owner 0x4e51c0503aab130b1a358e8eab4c6302618fb3a6 is invalid.]`,
|
|
676
676
|
)
|
|
677
677
|
})
|
|
678
678
|
})
|
|
@@ -725,14 +725,14 @@ describe('serializeKeyAuthorization', () => {
|
|
|
725
725
|
expect(results).toMatchInlineSnapshot(`
|
|
726
726
|
[
|
|
727
727
|
{
|
|
728
|
-
"account": "
|
|
729
|
-
"hash": "
|
|
728
|
+
"account": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
729
|
+
"hash": "0x52562f8b8042498f83189316f0aacda4d5b80468f0001300829c4d353db5f101",
|
|
730
730
|
"signatureCount": 2,
|
|
731
731
|
"version": 1n,
|
|
732
732
|
},
|
|
733
733
|
{
|
|
734
|
-
"account": "
|
|
735
|
-
"hash": "
|
|
734
|
+
"account": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
735
|
+
"hash": "0x948de4ae52c7cd35151c2ddcd31c97ea89662e83bd18a3cbc323894a1fd8ca06",
|
|
736
736
|
"signatureCount": 2,
|
|
737
737
|
"version": 0n,
|
|
738
738
|
},
|
|
@@ -826,15 +826,15 @@ describe('serializeTransaction', () => {
|
|
|
826
826
|
expect(results).toMatchInlineSnapshot(`
|
|
827
827
|
[
|
|
828
828
|
{
|
|
829
|
-
"account": "
|
|
830
|
-
"hash": "
|
|
829
|
+
"account": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
830
|
+
"hash": "0x2d4748a76d91da5fd3d762cb0f925de32347fdbd89d23356d481b526e3d3ab10",
|
|
831
831
|
"signatureCount": 2,
|
|
832
832
|
"type": "0x76",
|
|
833
833
|
"version": 1n,
|
|
834
834
|
},
|
|
835
835
|
{
|
|
836
|
-
"account": "
|
|
837
|
-
"hash": "
|
|
836
|
+
"account": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
837
|
+
"hash": "0x2bf7e539779104921d32758dc184ece6aa8872bfb3b86e2f4d8e0ba1d85ee821",
|
|
838
838
|
"signatureCount": 2,
|
|
839
839
|
"type": "0x76",
|
|
840
840
|
"version": 0n,
|
|
@@ -911,7 +911,7 @@ describe('serializeTransaction', () => {
|
|
|
911
911
|
[
|
|
912
912
|
{
|
|
913
913
|
"feePayerSignature": null,
|
|
914
|
-
"from": "
|
|
914
|
+
"from": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
915
915
|
"signatureCount": 2,
|
|
916
916
|
"type": "0x78",
|
|
917
917
|
},
|
|
@@ -921,7 +921,7 @@ describe('serializeTransaction', () => {
|
|
|
921
921
|
"s": 6n,
|
|
922
922
|
"yParity": 0,
|
|
923
923
|
},
|
|
924
|
-
"from": "
|
|
924
|
+
"from": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
925
925
|
"signatureCount": 2,
|
|
926
926
|
"type": "0x78",
|
|
927
927
|
},
|
|
@@ -993,7 +993,7 @@ describe('from', () => {
|
|
|
993
993
|
expect({ pending, submitting, success }).toMatchInlineSnapshot(`
|
|
994
994
|
{
|
|
995
995
|
"pending": {
|
|
996
|
-
"account": "
|
|
996
|
+
"account": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
997
997
|
"approvals": [
|
|
998
998
|
"0x01000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000065ecbe4d1a6330a44c8f7ef951d4bf165e6c6b721efada985fb41661bc6e7fd6c8734640c4998ff7e374b06ce1a64a2ecd82ab036384fb83d9a79b127a27d503200",
|
|
999
999
|
],
|
|
@@ -1013,7 +1013,7 @@ describe('from', () => {
|
|
|
1013
1013
|
"version": 1n,
|
|
1014
1014
|
},
|
|
1015
1015
|
"createdAt": 1,
|
|
1016
|
-
"hash": "
|
|
1016
|
+
"hash": "0xc93c1dc27cc9fb7616d61f97962e4fab8b39af0d1dace8f8b8730cb6922bd096",
|
|
1017
1017
|
"signatureCount": 1,
|
|
1018
1018
|
"status": "pending",
|
|
1019
1019
|
"threshold": 2,
|
|
@@ -1023,7 +1023,7 @@ describe('from', () => {
|
|
|
1023
1023
|
"weight": 1,
|
|
1024
1024
|
},
|
|
1025
1025
|
"submitting": {
|
|
1026
|
-
"account": "
|
|
1026
|
+
"account": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
1027
1027
|
"approvals": [
|
|
1028
1028
|
"0x01000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000065ecbe4d1a6330a44c8f7ef951d4bf165e6c6b721efada985fb41661bc6e7fd6c8734640c4998ff7e374b06ce1a64a2ecd82ab036384fb83d9a79b127a27d503200",
|
|
1029
1029
|
"0x01000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000047cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc4766997807775510db8ed040293d9ac69f7430dbba7dade63ce982299e04b79d227873d100",
|
|
@@ -1045,7 +1045,7 @@ describe('from', () => {
|
|
|
1045
1045
|
},
|
|
1046
1046
|
"createdAt": 1,
|
|
1047
1047
|
"expiresAt": 10,
|
|
1048
|
-
"hash": "
|
|
1048
|
+
"hash": "0xc93c1dc27cc9fb7616d61f97962e4fab8b39af0d1dace8f8b8730cb6922bd096",
|
|
1049
1049
|
"signatureCount": 2,
|
|
1050
1050
|
"status": "submitting",
|
|
1051
1051
|
"submissionId": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
|
@@ -1056,7 +1056,7 @@ describe('from', () => {
|
|
|
1056
1056
|
"weight": 2,
|
|
1057
1057
|
},
|
|
1058
1058
|
"success": {
|
|
1059
|
-
"account": "
|
|
1059
|
+
"account": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
1060
1060
|
"approvals": [
|
|
1061
1061
|
"0x01000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000065ecbe4d1a6330a44c8f7ef951d4bf165e6c6b721efada985fb41661bc6e7fd6c8734640c4998ff7e374b06ce1a64a2ecd82ab036384fb83d9a79b127a27d503200",
|
|
1062
1062
|
"0x01000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000047cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc4766997807775510db8ed040293d9ac69f7430dbba7dade63ce982299e04b79d227873d100",
|
|
@@ -1077,7 +1077,7 @@ describe('from', () => {
|
|
|
1077
1077
|
"version": 1n,
|
|
1078
1078
|
},
|
|
1079
1079
|
"createdAt": 1,
|
|
1080
|
-
"hash": "
|
|
1080
|
+
"hash": "0xc93c1dc27cc9fb7616d61f97962e4fab8b39af0d1dace8f8b8730cb6922bd096",
|
|
1081
1081
|
"signatureCount": 2,
|
|
1082
1082
|
"status": "success",
|
|
1083
1083
|
"threshold": 2,
|
|
@@ -1118,7 +1118,7 @@ describe('from', () => {
|
|
|
1118
1118
|
},
|
|
1119
1119
|
`
|
|
1120
1120
|
{
|
|
1121
|
-
"account": "
|
|
1121
|
+
"account": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
1122
1122
|
"approvals": [
|
|
1123
1123
|
"0x01000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000065ecbe4d1a6330a44c8f7ef951d4bf165e6c6b721efada985fb41661bc6e7fd6c8734640c4998ff7e374b06ce1a64a2ecd82ab036384fb83d9a79b127a27d503200",
|
|
1124
1124
|
],
|
|
@@ -1195,7 +1195,7 @@ describe('from', () => {
|
|
|
1195
1195
|
},
|
|
1196
1196
|
`
|
|
1197
1197
|
{
|
|
1198
|
-
"account": "
|
|
1198
|
+
"account": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
1199
1199
|
"approvals": [
|
|
1200
1200
|
"0x01000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000065ecbe4d1a6330a44c8f7ef951d4bf165e6c6b721efada985fb41661bc6e7fd6c8734640c4998ff7e374b06ce1a64a2ecd82ab036384fb83d9a79b127a27d503200",
|
|
1201
1201
|
],
|
|
@@ -1255,7 +1255,7 @@ describe('from', () => {
|
|
|
1255
1255
|
expect({ pending, success }).toMatchInlineSnapshot(`
|
|
1256
1256
|
{
|
|
1257
1257
|
"pending": {
|
|
1258
|
-
"account": "
|
|
1258
|
+
"account": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
1259
1259
|
"approvals": [
|
|
1260
1260
|
"0x01000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000065ecbe4d1a6330a44c8f7ef951d4bf165e6c6b721efada985fb41661bc6e7fd6c8734640c4998ff7e374b06ce1a64a2ecd82ab036384fb83d9a79b127a27d503200",
|
|
1261
1261
|
],
|
|
@@ -1275,8 +1275,8 @@ describe('from', () => {
|
|
|
1275
1275
|
"version": 1n,
|
|
1276
1276
|
},
|
|
1277
1277
|
"createdAt": 1,
|
|
1278
|
-
"hash": "
|
|
1279
|
-
"keyAuthorization": "
|
|
1278
|
+
"hash": "0xd903cd2c94f6a1526a6f79da6f87087c10b26e06d4d4bc1624ce4498961a3b04",
|
|
1279
|
+
"keyAuthorization": "0xf838f782107980943333333333333333333333333333333333333333846b49d200808080809417e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
1280
1280
|
"signatureCount": 1,
|
|
1281
1281
|
"status": "pending",
|
|
1282
1282
|
"threshold": 2,
|
|
@@ -1285,7 +1285,7 @@ describe('from', () => {
|
|
|
1285
1285
|
"weight": 1,
|
|
1286
1286
|
},
|
|
1287
1287
|
"success": {
|
|
1288
|
-
"account": "
|
|
1288
|
+
"account": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
1289
1289
|
"approvals": [
|
|
1290
1290
|
"0x01000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000065ecbe4d1a6330a44c8f7ef951d4bf165e6c6b721efada985fb41661bc6e7fd6c8734640c4998ff7e374b06ce1a64a2ecd82ab036384fb83d9a79b127a27d503200",
|
|
1291
1291
|
"0x01000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000047cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc4766997807775510db8ed040293d9ac69f7430dbba7dade63ce982299e04b79d227873d100",
|
|
@@ -1306,8 +1306,8 @@ describe('from', () => {
|
|
|
1306
1306
|
"version": 1n,
|
|
1307
1307
|
},
|
|
1308
1308
|
"createdAt": 1,
|
|
1309
|
-
"hash": "
|
|
1310
|
-
"keyAuthorization": "
|
|
1309
|
+
"hash": "0xd903cd2c94f6a1526a6f79da6f87087c10b26e06d4d4bc1624ce4498961a3b04",
|
|
1310
|
+
"keyAuthorization": "0xf901b3f782107980943333333333333333333333333333333333333333846b49d200808080809417e90f73f4c7c75dc01b00b262e7b95ed3086bd0b9017805f901749417e90f73f4c7c75dc01b00b262e7b95ed3086bd0f852a000000000000000000000000000000000000000000000000000000000000000000102eed69407e1ed8ea0e9601e5546b0a03aed683df360140701d694288f0cd85005f34168f731a468aef268c2f9456f01f90108b88201000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000065ecbe4d1a6330a44c8f7ef951d4bf165e6c6b721efada985fb41661bc6e7fd6c8734640c4998ff7e374b06ce1a64a2ecd82ab036384fb83d9a79b127a27d503200b88201000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000047cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc4766997807775510db8ed040293d9ac69f7430dbba7dade63ce982299e04b79d227873d100",
|
|
1311
1311
|
"signatureCount": 2,
|
|
1312
1312
|
"status": "success",
|
|
1313
1313
|
"threshold": 2,
|
|
@@ -1356,7 +1356,7 @@ describe('from', () => {
|
|
|
1356
1356
|
},
|
|
1357
1357
|
`
|
|
1358
1358
|
{
|
|
1359
|
-
"account": "
|
|
1359
|
+
"account": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
1360
1360
|
"approvals": [
|
|
1361
1361
|
"0x01000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000065ecbe4d1a6330a44c8f7ef951d4bf165e6c6b721efada985fb41661bc6e7fd6c8734640c4998ff7e374b06ce1a64a2ecd82ab036384fb83d9a79b127a27d503200",
|
|
1362
1362
|
"0x01000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000047cf27b188d034f7e8a52380304b51ac3c08969e277f21b35a60b48fc4766997807775510db8ed040293d9ac69f7430dbba7dade63ce982299e04b79d227873d100",
|
|
@@ -1402,7 +1402,7 @@ describe('RPC conversion', () => {
|
|
|
1402
1402
|
expect({ keyAuthorizationRpc, transactionRpc }).toMatchInlineSnapshot(`
|
|
1403
1403
|
{
|
|
1404
1404
|
"keyAuthorizationRpc": {
|
|
1405
|
-
"account": "
|
|
1405
|
+
"account": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
1406
1406
|
"approvals": [
|
|
1407
1407
|
"0x01000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000065ecbe4d1a6330a44c8f7ef951d4bf165e6c6b721efada985fb41661bc6e7fd6c8734640c4998ff7e374b06ce1a64a2ecd82ab036384fb83d9a79b127a27d503200",
|
|
1408
1408
|
],
|
|
@@ -1422,8 +1422,8 @@ describe('RPC conversion', () => {
|
|
|
1422
1422
|
"version": "0x1",
|
|
1423
1423
|
},
|
|
1424
1424
|
"createdAt": 1,
|
|
1425
|
-
"hash": "
|
|
1426
|
-
"keyAuthorization": "
|
|
1425
|
+
"hash": "0xd903cd2c94f6a1526a6f79da6f87087c10b26e06d4d4bc1624ce4498961a3b04",
|
|
1426
|
+
"keyAuthorization": "0xf838f782107980943333333333333333333333333333333333333333846b49d200808080809417e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
1427
1427
|
"signatureCount": 1,
|
|
1428
1428
|
"status": "pending",
|
|
1429
1429
|
"threshold": 2,
|
|
@@ -1432,7 +1432,7 @@ describe('RPC conversion', () => {
|
|
|
1432
1432
|
"weight": 1,
|
|
1433
1433
|
},
|
|
1434
1434
|
"transactionRpc": {
|
|
1435
|
-
"account": "
|
|
1435
|
+
"account": "0x17e90f73f4c7c75dc01b00b262e7b95ed3086bd0",
|
|
1436
1436
|
"approvals": [
|
|
1437
1437
|
"0x01000000000000000000000000000000000000000000000000000000000000000500000000000000000000000000000000000000000000000000000000000000065ecbe4d1a6330a44c8f7ef951d4bf165e6c6b721efada985fb41661bc6e7fd6c8734640c4998ff7e374b06ce1a64a2ecd82ab036384fb83d9a79b127a27d503200",
|
|
1438
1438
|
],
|
|
@@ -1452,7 +1452,7 @@ describe('RPC conversion', () => {
|
|
|
1452
1452
|
"version": "0x1",
|
|
1453
1453
|
},
|
|
1454
1454
|
"createdAt": 1,
|
|
1455
|
-
"hash": "
|
|
1455
|
+
"hash": "0xc93c1dc27cc9fb7616d61f97962e4fab8b39af0d1dace8f8b8730cb6922bd096",
|
|
1456
1456
|
"signatureCount": 1,
|
|
1457
1457
|
"status": "pending",
|
|
1458
1458
|
"threshold": 2,
|
|
@@ -69,7 +69,7 @@ const signature_keychain_webauthn = SignatureEnvelope.from({
|
|
|
69
69
|
})
|
|
70
70
|
|
|
71
71
|
const signature_multisig_rpc =
|
|
72
|
-
'
|
|
72
|
+
'0xf89794c4a590afa7337e5cd5eb3aa60cacf91c5400044bf83ba000000000000000000000000000000000000000000000000000000000000000008001d7d6947e5f4552091a69125d5dfcb7b8c2659029395bdf01f843b841869437e01f64bebeb78a8a6b30bfd3a993819c8cad82c807515d9b9e9b36f98535dfaa5eebc597715d05f6ce4927747f14fa4cd2acc717fdcd3877146437f8f41b' as const
|
|
73
73
|
|
|
74
74
|
describe('assert', () => {
|
|
75
75
|
describe('secp256k1', () => {
|
|
@@ -1134,7 +1134,7 @@ describe('from', () => {
|
|
|
1134
1134
|
},
|
|
1135
1135
|
`
|
|
1136
1136
|
{
|
|
1137
|
-
"account": "
|
|
1137
|
+
"account": "0xf4b916c5aea0fb199bd942389be00db0690c961f",
|
|
1138
1138
|
"config": {
|
|
1139
1139
|
"owners": [
|
|
1140
1140
|
{
|
|
@@ -2478,7 +2478,7 @@ describe('fromRpc', () => {
|
|
|
2478
2478
|
SignatureEnvelope.fromRpc(signature_multisig_rpc),
|
|
2479
2479
|
).toMatchInlineSnapshot(`
|
|
2480
2480
|
{
|
|
2481
|
-
"account": "
|
|
2481
|
+
"account": "0xc4a590afa7337e5cd5eb3aa60cacf91c5400044b",
|
|
2482
2482
|
"config": {
|
|
2483
2483
|
"owners": [
|
|
2484
2484
|
{
|
|
@@ -2511,7 +2511,7 @@ describe('fromRpc', () => {
|
|
|
2511
2511
|
).toThrowErrorMatchingInlineSnapshot(`
|
|
2512
2512
|
[SignatureEnvelope.InvalidSerializedError: Unable to deserialize signature envelope: invalid multisig wire shape: expected exactly three fields
|
|
2513
2513
|
|
|
2514
|
-
Serialized:
|
|
2514
|
+
Serialized: 0x0505f89794c4a590afa7337e5cd5eb3aa60cacf91c5400044bf83ba000000000000000000000000000000000000000000000000000000000000000008001d7d6947e5f4552091a69125d5dfcb7b8c2659029395bdf01f843b841869437e01f64bebeb78a8a6b30bfd3a993819c8cad82c807515d9b9e9b36f98535dfaa5eebc597715d05f6ce4927747f14fa4cd2acc717fdcd3877146437f8f41b]
|
|
2515
2515
|
`)
|
|
2516
2516
|
})
|
|
2517
2517
|
|
|
@@ -2521,19 +2521,19 @@ describe('fromRpc', () => {
|
|
|
2521
2521
|
).toThrowErrorMatchingInlineSnapshot(`
|
|
2522
2522
|
[SignatureEnvelope.InvalidSerializedError: Unable to deserialize signature envelope: invalid multisig RPC signature
|
|
2523
2523
|
|
|
2524
|
-
Serialized:
|
|
2524
|
+
Serialized: 0xf89794c4a590afa7337e5cd5eb3aa60cacf91c5400044bf83ba000000000000000000000000000000000000000000000000000000000000000008001d7d6947e5f4552091a69125d5dfcb7b8c2659029395bdf01f843b841869437e01f64bebeb78a8a6b30bfd3a993819c8cad82c807515d9b9e9b36f98535dfaa5eebc597715d05f6ce4927747f14fa4cd2acc717fdcd3877146437f8f41b00]
|
|
2525
2525
|
`)
|
|
2526
2526
|
})
|
|
2527
2527
|
|
|
2528
2528
|
test('error: rejects a structured multisig signature', () => {
|
|
2529
2529
|
expect(() =>
|
|
2530
2530
|
SignatureEnvelope.fromRpc({
|
|
2531
|
-
account: '
|
|
2531
|
+
account: '0xc4a590afa7337e5cd5eb3aa60cacf91c5400044b',
|
|
2532
2532
|
config: {},
|
|
2533
2533
|
signatures: [],
|
|
2534
2534
|
} as never),
|
|
2535
2535
|
).toThrowErrorMatchingInlineSnapshot(
|
|
2536
|
-
`[SignatureEnvelope.CoercionError: Unable to coerce value (\`{"account":"
|
|
2536
|
+
`[SignatureEnvelope.CoercionError: Unable to coerce value (\`{"account":"0xc4a590afa7337e5cd5eb3aa60cacf91c5400044b","config":{},"signatures":[]}\`) to a valid signature envelope.]`,
|
|
2537
2537
|
)
|
|
2538
2538
|
})
|
|
2539
2539
|
})
|
|
@@ -2937,18 +2937,18 @@ describe('CoercionError', () => {
|
|
|
2937
2937
|
|
|
2938
2938
|
describe('multisig', () => {
|
|
2939
2939
|
const initial =
|
|
2940
|
-
'
|
|
2940
|
+
'0x05f89794c4a590afa7337e5cd5eb3aa60cacf91c5400044bf83ba000000000000000000000000000000000000000000000000000000000000000008001d7d6947e5f4552091a69125d5dfcb7b8c2659029395bdf01f843b841869437e01f64bebeb78a8a6b30bfd3a993819c8cad82c807515d9b9e9b36f98535dfaa5eebc597715d05f6ce4927747f14fa4cd2acc717fdcd3877146437f8f41b' as const
|
|
2941
2941
|
const current =
|
|
2942
|
-
'
|
|
2942
|
+
'0x05f89794c4a590afa7337e5cd5eb3aa60cacf91c5400044bf83ba000000000000000000000000000000000000000000000000000000000000000000101d7d6942b5ad5c4795c026514f8317c7a215e218dccd6cf01f843b8414a0e5b5b4a90f08e6e8d676a73a22dc2cf022ffdcc9299512b5d9a6daf66e0504a395a2ef6f6c0f173910b875c45d01aa66d928e56ba6f49bbc8186f80268bf51b' as const
|
|
2943
2943
|
const nested =
|
|
2944
|
-
'
|
|
2944
|
+
'0x05f8f0945f0287385ec182f906c238bec5f87692d48b23f2f83ba033333333333333333333333333333333333333333333333333333333333333338001d7d69470845f2897b639686cb383799d605c52315d785501f89cb89a05f8979470845f2897b639686cb383799d605c52315d7855f83ba022222222222222222222222222222222222222222222222222222222222222228001d7d6946813eb9362372eef6200f3b1dbc3f819671cba6901f843b841032aa6f3ea7b0b7069720d0f3891983c493d149326c5c957d864ed7371b8475e3e95325079b24491f4b6d68920e4b3bacd7c6094df6ed88b8674864ab559c8fb1b' as const
|
|
2945
2945
|
|
|
2946
2946
|
test('example: decodes and re-encodes the frozen initial signature', () => {
|
|
2947
2947
|
const envelope = SignatureEnvelope.deserialize(initial)
|
|
2948
2948
|
|
|
2949
2949
|
expect(envelope).toMatchInlineSnapshot(`
|
|
2950
2950
|
{
|
|
2951
|
-
"account": "
|
|
2951
|
+
"account": "0xc4a590afa7337e5cd5eb3aa60cacf91c5400044b",
|
|
2952
2952
|
"config": {
|
|
2953
2953
|
"owners": [
|
|
2954
2954
|
{
|
|
@@ -2981,7 +2981,7 @@ describe('multisig', () => {
|
|
|
2981
2981
|
|
|
2982
2982
|
expect(envelope).toMatchInlineSnapshot(`
|
|
2983
2983
|
{
|
|
2984
|
-
"account": "
|
|
2984
|
+
"account": "0xc4a590afa7337e5cd5eb3aa60cacf91c5400044b",
|
|
2985
2985
|
"config": {
|
|
2986
2986
|
"owners": [
|
|
2987
2987
|
{
|
|
@@ -3014,11 +3014,11 @@ describe('multisig', () => {
|
|
|
3014
3014
|
|
|
3015
3015
|
expect(envelope).toMatchInlineSnapshot(`
|
|
3016
3016
|
{
|
|
3017
|
-
"account": "
|
|
3017
|
+
"account": "0x5f0287385ec182f906c238bec5f87692d48b23f2",
|
|
3018
3018
|
"config": {
|
|
3019
3019
|
"owners": [
|
|
3020
3020
|
{
|
|
3021
|
-
"owner": "
|
|
3021
|
+
"owner": "0x70845f2897b639686cb383799d605c52315d7855",
|
|
3022
3022
|
"weight": 1,
|
|
3023
3023
|
},
|
|
3024
3024
|
],
|
|
@@ -3028,7 +3028,7 @@ describe('multisig', () => {
|
|
|
3028
3028
|
},
|
|
3029
3029
|
"signatures": [
|
|
3030
3030
|
{
|
|
3031
|
-
"account": "
|
|
3031
|
+
"account": "0x70845f2897b639686cb383799d605c52315d7855",
|
|
3032
3032
|
"config": {
|
|
3033
3033
|
"owners": [
|
|
3034
3034
|
{
|
|
@@ -3078,7 +3078,7 @@ describe('multisig', () => {
|
|
|
3078
3078
|
|
|
3079
3079
|
expect(decoded).toMatchInlineSnapshot(`
|
|
3080
3080
|
[
|
|
3081
|
-
"
|
|
3081
|
+
"0xc4a590afa7337e5cd5eb3aa60cacf91c5400044b",
|
|
3082
3082
|
[
|
|
3083
3083
|
"0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
3084
3084
|
"0x",
|
|
@@ -3107,8 +3107,8 @@ describe('multisig', () => {
|
|
|
3107
3107
|
|
|
3108
3108
|
expect(rpc).toMatchInlineSnapshot(`
|
|
3109
3109
|
{
|
|
3110
|
-
"current": "
|
|
3111
|
-
"initial": "
|
|
3110
|
+
"current": "0xf89794c4a590afa7337e5cd5eb3aa60cacf91c5400044bf83ba000000000000000000000000000000000000000000000000000000000000000000101d7d6942b5ad5c4795c026514f8317c7a215e218dccd6cf01f843b8414a0e5b5b4a90f08e6e8d676a73a22dc2cf022ffdcc9299512b5d9a6daf66e0504a395a2ef6f6c0f173910b875c45d01aa66d928e56ba6f49bbc8186f80268bf51b",
|
|
3111
|
+
"initial": "0xf89794c4a590afa7337e5cd5eb3aa60cacf91c5400044bf83ba000000000000000000000000000000000000000000000000000000000000000008001d7d6947e5f4552091a69125d5dfcb7b8c2659029395bdf01f843b841869437e01f64bebeb78a8a6b30bfd3a993819c8cad82c807515d9b9e9b36f98535dfaa5eebc597715d05f6ce4927747f14fa4cd2acc717fdcd3877146437f8f41b",
|
|
3112
3112
|
}
|
|
3113
3113
|
`)
|
|
3114
3114
|
expect(SignatureEnvelope.fromRpc(rpc.initial)).toStrictEqual(
|
|
@@ -3183,7 +3183,7 @@ describe('multisig', () => {
|
|
|
3183
3183
|
signatureCount: envelope.signatures.length,
|
|
3184
3184
|
}).toMatchInlineSnapshot(`
|
|
3185
3185
|
{
|
|
3186
|
-
"hash": "
|
|
3186
|
+
"hash": "0x507fa2d2bc6cf5e7753d4d7cb92fe3d199f64c6eaa9a0bd1d14bfb366028a379",
|
|
3187
3187
|
"length": 787,
|
|
3188
3188
|
"signatureCount": 8,
|
|
3189
3189
|
}
|
|
@@ -3323,14 +3323,14 @@ describe('multisig', () => {
|
|
|
3323
3323
|
{
|
|
3324
3324
|
name: 'two fields',
|
|
3325
3325
|
value: Rlp.fromHex([
|
|
3326
|
-
'
|
|
3326
|
+
'0xc4a590afa7337e5cd5eb3aa60cacf91c5400044b',
|
|
3327
3327
|
[Hex.slice(initial, -65)],
|
|
3328
3328
|
]),
|
|
3329
3329
|
},
|
|
3330
3330
|
{
|
|
3331
3331
|
name: 'trailing field',
|
|
3332
3332
|
value: Rlp.fromHex([
|
|
3333
|
-
'
|
|
3333
|
+
'0xc4a590afa7337e5cd5eb3aa60cacf91c5400044b',
|
|
3334
3334
|
MultisigConfig.toTuple(
|
|
3335
3335
|
MultisigConfig.from({
|
|
3336
3336
|
owners: [
|
|
@@ -3411,7 +3411,7 @@ describe('multisig', () => {
|
|
|
3411
3411
|
const malformed = Hex.concat(
|
|
3412
3412
|
'0x05',
|
|
3413
3413
|
Rlp.fromHex([
|
|
3414
|
-
'
|
|
3414
|
+
'0xc4a590afa7337e5cd5eb3aa60cacf91c5400044b',
|
|
3415
3415
|
value as never,
|
|
3416
3416
|
[Hex.slice(initial, -65)],
|
|
3417
3417
|
]),
|
|
@@ -2,7 +2,7 @@ import { Transaction } from 'ox/tempo'
|
|
|
2
2
|
import { describe, expect, test } from 'vitest'
|
|
3
3
|
|
|
4
4
|
const multisigRpcSignature =
|
|
5
|
-
'
|
|
5
|
+
'0xf89794c4a590afa7337e5cd5eb3aa60cacf91c5400044bf83ba000000000000000000000000000000000000000000000000000000000000000008001d7d6947e5f4552091a69125d5dfcb7b8c2659029395bdf01f843b841869437e01f64bebeb78a8a6b30bfd3a993819c8cad82c807515d9b9e9b36f98535dfaa5eebc597715d05f6ce4927747f14fa4cd2acc717fdcd3877146437f8f41b' as const
|
|
6
6
|
|
|
7
7
|
describe('fromRpc', () => {
|
|
8
8
|
test('default', () => {
|
|
@@ -541,7 +541,7 @@ describe('roundtrip', () => {
|
|
|
541
541
|
calls: [],
|
|
542
542
|
chainId: '0x1',
|
|
543
543
|
feeToken: '0x20c0000000000000000000000000000000000000',
|
|
544
|
-
from: '
|
|
544
|
+
from: '0xc4a590afa7337e5cd5eb3aa60cacf91c5400044b',
|
|
545
545
|
gas: '0x43f5d',
|
|
546
546
|
hash: '0x353fdfc38a2f26115daadee9f5b8392ce62b84f410957967e2ed56b35338cdd0',
|
|
547
547
|
maxFeePerGas: '0x2',
|
|
@@ -558,9 +558,9 @@ describe('roundtrip', () => {
|
|
|
558
558
|
signature: transaction.signature,
|
|
559
559
|
}).toMatchInlineSnapshot(`
|
|
560
560
|
{
|
|
561
|
-
"rpc": "
|
|
561
|
+
"rpc": "0xf89794c4a590afa7337e5cd5eb3aa60cacf91c5400044bf83ba000000000000000000000000000000000000000000000000000000000000000008001d7d6947e5f4552091a69125d5dfcb7b8c2659029395bdf01f843b841869437e01f64bebeb78a8a6b30bfd3a993819c8cad82c807515d9b9e9b36f98535dfaa5eebc597715d05f6ce4927747f14fa4cd2acc717fdcd3877146437f8f41b",
|
|
562
562
|
"signature": {
|
|
563
|
-
"account": "
|
|
563
|
+
"account": "0xc4a590afa7337e5cd5eb3aa60cacf91c5400044b",
|
|
564
564
|
"config": {
|
|
565
565
|
"owners": [
|
|
566
566
|
{
|
|
@@ -651,30 +651,30 @@ describe('behavior: multisig (TIP-1061)', () => {
|
|
|
651
651
|
.then((tx) => TransactionReceipt.fromRpc(tx as any)))!
|
|
652
652
|
expect(bootstrap_receipt.status).toBe('success')
|
|
653
653
|
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
654
|
+
const keyAuthorization = KeyAuthorization.from({
|
|
655
|
+
account,
|
|
656
|
+
address: access.address,
|
|
657
|
+
chainId: BigInt(chainId),
|
|
658
|
+
isAdmin: false,
|
|
659
|
+
type: 'secp256k1',
|
|
660
|
+
})
|
|
661
|
+
const keyAuthorizationSigned = KeyAuthorization.from(keyAuthorization, {
|
|
662
|
+
signature: SignatureEnvelope.from({
|
|
663
|
+
account,
|
|
664
|
+
config: initialConfig,
|
|
665
|
+
signatures: approve({
|
|
666
|
+
config: initialConfig,
|
|
667
|
+
payload: KeyAuthorization.getSignPayload(keyAuthorization),
|
|
668
|
+
signers: ownerKeys,
|
|
669
|
+
}),
|
|
670
|
+
}),
|
|
671
|
+
})
|
|
658
672
|
|
|
659
673
|
const authorize = TxEnvelopeTempo.from({
|
|
660
|
-
calls: [
|
|
661
|
-
{
|
|
662
|
-
to: '0xaaaaaaaa00000000000000000000000000000000',
|
|
663
|
-
data: AbiFunction.encodeData(authorizeKey, [
|
|
664
|
-
access.address,
|
|
665
|
-
0, // secp256k1
|
|
666
|
-
{
|
|
667
|
-
expiry: 18446744073709551615n, // u64 max (never expires)
|
|
668
|
-
enforceLimits: false,
|
|
669
|
-
limits: [],
|
|
670
|
-
allowAnyCalls: true,
|
|
671
|
-
allowedCalls: [],
|
|
672
|
-
},
|
|
673
|
-
]),
|
|
674
|
-
},
|
|
675
|
-
],
|
|
674
|
+
calls: [{ to: '0x0000000000000000000000000000000000000000' }],
|
|
676
675
|
chainId,
|
|
677
676
|
feeToken: '0x20c0000000000000000000000000000000000001',
|
|
677
|
+
keyAuthorization: keyAuthorizationSigned,
|
|
678
678
|
nonce: 1n,
|
|
679
679
|
gas: 5_000_000n,
|
|
680
680
|
maxFeePerGas: Value.fromGwei('20'),
|
package/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** @internal */
|
|
2
|
-
export const version = '0.14.
|
|
2
|
+
export const version = '0.14.44'
|