ox 0.9.1 → 0.9.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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # ox
2
2
 
3
+ ## 0.9.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [`9be7919`](https://github.com/wevm/ox/commit/9be791906d9496111a1607344ddb02077f02f6a6) Thanks [@jxom](https://github.com/jxom)! - Updated `ox/erc8010` to latest spec changes.
8
+
3
9
  ## 0.9.1
4
10
 
5
11
  ### Patch Changes
@@ -51,10 +51,17 @@ function fromTupleList(tupleList) {
51
51
  return list;
52
52
  }
53
53
  function getSignPayload(authorization) {
54
- return hash(authorization);
54
+ return hash(authorization, { presign: true });
55
55
  }
56
- function hash(authorization) {
57
- return Hash.keccak256(Hex.concat('0x05', Rlp.fromHex(toTuple(authorization))));
56
+ function hash(authorization, options = {}) {
57
+ const { presign } = options;
58
+ return Hash.keccak256(Hex.concat('0x05', Rlp.fromHex(toTuple(presign
59
+ ? {
60
+ address: authorization.address,
61
+ chainId: authorization.chainId,
62
+ nonce: authorization.nonce,
63
+ }
64
+ : authorization))));
58
65
  }
59
66
  function toRpc(authorization) {
60
67
  const { address, chainId, nonce, ...signature } = authorization;
@@ -1 +1 @@
1
- {"version":3,"file":"Authorization.js","sourceRoot":"","sources":["../../core/Authorization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Authorization.js","sourceRoot":"","sources":["../../core/Authorization.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvalidWrappedSignatureError = exports.magicBytes = void 0;
3
+ exports.InvalidWrappedSignatureError = exports.suffixParameters = exports.magicBytes = void 0;
4
4
  exports.assert = assert;
5
5
  exports.from = from;
6
6
  exports.unwrap = unwrap;
@@ -10,8 +10,10 @@ const AbiParameters = require("../core/AbiParameters.js");
10
10
  const Authorization = require("../core/Authorization.js");
11
11
  const Errors = require("../core/Errors.js");
12
12
  const Hex = require("../core/Hex.js");
13
+ const Secp256k1 = require("../core/Secp256k1.js");
13
14
  const Signature = require("../core/Signature.js");
14
15
  exports.magicBytes = '0x8010801080108010801080108010801080108010801080108010801080108010';
16
+ exports.suffixParameters = AbiParameters.from('(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data');
15
17
  function assert(value) {
16
18
  if (typeof value === 'string') {
17
19
  if (Hex.slice(value, -32) !== exports.magicBytes)
@@ -30,42 +32,37 @@ function unwrap(wrapped) {
30
32
  const suffixLength = Hex.toNumber(Hex.slice(wrapped, -64, -32));
31
33
  const suffix = Hex.slice(wrapped, -suffixLength - 64, -64);
32
34
  const signature = Hex.slice(wrapped, 0, -suffixLength - 64);
33
- const chainId = Hex.toNumber(Hex.slice(suffix, 0, 32));
34
- const delegation = Hex.slice(suffix, 32, 52);
35
- const nonce = Hex.toBigInt(Hex.slice(suffix, 52, 84));
36
- const yParity = Hex.toNumber(Hex.slice(suffix, 84, 85));
37
- const r = Hex.toBigInt(Hex.slice(suffix, 85, 117));
38
- const s = Hex.toBigInt(Hex.slice(suffix, 117, 149));
35
+ const [auth, to, data] = AbiParameters.decode(exports.suffixParameters, suffix);
39
36
  const authorization = Authorization.from({
40
- address: delegation,
41
- chainId,
42
- nonce,
43
- yParity,
44
- r,
45
- s,
37
+ address: auth.delegation,
38
+ chainId: Number(auth.chainId),
39
+ nonce: auth.nonce,
40
+ yParity: auth.yParity,
41
+ r: auth.r,
42
+ s: auth.s,
46
43
  });
47
- const data = (() => {
48
- try {
49
- return Hex.slice(suffix, 149);
50
- }
51
- catch {
52
- return undefined;
53
- }
54
- })();
55
- return { authorization, data, signature };
44
+ return {
45
+ authorization,
46
+ signature,
47
+ ...(data && data !== '0x' ? { data, to } : {}),
48
+ };
56
49
  }
57
50
  function wrap(value) {
58
- assert(value);
59
51
  const { data, signature } = value;
60
- const authorization = AbiParameters.encodePacked(['uint256', 'address', 'uint256', 'uint8', 'uint256', 'uint256'], [
61
- BigInt(value.authorization.chainId),
62
- value.authorization.address,
63
- BigInt(value.authorization.nonce),
64
- value.authorization.yParity,
65
- value.authorization.r,
66
- value.authorization.s,
52
+ assert(value);
53
+ const self = Secp256k1.recoverAddress({
54
+ payload: Authorization.getSignPayload(value.authorization),
55
+ signature: Signature.from(value.authorization),
56
+ });
57
+ const suffix = AbiParameters.encode(exports.suffixParameters, [
58
+ {
59
+ ...value.authorization,
60
+ delegation: value.authorization.address,
61
+ chainId: BigInt(value.authorization.chainId),
62
+ },
63
+ value.to ?? self,
64
+ data ?? '0x',
67
65
  ]);
68
- const suffix = AbiParameters.encodePacked(['bytes', 'bytes'], [authorization, data ?? '0x']);
69
66
  const suffixLength = Hex.fromNumber(Hex.size(suffix), { size: 32 });
70
67
  return Hex.concat(signature, suffix, suffixLength, exports.magicBytes);
71
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SignatureErc8010.js","sourceRoot":"","sources":["../../erc8010/SignatureErc8010.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SignatureErc8010.js","sourceRoot":"","sources":["../../erc8010/SignatureErc8010.ts"],"names":[],"mappings":"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"}
package/_cjs/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
- exports.version = '0.9.1';
4
+ exports.version = '0.9.2';
5
5
  //# sourceMappingURL=version.js.map
@@ -252,7 +252,7 @@ export function fromTupleList(tupleList) {
252
252
  * @returns The sign payload.
253
253
  */
254
254
  export function getSignPayload(authorization) {
255
- return hash(authorization);
255
+ return hash(authorization, { presign: true });
256
256
  }
257
257
  /**
258
258
  * Computes the hash for an {@link ox#Authorization.Authorization} in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.
@@ -273,8 +273,15 @@ export function getSignPayload(authorization) {
273
273
  * @param authorization - The {@link ox#Authorization.Authorization}.
274
274
  * @returns The hash.
275
275
  */
276
- export function hash(authorization) {
277
- return Hash.keccak256(Hex.concat('0x05', Rlp.fromHex(toTuple(authorization))));
276
+ export function hash(authorization, options = {}) {
277
+ const { presign } = options;
278
+ return Hash.keccak256(Hex.concat('0x05', Rlp.fromHex(toTuple(presign
279
+ ? {
280
+ address: authorization.address,
281
+ chainId: authorization.chainId,
282
+ nonce: authorization.nonce,
283
+ }
284
+ : authorization))));
278
285
  }
279
286
  /**
280
287
  * Converts an {@link ox#Authorization.Authorization} to an {@link ox#Authorization.Rpc}.
@@ -1 +1 @@
1
- {"version":3,"file":"Authorization.js","sourceRoot":"","sources":["../../core/Authorization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Authorization.js","sourceRoot":"","sources":["../../core/Authorization.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,14 @@ import * as AbiParameters from '../core/AbiParameters.js';
2
2
  import * as Authorization from '../core/Authorization.js';
3
3
  import * as Errors from '../core/Errors.js';
4
4
  import * as Hex from '../core/Hex.js';
5
+ import * as Secp256k1 from '../core/Secp256k1.js';
5
6
  import * as Signature from '../core/Signature.js';
6
7
  /**
7
8
  * Magic bytes used to identify ERC-8010 wrapped signatures.
8
9
  */
9
10
  export const magicBytes = '0x8010801080108010801080108010801080108010801080108010801080108010';
11
+ /** Suffix ABI parameters for the ERC-8010 wrapped signature. */
12
+ export const suffixParameters = AbiParameters.from('(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data');
10
13
  /**
11
14
  * Asserts that the wrapped signature is valid.
12
15
  *
@@ -81,29 +84,20 @@ export function unwrap(wrapped) {
81
84
  const suffixLength = Hex.toNumber(Hex.slice(wrapped, -64, -32));
82
85
  const suffix = Hex.slice(wrapped, -suffixLength - 64, -64);
83
86
  const signature = Hex.slice(wrapped, 0, -suffixLength - 64);
84
- const chainId = Hex.toNumber(Hex.slice(suffix, 0, 32));
85
- const delegation = Hex.slice(suffix, 32, 52);
86
- const nonce = Hex.toBigInt(Hex.slice(suffix, 52, 84));
87
- const yParity = Hex.toNumber(Hex.slice(suffix, 84, 85));
88
- const r = Hex.toBigInt(Hex.slice(suffix, 85, 117));
89
- const s = Hex.toBigInt(Hex.slice(suffix, 117, 149));
87
+ const [auth, to, data] = AbiParameters.decode(suffixParameters, suffix);
90
88
  const authorization = Authorization.from({
91
- address: delegation,
92
- chainId,
93
- nonce,
94
- yParity,
95
- r,
96
- s,
89
+ address: auth.delegation,
90
+ chainId: Number(auth.chainId),
91
+ nonce: auth.nonce,
92
+ yParity: auth.yParity,
93
+ r: auth.r,
94
+ s: auth.s,
97
95
  });
98
- const data = (() => {
99
- try {
100
- return Hex.slice(suffix, 149);
101
- }
102
- catch {
103
- return undefined;
104
- }
105
- })();
106
- return { authorization, data, signature };
96
+ return {
97
+ authorization,
98
+ signature,
99
+ ...(data && data !== '0x' ? { data, to } : {}),
100
+ };
107
101
  }
108
102
  /**
109
103
  * Wraps a signature into [ERC-8010 format](https://github.com/jxom/ERCs/blob/16f7e3891fff2e1e9c25dea0485497739db8a816/ERCS/erc-8010.md).
@@ -130,17 +124,21 @@ export function unwrap(wrapped) {
130
124
  * @returns Wrapped signature.
131
125
  */
132
126
  export function wrap(value) {
133
- assert(value);
134
127
  const { data, signature } = value;
135
- const authorization = AbiParameters.encodePacked(['uint256', 'address', 'uint256', 'uint8', 'uint256', 'uint256'], [
136
- BigInt(value.authorization.chainId),
137
- value.authorization.address,
138
- BigInt(value.authorization.nonce),
139
- value.authorization.yParity,
140
- value.authorization.r,
141
- value.authorization.s,
128
+ assert(value);
129
+ const self = Secp256k1.recoverAddress({
130
+ payload: Authorization.getSignPayload(value.authorization),
131
+ signature: Signature.from(value.authorization),
132
+ });
133
+ const suffix = AbiParameters.encode(suffixParameters, [
134
+ {
135
+ ...value.authorization,
136
+ delegation: value.authorization.address,
137
+ chainId: BigInt(value.authorization.chainId),
138
+ },
139
+ value.to ?? self,
140
+ data ?? '0x',
142
141
  ]);
143
- const suffix = AbiParameters.encodePacked(['bytes', 'bytes'], [authorization, data ?? '0x']);
144
142
  const suffixLength = Hex.fromNumber(Hex.size(suffix), { size: 32 });
145
143
  return Hex.concat(signature, suffix, suffixLength, magicBytes);
146
144
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SignatureErc8010.js","sourceRoot":"","sources":["../../erc8010/SignatureErc8010.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;AAejD;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GACrB,oEAA6E,CAAA;AAE/E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,MAAM,CAAC,KAA0B;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,KAAK,UAAU;YACtC,MAAM,IAAI,4BAA4B,CAAC,KAAK,CAAC,CAAA;IACjD,CAAC;;QAAM,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;AAC9C,CAAC;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,IAAI,CAAC,KAA0B;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACnD,OAAO,KAAK,CAAA;AACd,CAAC;AAMD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,MAAM,CAAC,OAAgB;IACrC,MAAM,CAAC,OAAO,CAAC,CAAA;IAEf,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC/D,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,YAAY,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;IAC1D,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,CAAA;IAE3D,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IACtD,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IACvD,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;IAClD,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IAEnD,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC;QACvC,OAAO,EAAE,UAAU;QACnB,OAAO;QACP,KAAK;QACL,OAAO;QACP,CAAC;QACD,CAAC;KACF,CAAC,CAAA;IACF,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;QACjB,IAAI,CAAC;YACH,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAA;QAClB,CAAC;IACH,CAAC,CAAC,EAAE,CAAA;IAEJ,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;AAC3C,CAAC;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,IAAI,CAAC,KAAgB;IACnC,MAAM,CAAC,KAAK,CAAC,CAAA;IAEb,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IACjC,MAAM,aAAa,GAAG,aAAa,CAAC,YAAY,CAC9C,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,EAChE;QACE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC;QACnC,KAAK,CAAC,aAAa,CAAC,OAAO;QAC3B,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;QACjC,KAAK,CAAC,aAAa,CAAC,OAAO;QAC3B,KAAK,CAAC,aAAa,CAAC,CAAC;QACrB,KAAK,CAAC,aAAa,CAAC,CAAC;KACtB,CACF,CAAA;IACD,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CACvC,CAAC,OAAO,EAAE,OAAO,CAAC,EAClB,CAAC,aAAa,EAAE,IAAI,IAAI,IAAI,CAAC,CAC9B,CAAA;IACD,MAAM,YAAY,GAAG,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IACnE,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC,CAAA;AAChE,CAAC;AAMD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,QAAQ,CAAC,KAA0B;IACjD,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,CAAA;QACb,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAMD,6DAA6D;AAC7D,MAAM,OAAO,4BAA6B,SAAQ,MAAM,CAAC,SAAS;IAGhE,YAAY,OAAgB;QAC1B,KAAK,CAAC,WAAW,OAAO,8CAA8C,CAAC,CAAA;QAHvD;;;;mBAAO,+CAA+C;WAAA;IAIxE,CAAC;CACF"}
1
+ {"version":3,"file":"SignatureErc8010.js","sourceRoot":"","sources":["../../erc8010/SignatureErc8010.ts"],"names":[],"mappings":"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"}
package/_esm/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** @internal */
2
- export const version = '0.9.1';
2
+ export const version = '0.9.2';
3
3
  //# sourceMappingURL=version.js.map
@@ -303,9 +303,13 @@ export declare namespace getSignPayload {
303
303
  * @param authorization - The {@link ox#Authorization.Authorization}.
304
304
  * @returns The hash.
305
305
  */
306
- export declare function hash(authorization: Authorization): Hex.Hex;
306
+ export declare function hash(authorization: Authorization, options?: hash.Options): Hex.Hex;
307
307
  export declare namespace hash {
308
308
  type ErrorType = toTuple.ErrorType | Hash.keccak256.ErrorType | Hex.concat.ErrorType | Rlp.fromHex.ErrorType | Errors.GlobalErrorType;
309
+ type Options = {
310
+ /** Whether to hash this authorization for signing. @default false */
311
+ presign?: boolean | undefined;
312
+ };
309
313
  }
310
314
  /**
311
315
  * Converts an {@link ox#Authorization.Authorization} to an {@link ox#Authorization.Rpc}.
@@ -1 +1 @@
1
- {"version":3,"file":"Authorization.d.ts","sourceRoot":"","sources":["../../core/Authorization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Authorization.d.ts","sourceRoot":"","sources":["../../core/Authorization.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type * as Address from '../core/Address.js';
1
2
  import * as Authorization from '../core/Authorization.js';
2
3
  import * as Errors from '../core/Errors.js';
3
4
  import * as Hex from '../core/Hex.js';
@@ -9,6 +10,8 @@ export type Unwrapped = {
9
10
  data?: Hex.Hex | undefined;
10
11
  /** The original signature. */
11
12
  signature: Hex.Hex;
13
+ /** Address of the initializer. */
14
+ to?: Address.Address | undefined;
12
15
  };
13
16
  /** Wrapped ERC-8010 signature. */
14
17
  export type Wrapped = Hex.Hex;
@@ -16,6 +19,35 @@ export type Wrapped = Hex.Hex;
16
19
  * Magic bytes used to identify ERC-8010 wrapped signatures.
17
20
  */
18
21
  export declare const magicBytes: "0x8010801080108010801080108010801080108010801080108010801080108010";
22
+ /** Suffix ABI parameters for the ERC-8010 wrapped signature. */
23
+ export declare const suffixParameters: readonly [{
24
+ readonly type: "tuple";
25
+ readonly components: readonly [{
26
+ readonly type: "uint256";
27
+ readonly name: "chainId";
28
+ }, {
29
+ readonly type: "address";
30
+ readonly name: "delegation";
31
+ }, {
32
+ readonly type: "uint256";
33
+ readonly name: "nonce";
34
+ }, {
35
+ readonly type: "uint8";
36
+ readonly name: "yParity";
37
+ }, {
38
+ readonly type: "uint256";
39
+ readonly name: "r";
40
+ }, {
41
+ readonly type: "uint256";
42
+ readonly name: "s";
43
+ }];
44
+ }, {
45
+ readonly type: "address";
46
+ readonly name: "to";
47
+ }, {
48
+ readonly type: "bytes";
49
+ readonly name: "data";
50
+ }];
19
51
  /**
20
52
  * Asserts that the wrapped signature is valid.
21
53
  *
@@ -1 +1 @@
1
- {"version":3,"file":"SignatureErc8010.d.ts","sourceRoot":"","sources":["../../erc8010/SignatureErc8010.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAGrC,oCAAoC;AACpC,MAAM,MAAM,SAAS,GAAG;IACtB,6CAA6C;IAC7C,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IAChD,yCAAyC;IACzC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;IAC1B,8BAA8B;IAC9B,SAAS,EAAE,GAAG,CAAC,GAAG,CAAA;CACnB,CAAA;AAED,kCAAkC;AAClC,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAA;AAE7B;;GAEG;AACH,eAAO,MAAM,UAAU,sEACwD,CAAA;AAE/E;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,QAKhD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,SAAS,GACV,4BAA4B,GAC5B,GAAG,CAAC,KAAK,CAAC,SAAS,GACnB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAG1D;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CAC3D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CA+BlD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAqB9C;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAO5D;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC;AAED,6DAA6D;AAC7D,qBAAa,4BAA6B,SAAQ,MAAM,CAAC,SAAS;IAChE,SAAkB,IAAI,mDAAkD;gBAE5D,OAAO,EAAE,OAAO;CAG7B"}
1
+ {"version":3,"file":"SignatureErc8010.d.ts","sourceRoot":"","sources":["../../erc8010/SignatureErc8010.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAIrC,oCAAoC;AACpC,MAAM,MAAM,SAAS,GAAG;IACtB,6CAA6C;IAC7C,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IAChD,yCAAyC;IACzC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,SAAS,CAAA;IAC1B,8BAA8B;IAC9B,SAAS,EAAE,GAAG,CAAC,GAAG,CAAA;IAClB,kCAAkC;IAClC,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,GAAG,SAAS,CAAA;CACjC,CAAA;AAED,kCAAkC;AAClC,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAA;AAE7B;;GAEG;AACH,eAAO,MAAM,UAAU,sEACwD,CAAA;AAE/E,gEAAgE;AAChE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE5B,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,QAKhD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,SAAS,GACV,4BAA4B,GAC5B,GAAG,CAAC,KAAK,CAAC,SAAS,GACnB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAG1D;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CAC3D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAuBlD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAqB9C;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAO5D;AAED,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC;AAED,6DAA6D;AAC7D,qBAAa,4BAA6B,SAAQ,MAAM,CAAC,SAAS;IAChE,SAAkB,IAAI,mDAAkD;gBAE5D,OAAO,EAAE,OAAO;CAG7B"}
@@ -1,3 +1,3 @@
1
1
  /** @internal */
2
- export declare const version = "0.9.1";
2
+ export declare const version = "0.9.2";
3
3
  //# sourceMappingURL=version.d.ts.map
@@ -387,7 +387,7 @@ export declare namespace fromTupleList {
387
387
  * @returns The sign payload.
388
388
  */
389
389
  export function getSignPayload(authorization: Authorization): Hex.Hex {
390
- return hash(authorization)
390
+ return hash(authorization, { presign: true })
391
391
  }
392
392
 
393
393
  export declare namespace getSignPayload {
@@ -413,8 +413,27 @@ export declare namespace getSignPayload {
413
413
  * @param authorization - The {@link ox#Authorization.Authorization}.
414
414
  * @returns The hash.
415
415
  */
416
- export function hash(authorization: Authorization): Hex.Hex {
417
- return Hash.keccak256(Hex.concat('0x05', Rlp.fromHex(toTuple(authorization))))
416
+ export function hash(
417
+ authorization: Authorization,
418
+ options: hash.Options = {},
419
+ ): Hex.Hex {
420
+ const { presign } = options
421
+ return Hash.keccak256(
422
+ Hex.concat(
423
+ '0x05',
424
+ Rlp.fromHex(
425
+ toTuple(
426
+ presign
427
+ ? {
428
+ address: authorization.address,
429
+ chainId: authorization.chainId,
430
+ nonce: authorization.nonce,
431
+ }
432
+ : authorization,
433
+ ),
434
+ ),
435
+ ),
436
+ )
418
437
  }
419
438
 
420
439
  export declare namespace hash {
@@ -424,6 +443,11 @@ export declare namespace hash {
424
443
  | Hex.concat.ErrorType
425
444
  | Rlp.fromHex.ErrorType
426
445
  | Errors.GlobalErrorType
446
+
447
+ type Options = {
448
+ /** Whether to hash this authorization for signing. @default false */
449
+ presign?: boolean | undefined
450
+ }
427
451
  }
428
452
 
429
453
  /**
@@ -1,7 +1,9 @@
1
1
  import * as AbiParameters from '../core/AbiParameters.js'
2
+ import type * as Address from '../core/Address.js'
2
3
  import * as Authorization from '../core/Authorization.js'
3
4
  import * as Errors from '../core/Errors.js'
4
5
  import * as Hex from '../core/Hex.js'
6
+ import * as Secp256k1 from '../core/Secp256k1.js'
5
7
  import * as Signature from '../core/Signature.js'
6
8
 
7
9
  /** Unwrapped ERC-8010 signature. */
@@ -12,6 +14,8 @@ export type Unwrapped = {
12
14
  data?: Hex.Hex | undefined
13
15
  /** The original signature. */
14
16
  signature: Hex.Hex
17
+ /** Address of the initializer. */
18
+ to?: Address.Address | undefined
15
19
  }
16
20
 
17
21
  /** Wrapped ERC-8010 signature. */
@@ -23,6 +27,11 @@ export type Wrapped = Hex.Hex
23
27
  export const magicBytes =
24
28
  '0x8010801080108010801080108010801080108010801080108010801080108010' as const
25
29
 
30
+ /** Suffix ABI parameters for the ERC-8010 wrapped signature. */
31
+ export const suffixParameters = AbiParameters.from(
32
+ '(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data',
33
+ )
34
+
26
35
  /**
27
36
  * Asserts that the wrapped signature is valid.
28
37
  *
@@ -109,30 +118,22 @@ export function unwrap(wrapped: Wrapped): Unwrapped {
109
118
  const suffix = Hex.slice(wrapped, -suffixLength - 64, -64)
110
119
  const signature = Hex.slice(wrapped, 0, -suffixLength - 64)
111
120
 
112
- const chainId = Hex.toNumber(Hex.slice(suffix, 0, 32))
113
- const delegation = Hex.slice(suffix, 32, 52)
114
- const nonce = Hex.toBigInt(Hex.slice(suffix, 52, 84))
115
- const yParity = Hex.toNumber(Hex.slice(suffix, 84, 85))
116
- const r = Hex.toBigInt(Hex.slice(suffix, 85, 117))
117
- const s = Hex.toBigInt(Hex.slice(suffix, 117, 149))
121
+ const [auth, to, data] = AbiParameters.decode(suffixParameters, suffix)
118
122
 
119
123
  const authorization = Authorization.from({
120
- address: delegation,
121
- chainId,
122
- nonce,
123
- yParity,
124
- r,
125
- s,
124
+ address: auth.delegation,
125
+ chainId: Number(auth.chainId),
126
+ nonce: auth.nonce,
127
+ yParity: auth.yParity,
128
+ r: auth.r,
129
+ s: auth.s,
126
130
  })
127
- const data = (() => {
128
- try {
129
- return Hex.slice(suffix, 149)
130
- } catch {
131
- return undefined
132
- }
133
- })()
134
-
135
- return { authorization, data, signature }
131
+
132
+ return {
133
+ authorization,
134
+ signature,
135
+ ...(data && data !== '0x' ? { data, to } : {}),
136
+ }
136
137
  }
137
138
 
138
139
  export declare namespace unwrap {
@@ -164,24 +165,24 @@ export declare namespace unwrap {
164
165
  * @returns Wrapped signature.
165
166
  */
166
167
  export function wrap(value: Unwrapped): Wrapped {
168
+ const { data, signature } = value
169
+
167
170
  assert(value)
168
171
 
169
- const { data, signature } = value
170
- const authorization = AbiParameters.encodePacked(
171
- ['uint256', 'address', 'uint256', 'uint8', 'uint256', 'uint256'],
172
- [
173
- BigInt(value.authorization.chainId),
174
- value.authorization.address,
175
- BigInt(value.authorization.nonce),
176
- value.authorization.yParity,
177
- value.authorization.r,
178
- value.authorization.s,
179
- ],
180
- )
181
- const suffix = AbiParameters.encodePacked(
182
- ['bytes', 'bytes'],
183
- [authorization, data ?? '0x'],
184
- )
172
+ const self = Secp256k1.recoverAddress({
173
+ payload: Authorization.getSignPayload(value.authorization),
174
+ signature: Signature.from(value.authorization),
175
+ })
176
+
177
+ const suffix = AbiParameters.encode(suffixParameters, [
178
+ {
179
+ ...value.authorization,
180
+ delegation: value.authorization.address,
181
+ chainId: BigInt(value.authorization.chainId),
182
+ },
183
+ value.to ?? self,
184
+ data ?? '0x',
185
+ ])
185
186
  const suffixLength = Hex.fromNumber(Hex.size(suffix), { size: 32 })
186
187
  return Hex.concat(signature, suffix, suffixLength, magicBytes)
187
188
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ox",
3
3
  "description": "Ethereum Standard Library",
4
- "version": "0.9.1",
4
+ "version": "0.9.2",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
package/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /** @internal */
2
- export const version = '0.9.1'
2
+ export const version = '0.9.2'