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 +6 -0
- package/_cjs/core/Authorization.js +10 -3
- package/_cjs/core/Authorization.js.map +1 -1
- package/_cjs/erc8010/SignatureErc8010.js +28 -31
- package/_cjs/erc8010/SignatureErc8010.js.map +1 -1
- package/_cjs/version.js +1 -1
- package/_esm/core/Authorization.js +10 -3
- package/_esm/core/Authorization.js.map +1 -1
- package/_esm/erc8010/SignatureErc8010.js +28 -30
- package/_esm/erc8010/SignatureErc8010.js.map +1 -1
- package/_esm/version.js +1 -1
- package/_types/core/Authorization.d.ts +5 -1
- package/_types/core/Authorization.d.ts.map +1 -1
- package/_types/erc8010/SignatureErc8010.d.ts +32 -0
- package/_types/erc8010/SignatureErc8010.d.ts.map +1 -1
- package/_types/version.d.ts +1 -1
- package/core/Authorization.ts +27 -3
- package/erc8010/SignatureErc8010.ts +38 -37
- package/package.json +1 -1
- package/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -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
|
-
|
|
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":";;AAsHA,oBAUC;AA+CD,0BAUC;AA0BD,kCAEC;AAoDD,8BAYC;AAoED,sCAMC;AAqCD,wCAEC;AAyBD,
|
|
1
|
+
{"version":3,"file":"Authorization.js","sourceRoot":"","sources":["../../core/Authorization.ts"],"names":[],"mappings":";;AAsHA,oBAUC;AA+CD,0BAUC;AA0BD,kCAEC;AAoDD,8BAYC;AAoED,sCAMC;AAqCD,wCAEC;AAyBD,oBAqBC;AAoCD,sBASC;AA0BD,8BAEC;AA8BD,0BAWC;AA6CD,kCAWC;AA5lBD,kCAAiC;AACjC,gCAA+B;AAE/B,gCAA+B;AAC/B,4CAA2C;AAgH3C,SAAgB,IAAI,CAIlB,aAA4C,EAC5C,UAAmC,EAAE;IAErC,IAAI,OAAO,aAAa,CAAC,OAAO,KAAK,QAAQ;QAC3C,OAAO,OAAO,CAAC,aAAa,CAAU,CAAA;IACxC,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC,SAAS,EAAW,CAAA;AAC5D,CAAC;AA+CD,SAAgB,OAAO,CAAC,aAAkB;IACxC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,aAAa,CAAA;IACjD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,CAAE,CAAA;IAEnD,OAAO;QACL,OAAO;QACP,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;QACpB,GAAG,SAAS;KACb,CAAA;AACH,CAAC;AA0BD,SAAgB,WAAW,CAAC,iBAA0B;IACpD,OAAO,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AACvC,CAAC;AAoDD,SAAgB,SAAS,CACvB,KAAY;IAEZ,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAA;IACtD,IAAI,IAAI,GAAG;QACT,OAAO;QACP,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/C,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KAC3C,CAAA;IACD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7D,OAAO,IAAI,CAAC,IAAI,CAAU,CAAA;AAC5B,CAAC;AAoED,SAAgB,aAAa,CAC3B,SAAoB;IAEpB,MAAM,IAAI,GAAkB,EAAE,CAAA;IAC9B,KAAK,MAAM,KAAK,IAAI,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,OAAO,IAAa,CAAA;AACtB,CAAC;AAqCD,SAAgB,cAAc,CAAC,aAA4B;IACzD,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AAC/C,CAAC;AAyBD,SAAgB,IAAI,CAClB,aAA4B,EAC5B,UAAwB,EAAE;IAE1B,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAC3B,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,CAAC,MAAM,CACR,MAAM,EACN,GAAG,CAAC,OAAO,CACT,OAAO,CACL,OAAO;QACL,CAAC,CAAC;YACE,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,KAAK,EAAE,aAAa,CAAC,KAAK;SAC3B;QACH,CAAC,CAAC,aAAa,CAClB,CACF,CACF,CACF,CAAA;AACH,CAAC;AAoCD,SAAgB,KAAK,CAAC,aAAqB;IACzC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,GAAG,aAAa,CAAA;IAE/D,OAAO;QACL,OAAO;QACP,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC;QAC5B,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;KAC9B,CAAA;AACH,CAAC;AA0BD,SAAgB,SAAS,CAAC,iBAA6B;IACrD,OAAO,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACrC,CAAC;AA8BD,SAAgB,OAAO,CACrB,aAA4B;IAE5B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,aAAa,CAAA;IACjD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IAClD,OAAO;QACL,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;QACxC,OAAO;QACP,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QACpC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAA;AACZ,CAAC;AA6CD,SAAgB,WAAW,CAIzB,IAAuB;IACvB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAEzC,MAAM,SAAS,GAAuB,EAAE,CAAA;IACxC,KAAK,MAAM,aAAa,IAAI,IAAI;QAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAA;IAExE,OAAO,SAAkB,CAAA;AAC3B,CAAC"}
|
|
@@ -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
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
value.authorization
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
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":";;;
|
|
1
|
+
{"version":3,"file":"SignatureErc8010.js","sourceRoot":"","sources":["../../erc8010/SignatureErc8010.ts"],"names":[],"mappings":";;;AA+CA,wBAKC;AAuCD,oBAGC;AAmBD,wBAuBC;AA8BD,oBAqBC;AAoBD,4BAOC;AAtND,0DAAyD;AAEzD,0DAAyD;AACzD,4CAA2C;AAC3C,sCAAqC;AACrC,kDAAiD;AACjD,kDAAiD;AAoBpC,QAAA,UAAU,GACrB,oEAA6E,CAAA;AAGlE,QAAA,gBAAgB,GAAG,aAAa,CAAC,IAAI,CAChD,mHAAmH,CACpH,CAAA;AAeD,SAAgB,MAAM,CAAC,KAA0B;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,KAAK,kBAAU;YACtC,MAAM,IAAI,4BAA4B,CAAC,KAAK,CAAC,CAAA;IACjD,CAAC;;QAAM,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;AAC9C,CAAC;AAuCD,SAAgB,IAAI,CAAC,KAA0B;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAA;IACnD,OAAO,KAAK,CAAA;AACd,CAAC;AAmBD,SAAgB,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,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,wBAAgB,EAAE,MAAM,CAAC,CAAA;IAEvE,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC;QACvC,OAAO,EAAE,IAAI,CAAC,UAAU;QACxB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,CAAC,EAAE,IAAI,CAAC,CAAC;QACT,CAAC,EAAE,IAAI,CAAC,CAAC;KACV,CAAC,CAAA;IAEF,OAAO;QACL,aAAa;QACb,SAAS;QACT,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAA;AACH,CAAC;AA8BD,SAAgB,IAAI,CAAC,KAAgB;IACnC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAEjC,MAAM,CAAC,KAAK,CAAC,CAAA;IAEb,MAAM,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC;QACpC,OAAO,EAAE,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC;QAC1D,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;KAC/C,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,wBAAgB,EAAE;QACpD;YACE,GAAG,KAAK,CAAC,aAAa;YACtB,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO;YACvC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC;SAC7C;QACD,KAAK,CAAC,EAAE,IAAI,IAAI;QAChB,IAAI,IAAI,IAAI;KACb,CAAC,CAAA;IACF,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,kBAAU,CAAC,CAAA;AAChE,CAAC;AAoBD,SAAgB,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;AAOD,MAAa,4BAA6B,SAAQ,MAAM,CAAC,SAAS;IAGhE,YAAY,OAAgB;QAC1B,KAAK,CAAC,WAAW,OAAO,8CAA8C,CAAC,CAAA;QAHvD;;;;mBAAO,+CAA+C;WAAA;IAIxE,CAAC;CACF;AAND,oEAMC"}
|
package/_cjs/version.js
CHANGED
|
@@ -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
|
-
|
|
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":"AAEA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAqE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,UAAU,IAAI,CAIlB,aAA4C,EAC5C,UAAmC,EAAE;IAErC,IAAI,OAAO,aAAa,CAAC,OAAO,KAAK,QAAQ;QAC3C,OAAO,OAAO,CAAC,aAAa,CAAU,CAAA;IACxC,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC,SAAS,EAAW,CAAA;AAC5D,CAAC;AA2BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,OAAO,CAAC,aAAkB;IACxC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,aAAa,CAAA;IACjD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,CAAE,CAAA;IAEnD,OAAO;QACL,OAAO;QACP,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;QACpB,GAAG,SAAS;KACb,CAAA;AACH,CAAC;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,WAAW,CAAC,iBAA0B;IACpD,OAAO,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AACvC,CAAC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,UAAU,SAAS,CACvB,KAAY;IAEZ,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAA;IACtD,IAAI,IAAI,GAAG;QACT,OAAO;QACP,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/C,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KAC3C,CAAA;IACD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7D,OAAO,IAAI,CAAC,IAAI,CAAU,CAAA;AAC5B,CAAC;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,MAAM,UAAU,aAAa,CAC3B,SAAoB;IAEpB,MAAM,IAAI,GAAkB,EAAE,CAAA;IAC9B,KAAK,MAAM,KAAK,IAAI,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,OAAO,IAAa,CAAA;AACtB,CAAC;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,cAAc,CAAC,aAA4B;IACzD,OAAO,IAAI,CAAC,aAAa,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"Authorization.js","sourceRoot":"","sources":["../../core/Authorization.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAqE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,UAAU,IAAI,CAIlB,aAA4C,EAC5C,UAAmC,EAAE;IAErC,IAAI,OAAO,aAAa,CAAC,OAAO,KAAK,QAAQ;QAC3C,OAAO,OAAO,CAAC,aAAa,CAAU,CAAA;IACxC,OAAO,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC,SAAS,EAAW,CAAA;AAC5D,CAAC;AA2BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,OAAO,CAAC,aAAkB;IACxC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,aAAa,CAAA;IACjD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,CAAE,CAAA;IAEnD,OAAO;QACL,OAAO;QACP,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;QACpB,GAAG,SAAS;KACb,CAAA;AACH,CAAC;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,WAAW,CAAC,iBAA0B;IACpD,OAAO,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AACvC,CAAC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,UAAU,SAAS,CACvB,KAAY;IAEZ,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAA;IACtD,IAAI,IAAI,GAAG;QACT,OAAO;QACP,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/C,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;KAC3C,CAAA;IACD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC;QACnB,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7D,OAAO,IAAI,CAAC,IAAI,CAAU,CAAA;AAC5B,CAAC;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,MAAM,UAAU,aAAa,CAC3B,SAAoB;IAEpB,MAAM,IAAI,GAAkB,EAAE,CAAA;IAC9B,KAAK,MAAM,KAAK,IAAI,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;IAC1D,OAAO,IAAa,CAAA;AACtB,CAAC;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,cAAc,CAAC,aAA4B;IACzD,OAAO,IAAI,CAAC,aAAa,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AAC/C,CAAC;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,IAAI,CAClB,aAA4B,EAC5B,UAAwB,EAAE;IAE1B,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAC3B,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,CAAC,MAAM,CACR,MAAM,EACN,GAAG,CAAC,OAAO,CACT,OAAO,CACL,OAAO;QACL,CAAC,CAAC;YACE,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,KAAK,EAAE,aAAa,CAAC,KAAK;SAC3B;QACH,CAAC,CAAC,aAAa,CAClB,CACF,CACF,CACF,CAAA;AACH,CAAC;AAgBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,KAAK,CAAC,aAAqB;IACzC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,SAAS,EAAE,GAAG,aAAa,CAAA;IAE/D,OAAO;QACL,OAAO;QACP,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QAChC,KAAK,EAAE,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC;QAC5B,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;KAC9B,CAAA;AACH,CAAC;AAMD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,SAAS,CAAC,iBAA6B;IACrD,OAAO,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACrC,CAAC;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,OAAO,CACrB,aAA4B;IAE5B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,aAAa,CAAA;IACjD,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IAClD,OAAO;QACL,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;QACxC,OAAO;QACP,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QACpC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1C,CAAA;AACZ,CAAC;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,UAAU,WAAW,CAIzB,IAAuB;IACvB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAEzC,MAAM,SAAS,GAAuB,EAAE,CAAA;IACxC,KAAK,MAAM,aAAa,IAAI,IAAI;QAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAA;IAExE,OAAO,SAAkB,CAAA;AAC3B,CAAC"}
|
|
@@ -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
|
|
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
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
|
|
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
|
-
|
|
136
|
-
|
|
137
|
-
value.authorization
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"SignatureErc8010.js","sourceRoot":"","sources":["../../erc8010/SignatureErc8010.ts"],"names":[],"mappings":"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"}
|
package/_esm/version.js
CHANGED
|
@@ -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;
|
|
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"}
|
package/_types/version.d.ts
CHANGED
package/core/Authorization.ts
CHANGED
|
@@ -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(
|
|
417
|
-
|
|
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
|
|
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
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
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
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
value.authorization
|
|
177
|
-
value.authorization.
|
|
178
|
-
value.authorization.
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
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
package/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/** @internal */
|
|
2
|
-
export const version = '0.9.
|
|
2
|
+
export const version = '0.9.2'
|