ox 1.6.0 → 1.6.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 +12 -0
- package/dist/core/Json.js +1 -1
- package/dist/core/Json.js.map +1 -1
- package/dist/tempo/WithdrawalSenderTag.d.ts +9 -3
- package/dist/tempo/WithdrawalSenderTag.d.ts.map +1 -1
- package/dist/tempo/WithdrawalSenderTag.js +15 -5
- package/dist/tempo/WithdrawalSenderTag.js.map +1 -1
- package/dist/tempo/index.d.ts +3 -2
- package/dist/tempo/index.d.ts.map +1 -1
- package/dist/tempo/index.js +3 -2
- package/dist/tempo/index.js.map +1 -1
- package/package.json +1 -1
- package/src/core/Json.ts +1 -1
- package/src/core/_test/Json.test.ts +6 -0
- package/src/tempo/WithdrawalSenderTag.test-d.ts +1 -0
- package/src/tempo/WithdrawalSenderTag.test.ts +13 -9
- package/src/tempo/WithdrawalSenderTag.ts +25 -6
- package/src/tempo/index.ts +3 -2
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# ox
|
|
2
2
|
|
|
3
|
+
## 1.6.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#385](https://github.com/wevm/ox/pull/385) [`8100dbf`](https://github.com/wevm/ox/commit/8100dbf8d4835d27b241d0078616e8852b2a77f2) Thanks [@struong](https://github.com/struong)! - Fixed `WithdrawalSenderTag.from` to include the Zone withdrawal fallback nonce.
|
|
8
|
+
|
|
9
|
+
## 1.6.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [#365](https://github.com/wevm/ox/pull/365) [`c8bcc7e`](https://github.com/wevm/ox/commit/c8bcc7e7b85bf319f8acdbf386d303314cbabbff) Thanks [@RezaRahemtola](https://github.com/RezaRahemtola)! - Fixed `Json.stringify` throwing `TypeError` when a replacer returned a `bigint` unchanged.
|
|
14
|
+
|
|
3
15
|
## 1.6.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/dist/core/Json.js
CHANGED
|
@@ -125,7 +125,7 @@ export function parse(string, reviver) {
|
|
|
125
125
|
export function stringify(value, replacer, space) {
|
|
126
126
|
return JSON.stringify(value, (key, value) => {
|
|
127
127
|
if (typeof replacer === 'function')
|
|
128
|
-
|
|
128
|
+
value = replacer(key, value);
|
|
129
129
|
if (typeof value === 'bigint')
|
|
130
130
|
return value.toString() + bigIntSuffix;
|
|
131
131
|
return value;
|
package/dist/core/Json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Json.js","sourceRoot":"","sources":["../../src/core/Json.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Json.js","sourceRoot":"","sources":["../../src/core/Json.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,11 @@ import * as Hex from '../core/Hex.js';
|
|
|
5
5
|
* `WithdrawalProcessed` event for a Zone withdrawal.
|
|
6
6
|
*
|
|
7
7
|
* The `transactionHash` is the Zone transaction containing the
|
|
8
|
-
* `ZoneOutbox.requestWithdrawal` call. The protocol defines
|
|
9
|
-
*
|
|
8
|
+
* `ZoneOutbox.requestWithdrawal` call. The protocol defines a user withdrawal
|
|
9
|
+
* sender tag as
|
|
10
|
+
* `keccak256(abi.encodePacked(sender, transactionHash, fallbackNonce))`.
|
|
11
|
+
* Internal deposit bounce-backs use the canonical zero-sender tag derived from
|
|
12
|
+
* `address(0)` and `bytes32(0)` without a fallback nonce.
|
|
10
13
|
*
|
|
11
14
|
* [Authenticated Withdrawals Specification](https://github.com/tempoxyz/zones/blob/main/specs/spec.md#authenticated-withdrawals)
|
|
12
15
|
*
|
|
@@ -15,18 +18,21 @@ import * as Hex from '../core/Hex.js';
|
|
|
15
18
|
* import { WithdrawalSenderTag } from 'ox/tempo'
|
|
16
19
|
*
|
|
17
20
|
* const senderTag = WithdrawalSenderTag.from({
|
|
21
|
+
* fallbackNonce: 19n,
|
|
18
22
|
* sender: '0x1234567890abcdef1234567890abcdef12345678',
|
|
19
23
|
* transactionHash:
|
|
20
24
|
* '0xabababababababababababababababababababababababababababababababab'
|
|
21
25
|
* })
|
|
22
26
|
* ```
|
|
23
27
|
*
|
|
24
|
-
* @param value - Withdrawal sender
|
|
28
|
+
* @param value - Withdrawal sender, Zone transaction hash, and fallback nonce.
|
|
25
29
|
* @returns The sender tag.
|
|
26
30
|
*/
|
|
27
31
|
export declare function from(value: from.Value): Hex.Hex;
|
|
28
32
|
export declare namespace from {
|
|
29
33
|
type Value = {
|
|
34
|
+
/** Public nonce assigned to the withdrawal's private fallback recipient. */
|
|
35
|
+
fallbackNonce: bigint;
|
|
30
36
|
/** Address that requested the withdrawal. */
|
|
31
37
|
sender: Address.Address;
|
|
32
38
|
/** Hash of the Zone transaction containing `ZoneOutbox.requestWithdrawal`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WithdrawalSenderTag.d.ts","sourceRoot":"","sources":["../../src/tempo/WithdrawalSenderTag.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAE7C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAErC
|
|
1
|
+
{"version":3,"file":"WithdrawalSenderTag.d.ts","sourceRoot":"","sources":["../../src/tempo/WithdrawalSenderTag.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAE7C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAqB/C;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAY,KAAK,GAAG;QAClB,4EAA4E;QAC5E,aAAa,EAAE,MAAM,CAAA;QACrB,6CAA6C;QAC7C,MAAM,EAAE,OAAO,CAAC,OAAO,CAAA;QACvB,8EAA8E;QAC9E,eAAe,EAAE,GAAG,CAAC,GAAG,CAAA;KACzB,CAAA;CACF"}
|
|
@@ -5,8 +5,11 @@ import * as Hash from '../core/Hash.js';
|
|
|
5
5
|
* `WithdrawalProcessed` event for a Zone withdrawal.
|
|
6
6
|
*
|
|
7
7
|
* The `transactionHash` is the Zone transaction containing the
|
|
8
|
-
* `ZoneOutbox.requestWithdrawal` call. The protocol defines
|
|
9
|
-
*
|
|
8
|
+
* `ZoneOutbox.requestWithdrawal` call. The protocol defines a user withdrawal
|
|
9
|
+
* sender tag as
|
|
10
|
+
* `keccak256(abi.encodePacked(sender, transactionHash, fallbackNonce))`.
|
|
11
|
+
* Internal deposit bounce-backs use the canonical zero-sender tag derived from
|
|
12
|
+
* `address(0)` and `bytes32(0)` without a fallback nonce.
|
|
10
13
|
*
|
|
11
14
|
* [Authenticated Withdrawals Specification](https://github.com/tempoxyz/zones/blob/main/specs/spec.md#authenticated-withdrawals)
|
|
12
15
|
*
|
|
@@ -15,17 +18,24 @@ import * as Hash from '../core/Hash.js';
|
|
|
15
18
|
* import { WithdrawalSenderTag } from 'ox/tempo'
|
|
16
19
|
*
|
|
17
20
|
* const senderTag = WithdrawalSenderTag.from({
|
|
21
|
+
* fallbackNonce: 19n,
|
|
18
22
|
* sender: '0x1234567890abcdef1234567890abcdef12345678',
|
|
19
23
|
* transactionHash:
|
|
20
24
|
* '0xabababababababababababababababababababababababababababababababab'
|
|
21
25
|
* })
|
|
22
26
|
* ```
|
|
23
27
|
*
|
|
24
|
-
* @param value - Withdrawal sender
|
|
28
|
+
* @param value - Withdrawal sender, Zone transaction hash, and fallback nonce.
|
|
25
29
|
* @returns The sender tag.
|
|
26
30
|
*/
|
|
27
31
|
export function from(value) {
|
|
28
|
-
const { sender, transactionHash } = value;
|
|
29
|
-
|
|
32
|
+
const { fallbackNonce, sender, transactionHash } = value;
|
|
33
|
+
if (sender === '0x0000000000000000000000000000000000000000' &&
|
|
34
|
+
fallbackNonce === 0n)
|
|
35
|
+
return Hash.keccak256(AbiParameters.encodePacked(['address', 'bytes32'], [
|
|
36
|
+
sender,
|
|
37
|
+
'0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
38
|
+
]));
|
|
39
|
+
return Hash.keccak256(AbiParameters.encodePacked(['address', 'bytes32', 'uint64'], [sender, transactionHash, fallbackNonce]));
|
|
30
40
|
}
|
|
31
41
|
//# sourceMappingURL=WithdrawalSenderTag.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WithdrawalSenderTag.js","sourceRoot":"","sources":["../../src/tempo/WithdrawalSenderTag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AAGvC
|
|
1
|
+
{"version":3,"file":"WithdrawalSenderTag.js","sourceRoot":"","sources":["../../src/tempo/WithdrawalSenderTag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AAGvC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,IAAI,CAAC,KAAiB;IACpC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,CAAA;IACxD,IACE,MAAM,KAAK,4CAA4C;QACvD,aAAa,KAAK,EAAE;QAEpB,OAAO,IAAI,CAAC,SAAS,CACnB,aAAa,CAAC,YAAY,CACxB,CAAC,SAAS,EAAE,SAAS,CAAC,EACtB;YACE,MAAM;YACN,oEAAoE;SACrE,CACF,CACF,CAAA;IACH,OAAO,IAAI,CAAC,SAAS,CACnB,aAAa,CAAC,YAAY,CACxB,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAChC,CAAC,MAAM,EAAE,eAAe,EAAE,aAAa,CAAC,CACzC,CACF,CAAA;AACH,CAAC"}
|
package/dist/tempo/index.d.ts
CHANGED
|
@@ -528,8 +528,8 @@ export * as VirtualMaster from './VirtualMaster.js';
|
|
|
528
528
|
* Utilities for deriving the sender tag that correlates a Zone withdrawal with
|
|
529
529
|
* its indexed parent-chain `WithdrawalProcessed` event.
|
|
530
530
|
*
|
|
531
|
-
* The sender tag commits to the withdrawal sender
|
|
532
|
-
* containing the `ZoneOutbox.requestWithdrawal` call.
|
|
531
|
+
* The sender tag commits to the withdrawal sender, the Zone transaction hash
|
|
532
|
+
* containing the `ZoneOutbox.requestWithdrawal` call, and the fallback nonce.
|
|
533
533
|
*
|
|
534
534
|
* [Authenticated Withdrawals Specification](https://github.com/tempoxyz/zones/blob/main/specs/spec.md#authenticated-withdrawals)
|
|
535
535
|
*
|
|
@@ -538,6 +538,7 @@ export * as VirtualMaster from './VirtualMaster.js';
|
|
|
538
538
|
* import { WithdrawalSenderTag } from 'ox/tempo'
|
|
539
539
|
*
|
|
540
540
|
* const senderTag = WithdrawalSenderTag.from({
|
|
541
|
+
* fallbackNonce: 19n,
|
|
541
542
|
* sender: '0x1234567890abcdef1234567890abcdef12345678',
|
|
542
543
|
* transactionHash:
|
|
543
544
|
* '0xabababababababababababababababababababababababababababababababab'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tempo/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAGhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,oBAAoB,MAAM,2BAA2B,CAAA;AACjE;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tempo/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAGhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,oBAAoB,MAAM,2BAA2B,CAAA;AACjE;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA;AAE/D;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAA"}
|
package/dist/tempo/index.js
CHANGED
|
@@ -529,8 +529,8 @@ export * as VirtualMaster from './VirtualMaster.js';
|
|
|
529
529
|
* Utilities for deriving the sender tag that correlates a Zone withdrawal with
|
|
530
530
|
* its indexed parent-chain `WithdrawalProcessed` event.
|
|
531
531
|
*
|
|
532
|
-
* The sender tag commits to the withdrawal sender
|
|
533
|
-
* containing the `ZoneOutbox.requestWithdrawal` call.
|
|
532
|
+
* The sender tag commits to the withdrawal sender, the Zone transaction hash
|
|
533
|
+
* containing the `ZoneOutbox.requestWithdrawal` call, and the fallback nonce.
|
|
534
534
|
*
|
|
535
535
|
* [Authenticated Withdrawals Specification](https://github.com/tempoxyz/zones/blob/main/specs/spec.md#authenticated-withdrawals)
|
|
536
536
|
*
|
|
@@ -539,6 +539,7 @@ export * as VirtualMaster from './VirtualMaster.js';
|
|
|
539
539
|
* import { WithdrawalSenderTag } from 'ox/tempo'
|
|
540
540
|
*
|
|
541
541
|
* const senderTag = WithdrawalSenderTag.from({
|
|
542
|
+
* fallbackNonce: 19n,
|
|
542
543
|
* sender: '0x1234567890abcdef1234567890abcdef12345678',
|
|
543
544
|
* transactionHash:
|
|
544
545
|
* '0xabababababababababababababababababababababababababababababababab'
|
package/dist/tempo/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tempo/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,2DAA2D;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,oBAAoB,MAAM,2BAA2B,CAAA;AACjE;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tempo/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,2DAA2D;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAC7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,oBAAoB,MAAM,2BAA2B,CAAA;AACjE;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAErD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,kBAAkB,MAAM,yBAAyB,CAAA;AAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AAEnD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA;AAE/D;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAA"}
|
package/package.json
CHANGED
package/src/core/Json.ts
CHANGED
|
@@ -147,7 +147,7 @@ export function stringify(
|
|
|
147
147
|
return JSON.stringify(
|
|
148
148
|
value,
|
|
149
149
|
(key, value) => {
|
|
150
|
-
if (typeof replacer === 'function')
|
|
150
|
+
if (typeof replacer === 'function') value = replacer(key, value)
|
|
151
151
|
if (typeof value === 'bigint') return value.toString() + bigIntSuffix
|
|
152
152
|
return value
|
|
153
153
|
},
|
|
@@ -177,6 +177,12 @@ describe('Json.stringify', () => {
|
|
|
177
177
|
).toEqual('{"foo":"bar","baz":{"value":"69!"}}')
|
|
178
178
|
})
|
|
179
179
|
|
|
180
|
+
test('args: replacer with bigint returned unchanged', () => {
|
|
181
|
+
expect(
|
|
182
|
+
Json.stringify({ a: 5n }, (_key, value) => value),
|
|
183
|
+
).toMatchInlineSnapshot(`"{"a":"5#__bigint"}"`)
|
|
184
|
+
})
|
|
185
|
+
|
|
180
186
|
test('args: space', () => {
|
|
181
187
|
expect(
|
|
182
188
|
Json.stringify(
|
|
@@ -5,6 +5,7 @@ import { expectTypeOf, test } from 'vp/test'
|
|
|
5
5
|
test('from', () => {
|
|
6
6
|
expectTypeOf(
|
|
7
7
|
WithdrawalSenderTag.from({
|
|
8
|
+
fallbackNonce: 19n,
|
|
8
9
|
sender: '0x1234567890abcdef1234567890abcdef12345678',
|
|
9
10
|
transactionHash:
|
|
10
11
|
'0xabababababababababababababababababababababababababababababababab',
|
|
@@ -1,22 +1,26 @@
|
|
|
1
1
|
import { WithdrawalSenderTag } from 'ox/tempo'
|
|
2
2
|
import { expect, test } from 'vp/test'
|
|
3
3
|
|
|
4
|
-
test('from', () => {
|
|
4
|
+
test('from: production withdrawal', () => {
|
|
5
5
|
const senderTag = WithdrawalSenderTag.from({
|
|
6
|
-
|
|
6
|
+
fallbackNonce: 19n,
|
|
7
|
+
sender: '0x0F0896dbf0465E5c07963301dcFEA1101Fa91EaC',
|
|
7
8
|
transactionHash:
|
|
8
|
-
'
|
|
9
|
+
'0xae628bdc4bd24a9f9a917825a208baa16c384ab8a96a40cd5146bd20d9b3f6d9',
|
|
9
10
|
})
|
|
10
11
|
expect(senderTag).toMatchInlineSnapshot(
|
|
11
|
-
`"
|
|
12
|
+
`"0xf1acbae45cd689281144042331e3379cf631a8d2db83057ccf38754a0b0108f2"`,
|
|
12
13
|
)
|
|
13
14
|
})
|
|
14
15
|
|
|
15
|
-
test('
|
|
16
|
-
const
|
|
17
|
-
|
|
16
|
+
test('from: internal deposit bounce-back', () => {
|
|
17
|
+
const senderTag = WithdrawalSenderTag.from({
|
|
18
|
+
fallbackNonce: 0n,
|
|
19
|
+
sender: '0x0000000000000000000000000000000000000000',
|
|
18
20
|
transactionHash:
|
|
19
21
|
'0xabababababababababababababababababababababababababababababababab',
|
|
20
|
-
}
|
|
21
|
-
expect(
|
|
22
|
+
})
|
|
23
|
+
expect(senderTag).toMatchInlineSnapshot(
|
|
24
|
+
`"0xa86d54e9aab41ae5e520ff0062ff1b4cbd0b2192bb01080a058bb170d84e6457"`,
|
|
25
|
+
)
|
|
22
26
|
})
|
|
@@ -8,8 +8,11 @@ import * as Hex from '../core/Hex.js'
|
|
|
8
8
|
* `WithdrawalProcessed` event for a Zone withdrawal.
|
|
9
9
|
*
|
|
10
10
|
* The `transactionHash` is the Zone transaction containing the
|
|
11
|
-
* `ZoneOutbox.requestWithdrawal` call. The protocol defines
|
|
12
|
-
*
|
|
11
|
+
* `ZoneOutbox.requestWithdrawal` call. The protocol defines a user withdrawal
|
|
12
|
+
* sender tag as
|
|
13
|
+
* `keccak256(abi.encodePacked(sender, transactionHash, fallbackNonce))`.
|
|
14
|
+
* Internal deposit bounce-backs use the canonical zero-sender tag derived from
|
|
15
|
+
* `address(0)` and `bytes32(0)` without a fallback nonce.
|
|
13
16
|
*
|
|
14
17
|
* [Authenticated Withdrawals Specification](https://github.com/tempoxyz/zones/blob/main/specs/spec.md#authenticated-withdrawals)
|
|
15
18
|
*
|
|
@@ -18,27 +21,43 @@ import * as Hex from '../core/Hex.js'
|
|
|
18
21
|
* import { WithdrawalSenderTag } from 'ox/tempo'
|
|
19
22
|
*
|
|
20
23
|
* const senderTag = WithdrawalSenderTag.from({
|
|
24
|
+
* fallbackNonce: 19n,
|
|
21
25
|
* sender: '0x1234567890abcdef1234567890abcdef12345678',
|
|
22
26
|
* transactionHash:
|
|
23
27
|
* '0xabababababababababababababababababababababababababababababababab'
|
|
24
28
|
* })
|
|
25
29
|
* ```
|
|
26
30
|
*
|
|
27
|
-
* @param value - Withdrawal sender
|
|
31
|
+
* @param value - Withdrawal sender, Zone transaction hash, and fallback nonce.
|
|
28
32
|
* @returns The sender tag.
|
|
29
33
|
*/
|
|
30
34
|
export function from(value: from.Value): Hex.Hex {
|
|
31
|
-
const { sender, transactionHash } = value
|
|
35
|
+
const { fallbackNonce, sender, transactionHash } = value
|
|
36
|
+
if (
|
|
37
|
+
sender === '0x0000000000000000000000000000000000000000' &&
|
|
38
|
+
fallbackNonce === 0n
|
|
39
|
+
)
|
|
40
|
+
return Hash.keccak256(
|
|
41
|
+
AbiParameters.encodePacked(
|
|
42
|
+
['address', 'bytes32'],
|
|
43
|
+
[
|
|
44
|
+
sender,
|
|
45
|
+
'0x0000000000000000000000000000000000000000000000000000000000000000',
|
|
46
|
+
],
|
|
47
|
+
),
|
|
48
|
+
)
|
|
32
49
|
return Hash.keccak256(
|
|
33
50
|
AbiParameters.encodePacked(
|
|
34
|
-
['address', 'bytes32'],
|
|
35
|
-
[sender, transactionHash],
|
|
51
|
+
['address', 'bytes32', 'uint64'],
|
|
52
|
+
[sender, transactionHash, fallbackNonce],
|
|
36
53
|
),
|
|
37
54
|
)
|
|
38
55
|
}
|
|
39
56
|
|
|
40
57
|
export declare namespace from {
|
|
41
58
|
export type Value = {
|
|
59
|
+
/** Public nonce assigned to the withdrawal's private fallback recipient. */
|
|
60
|
+
fallbackNonce: bigint
|
|
42
61
|
/** Address that requested the withdrawal. */
|
|
43
62
|
sender: Address.Address
|
|
44
63
|
/** Hash of the Zone transaction containing `ZoneOutbox.requestWithdrawal`. */
|
package/src/tempo/index.ts
CHANGED
|
@@ -533,8 +533,8 @@ export * as VirtualMaster from './VirtualMaster.js'
|
|
|
533
533
|
* Utilities for deriving the sender tag that correlates a Zone withdrawal with
|
|
534
534
|
* its indexed parent-chain `WithdrawalProcessed` event.
|
|
535
535
|
*
|
|
536
|
-
* The sender tag commits to the withdrawal sender
|
|
537
|
-
* containing the `ZoneOutbox.requestWithdrawal` call.
|
|
536
|
+
* The sender tag commits to the withdrawal sender, the Zone transaction hash
|
|
537
|
+
* containing the `ZoneOutbox.requestWithdrawal` call, and the fallback nonce.
|
|
538
538
|
*
|
|
539
539
|
* [Authenticated Withdrawals Specification](https://github.com/tempoxyz/zones/blob/main/specs/spec.md#authenticated-withdrawals)
|
|
540
540
|
*
|
|
@@ -543,6 +543,7 @@ export * as VirtualMaster from './VirtualMaster.js'
|
|
|
543
543
|
* import { WithdrawalSenderTag } from 'ox/tempo'
|
|
544
544
|
*
|
|
545
545
|
* const senderTag = WithdrawalSenderTag.from({
|
|
546
|
+
* fallbackNonce: 19n,
|
|
546
547
|
* sender: '0x1234567890abcdef1234567890abcdef12345678',
|
|
547
548
|
* transactionHash:
|
|
548
549
|
* '0xabababababababababababababababababababababababababababababababab'
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** @internal */
|
|
2
|
-
export const version = '1.6.
|
|
2
|
+
export const version = '1.6.2'
|