ox 0.9.0 → 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 +12 -0
- package/_cjs/core/Authorization.js +10 -3
- package/_cjs/core/Authorization.js.map +1 -1
- package/_cjs/erc6492/SignatureErc6492.js +2 -4
- package/_cjs/erc6492/SignatureErc6492.js.map +1 -1
- package/_cjs/erc8010/SignatureErc8010.js +31 -36
- 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/erc6492/SignatureErc6492.js +2 -4
- package/_esm/erc6492/SignatureErc6492.js.map +1 -1
- package/_esm/erc8010/SignatureErc8010.js +31 -35
- 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/erc6492/SignatureErc6492.d.ts +2 -2
- package/_types/erc6492/SignatureErc6492.d.ts.map +1 -1
- package/_types/erc8010/SignatureErc8010.d.ts +33 -2
- package/_types/erc8010/SignatureErc8010.d.ts.map +1 -1
- package/_types/version.d.ts +1 -1
- package/core/Authorization.ts +27 -3
- package/erc6492/SignatureErc6492.ts +4 -6
- package/erc8010/SignatureErc8010.ts +42 -49
- package/package.json +1 -1
- package/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
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
|
+
|
|
9
|
+
## 0.9.1
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`dec161a`](https://github.com/wevm/ox/commit/dec161ac7b3089bd6a0647d91e02f174ac421d65) Thanks [@jxom](https://github.com/jxom)! - Fixed `signature` type on ERC-6492 and ERC-8010.
|
|
14
|
+
|
|
3
15
|
## 0.9.0
|
|
4
16
|
|
|
5
17
|
### Minor 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
|
-
|
|
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":"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"}
|
|
@@ -9,7 +9,6 @@ exports.validate = validate;
|
|
|
9
9
|
const AbiParameters = require("../core/AbiParameters.js");
|
|
10
10
|
const Errors = require("../core/Errors.js");
|
|
11
11
|
const Hex = require("../core/Hex.js");
|
|
12
|
-
const Signature = require("../core/Signature.js");
|
|
13
12
|
exports.magicBytes = '0x6492649264926492649264926492649264926492649264926492649264926492';
|
|
14
13
|
exports.universalSignatureValidatorBytecode = '0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572';
|
|
15
14
|
exports.universalSignatureValidatorAbi = [
|
|
@@ -67,8 +66,7 @@ function from(wrapped) {
|
|
|
67
66
|
}
|
|
68
67
|
function unwrap(wrapped) {
|
|
69
68
|
assert(wrapped);
|
|
70
|
-
const [to, data,
|
|
71
|
-
const signature = Signature.from(signature_hex);
|
|
69
|
+
const [to, data, signature] = AbiParameters.decode(AbiParameters.from('address, bytes, bytes'), wrapped);
|
|
72
70
|
return { data, signature, to };
|
|
73
71
|
}
|
|
74
72
|
function wrap(value) {
|
|
@@ -76,7 +74,7 @@ function wrap(value) {
|
|
|
76
74
|
return Hex.concat(AbiParameters.encode(AbiParameters.from('address, bytes, bytes'), [
|
|
77
75
|
to,
|
|
78
76
|
data,
|
|
79
|
-
|
|
77
|
+
signature,
|
|
80
78
|
]), exports.magicBytes);
|
|
81
79
|
}
|
|
82
80
|
function validate(wrapped) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignatureErc6492.js","sourceRoot":"","sources":["../../erc6492/SignatureErc6492.ts"],"names":[],"mappings":";;;AA+FA,wBAGC;AAuCD,oBAGC;AAyBD,
|
|
1
|
+
{"version":3,"file":"SignatureErc6492.js","sourceRoot":"","sources":["../../erc6492/SignatureErc6492.ts"],"names":[],"mappings":";;;AA+FA,wBAGC;AAuCD,oBAGC;AAyBD,wBASC;AAiCD,oBAWC;AAwBD,4BAOC;AAxPD,0DAAyD;AAEzD,4CAA2C;AAC3C,sCAAqC;AAmBxB,QAAA,UAAU,GACrB,oEAA6E,CAAA;AAKlE,QAAA,mCAAmC,GAC9C,4yGAA4yG,CAAA;AAOjyG,QAAA,8BAA8B,GAAG;IAC5C;QACE,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,OAAO;aACd;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,aAAa;KACpB;IACD;QACE,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;aAChB;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,OAAO;aACd;SACF;QACD,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;aACb;SACF;QACD,eAAe,EAAE,YAAY;QAC7B,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,YAAY;KACnB;CACyB,CAAA;AAe5B,SAAgB,MAAM,CAAC,OAAgB;IACrC,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,KAAK,kBAAU;QACxC,MAAM,IAAI,4BAA4B,CAAC,OAAO,CAAC,CAAA;AACnD,CAAC;AAuCD,SAAgB,IAAI,CAAC,OAA4B;IAC/C,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;IACvD,OAAO,OAAO,CAAA;AAChB,CAAC;AAyBD,SAAgB,MAAM,CAAC,OAAgB;IACrC,MAAM,CAAC,OAAO,CAAC,CAAA;IAEf,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,aAAa,CAAC,MAAM,CAChD,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAC3C,OAAO,CACR,CAAA;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;AAChC,CAAC;AAiCD,SAAgB,IAAI,CAAC,KAAgB;IACnC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,KAAK,CAAA;IAErC,OAAO,GAAG,CAAC,MAAM,CACf,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE;QAChE,EAAE;QACF,IAAI;QACJ,SAAS;KACV,CAAC,EACF,kBAAU,CACX,CAAA;AACH,CAAC;AAwBD,SAAgB,QAAQ,CAAC,OAAgB;IACvC,IAAI,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,CAAA;QACf,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"}
|
|
@@ -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,17 +10,17 @@ 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)
|
|
18
20
|
throw new InvalidWrappedSignatureError(value);
|
|
19
21
|
}
|
|
20
|
-
else
|
|
22
|
+
else
|
|
21
23
|
Signature.assert(value.authorization);
|
|
22
|
-
Signature.assert(value.signature);
|
|
23
|
-
}
|
|
24
24
|
}
|
|
25
25
|
function from(value) {
|
|
26
26
|
if (typeof value === 'string')
|
|
@@ -31,45 +31,40 @@ function unwrap(wrapped) {
|
|
|
31
31
|
assert(wrapped);
|
|
32
32
|
const suffixLength = Hex.toNumber(Hex.slice(wrapped, -64, -32));
|
|
33
33
|
const suffix = Hex.slice(wrapped, -suffixLength - 64, -64);
|
|
34
|
-
const signature =
|
|
35
|
-
const
|
|
36
|
-
const delegation = Hex.slice(suffix, 32, 52);
|
|
37
|
-
const nonce = Hex.toBigInt(Hex.slice(suffix, 52, 84));
|
|
38
|
-
const yParity = Hex.toNumber(Hex.slice(suffix, 84, 85));
|
|
39
|
-
const r = Hex.toBigInt(Hex.slice(suffix, 85, 117));
|
|
40
|
-
const s = Hex.toBigInt(Hex.slice(suffix, 117, 149));
|
|
34
|
+
const signature = Hex.slice(wrapped, 0, -suffixLength - 64);
|
|
35
|
+
const [auth, to, data] = AbiParameters.decode(exports.suffixParameters, suffix);
|
|
41
36
|
const authorization = Authorization.from({
|
|
42
|
-
address: delegation,
|
|
43
|
-
chainId,
|
|
44
|
-
nonce,
|
|
45
|
-
yParity,
|
|
46
|
-
r,
|
|
47
|
-
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,
|
|
48
43
|
});
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return undefined;
|
|
55
|
-
}
|
|
56
|
-
})();
|
|
57
|
-
return { authorization, data, signature };
|
|
44
|
+
return {
|
|
45
|
+
authorization,
|
|
46
|
+
signature,
|
|
47
|
+
...(data && data !== '0x' ? { data, to } : {}),
|
|
48
|
+
};
|
|
58
49
|
}
|
|
59
50
|
function wrap(value) {
|
|
60
|
-
assert(value);
|
|
61
51
|
const { data, signature } = value;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
value.authorization
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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',
|
|
69
65
|
]);
|
|
70
|
-
const suffix = AbiParameters.encodePacked(['bytes', 'bytes'], [authorization, data ?? '0x']);
|
|
71
66
|
const suffixLength = Hex.fromNumber(Hex.size(suffix), { size: 32 });
|
|
72
|
-
return Hex.concat(
|
|
67
|
+
return Hex.concat(signature, suffix, suffixLength, exports.magicBytes);
|
|
73
68
|
}
|
|
74
69
|
function validate(value) {
|
|
75
70
|
try {
|
|
@@ -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":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as AbiParameters from '../core/AbiParameters.js';
|
|
2
2
|
import * as Errors from '../core/Errors.js';
|
|
3
3
|
import * as Hex from '../core/Hex.js';
|
|
4
|
-
import * as Signature from '../core/Signature.js';
|
|
5
4
|
/**
|
|
6
5
|
* Magic bytes used to identify ERC-6492 wrapped signatures.
|
|
7
6
|
*/
|
|
@@ -126,8 +125,7 @@ export function from(wrapped) {
|
|
|
126
125
|
*/
|
|
127
126
|
export function unwrap(wrapped) {
|
|
128
127
|
assert(wrapped);
|
|
129
|
-
const [to, data,
|
|
130
|
-
const signature = Signature.from(signature_hex);
|
|
128
|
+
const [to, data, signature] = AbiParameters.decode(AbiParameters.from('address, bytes, bytes'), wrapped);
|
|
131
129
|
return { data, signature, to };
|
|
132
130
|
}
|
|
133
131
|
/**
|
|
@@ -158,7 +156,7 @@ export function wrap(value) {
|
|
|
158
156
|
return Hex.concat(AbiParameters.encode(AbiParameters.from('address, bytes, bytes'), [
|
|
159
157
|
to,
|
|
160
158
|
data,
|
|
161
|
-
|
|
159
|
+
signature,
|
|
162
160
|
]), magicBytes);
|
|
163
161
|
}
|
|
164
162
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignatureErc6492.js","sourceRoot":"","sources":["../../erc6492/SignatureErc6492.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"SignatureErc6492.js","sourceRoot":"","sources":["../../erc6492/SignatureErc6492.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
|
*
|
|
@@ -25,10 +28,8 @@ export function assert(value) {
|
|
|
25
28
|
if (Hex.slice(value, -32) !== magicBytes)
|
|
26
29
|
throw new InvalidWrappedSignatureError(value);
|
|
27
30
|
}
|
|
28
|
-
else
|
|
31
|
+
else
|
|
29
32
|
Signature.assert(value.authorization);
|
|
30
|
-
Signature.assert(value.signature);
|
|
31
|
-
}
|
|
32
33
|
}
|
|
33
34
|
/**
|
|
34
35
|
* Parses an [ERC-8010 wrapped signature](https://github.com/jxom/ERCs/blob/16f7e3891fff2e1e9c25dea0485497739db8a816/ERCS/erc-8010.md) into its constituent parts.
|
|
@@ -82,30 +83,21 @@ export function unwrap(wrapped) {
|
|
|
82
83
|
assert(wrapped);
|
|
83
84
|
const suffixLength = Hex.toNumber(Hex.slice(wrapped, -64, -32));
|
|
84
85
|
const suffix = Hex.slice(wrapped, -suffixLength - 64, -64);
|
|
85
|
-
const signature =
|
|
86
|
-
const
|
|
87
|
-
const delegation = Hex.slice(suffix, 32, 52);
|
|
88
|
-
const nonce = Hex.toBigInt(Hex.slice(suffix, 52, 84));
|
|
89
|
-
const yParity = Hex.toNumber(Hex.slice(suffix, 84, 85));
|
|
90
|
-
const r = Hex.toBigInt(Hex.slice(suffix, 85, 117));
|
|
91
|
-
const s = Hex.toBigInt(Hex.slice(suffix, 117, 149));
|
|
86
|
+
const signature = Hex.slice(wrapped, 0, -suffixLength - 64);
|
|
87
|
+
const [auth, to, data] = AbiParameters.decode(suffixParameters, suffix);
|
|
92
88
|
const authorization = Authorization.from({
|
|
93
|
-
address: delegation,
|
|
94
|
-
chainId,
|
|
95
|
-
nonce,
|
|
96
|
-
yParity,
|
|
97
|
-
r,
|
|
98
|
-
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,
|
|
99
95
|
});
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
return undefined;
|
|
106
|
-
}
|
|
107
|
-
})();
|
|
108
|
-
return { authorization, data, signature };
|
|
96
|
+
return {
|
|
97
|
+
authorization,
|
|
98
|
+
signature,
|
|
99
|
+
...(data && data !== '0x' ? { data, to } : {}),
|
|
100
|
+
};
|
|
109
101
|
}
|
|
110
102
|
/**
|
|
111
103
|
* Wraps a signature into [ERC-8010 format](https://github.com/jxom/ERCs/blob/16f7e3891fff2e1e9c25dea0485497739db8a816/ERCS/erc-8010.md).
|
|
@@ -132,19 +124,23 @@ export function unwrap(wrapped) {
|
|
|
132
124
|
* @returns Wrapped signature.
|
|
133
125
|
*/
|
|
134
126
|
export function wrap(value) {
|
|
135
|
-
assert(value);
|
|
136
127
|
const { data, signature } = value;
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
value.authorization
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
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',
|
|
144
141
|
]);
|
|
145
|
-
const suffix = AbiParameters.encodePacked(['bytes', 'bytes'], [authorization, data ?? '0x']);
|
|
146
142
|
const suffixLength = Hex.fromNumber(Hex.size(suffix), { size: 32 });
|
|
147
|
-
return Hex.concat(
|
|
143
|
+
return Hex.concat(signature, suffix, suffixLength, magicBytes);
|
|
148
144
|
}
|
|
149
145
|
/**
|
|
150
146
|
* Validates a wrapped signature. Returns `true` if the wrapped signature is valid, `false` otherwise.
|
|
@@ -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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"}
|
|
@@ -2,13 +2,13 @@ import * as AbiParameters from '../core/AbiParameters.js';
|
|
|
2
2
|
import type * as Address from '../core/Address.js';
|
|
3
3
|
import * as Errors from '../core/Errors.js';
|
|
4
4
|
import * as Hex from '../core/Hex.js';
|
|
5
|
-
import * as Signature from '../core/Signature.js';
|
|
5
|
+
import type * as Signature from '../core/Signature.js';
|
|
6
6
|
/** Unwrapped ERC-6492 signature. */
|
|
7
7
|
export type Unwrapped = {
|
|
8
8
|
/** Calldata to pass to the target address for counterfactual verification. */
|
|
9
9
|
data: Hex.Hex;
|
|
10
10
|
/** The original signature. */
|
|
11
|
-
signature:
|
|
11
|
+
signature: Hex.Hex;
|
|
12
12
|
/** The target address to use for counterfactual verification. */
|
|
13
13
|
to: Address.Address;
|
|
14
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignatureErc6492.d.ts","sourceRoot":"","sources":["../../erc6492/SignatureErc6492.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"SignatureErc6492.d.ts","sourceRoot":"","sources":["../../erc6492/SignatureErc6492.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,KAAK,SAAS,MAAM,sBAAsB,CAAA;AAEtD,oCAAoC;AACpC,MAAM,MAAM,SAAS,GAAG;IACtB,8EAA8E;IAC9E,IAAI,EAAE,GAAG,CAAC,GAAG,CAAA;IACb,8BAA8B;IAC9B,SAAS,EAAE,GAAG,CAAC,GAAG,CAAA;IAClB,iEAAiE;IACjE,EAAE,EAAE,OAAO,CAAC,OAAO,CAAA;CACpB,CAAA;AAED,kCAAkC;AAClC,MAAM,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAA;AAE7B;;GAEG;AACH,eAAO,MAAM,UAAU,sEACwD,CAAA;AAE/E;;GAEG;AACH,eAAO,MAAM,mCAAmC,+yGAC8vG,CAAA;AAE9yG;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2Cf,CAAA;AAE5B;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,QAGtC;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,OAAO,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAG5D;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,UAAU,GAAG,SAAS,CAAA;IAE3B,KAAK,SAAS,GACV,aAAa,CAAC,IAAI,CAAC,SAAS,GAC5B,aAAa,CAAC,MAAM,CAAC,SAAS,GAC9B,SAAS,CAAC,OAAO,CAAC,SAAS,GAC3B,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CASlD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,SAAS,GACV,aAAa,CAAC,IAAI,CAAC,SAAS,GAC5B,aAAa,CAAC,MAAM,CAAC,SAAS,GAC9B,SAAS,CAAC,OAAO,CAAC,SAAS,GAC3B,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAW9C;AAED,MAAM,CAAC,OAAO,WAAW,IAAI,CAAC;IAC5B,KAAK,SAAS,GACV,aAAa,CAAC,MAAM,CAAC,SAAS,GAC9B,GAAG,CAAC,MAAM,CAAC,SAAS,GACpB,SAAS,CAAC,KAAK,CAAC,SAAS,GACzB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAOlD;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,7 +1,7 @@
|
|
|
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';
|
|
4
|
-
import * as Signature from '../core/Signature.js';
|
|
5
5
|
/** Unwrapped ERC-8010 signature. */
|
|
6
6
|
export type Unwrapped = {
|
|
7
7
|
/** Authorization signed by the delegatee. */
|
|
@@ -9,7 +9,9 @@ export type Unwrapped = {
|
|
|
9
9
|
/** Data to initialize the delegation. */
|
|
10
10
|
data?: Hex.Hex | undefined;
|
|
11
11
|
/** The original signature. */
|
|
12
|
-
signature:
|
|
12
|
+
signature: Hex.Hex;
|
|
13
|
+
/** Address of the initializer. */
|
|
14
|
+
to?: Address.Address | undefined;
|
|
13
15
|
};
|
|
14
16
|
/** Wrapped ERC-8010 signature. */
|
|
15
17
|
export type Wrapped = Hex.Hex;
|
|
@@ -17,6 +19,35 @@ export type Wrapped = Hex.Hex;
|
|
|
17
19
|
* Magic bytes used to identify ERC-8010 wrapped signatures.
|
|
18
20
|
*/
|
|
19
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
|
+
}];
|
|
20
51
|
/**
|
|
21
52
|
* Asserts that the wrapped signature is valid.
|
|
22
53
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignatureErc8010.d.ts","sourceRoot":"","sources":["../../erc8010/SignatureErc8010.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
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
|
/**
|
|
@@ -3,14 +3,14 @@ import * as AbiParameters from '../core/AbiParameters.js'
|
|
|
3
3
|
import type * as Address from '../core/Address.js'
|
|
4
4
|
import * as Errors from '../core/Errors.js'
|
|
5
5
|
import * as Hex from '../core/Hex.js'
|
|
6
|
-
import * as Signature from '../core/Signature.js'
|
|
6
|
+
import type * as Signature from '../core/Signature.js'
|
|
7
7
|
|
|
8
8
|
/** Unwrapped ERC-6492 signature. */
|
|
9
9
|
export type Unwrapped = {
|
|
10
10
|
/** Calldata to pass to the target address for counterfactual verification. */
|
|
11
11
|
data: Hex.Hex
|
|
12
12
|
/** The original signature. */
|
|
13
|
-
signature:
|
|
13
|
+
signature: Hex.Hex
|
|
14
14
|
/** The target address to use for counterfactual verification. */
|
|
15
15
|
to: Address.Address
|
|
16
16
|
}
|
|
@@ -166,13 +166,11 @@ export declare namespace from {
|
|
|
166
166
|
export function unwrap(wrapped: Wrapped): Unwrapped {
|
|
167
167
|
assert(wrapped)
|
|
168
168
|
|
|
169
|
-
const [to, data,
|
|
169
|
+
const [to, data, signature] = AbiParameters.decode(
|
|
170
170
|
AbiParameters.from('address, bytes, bytes'),
|
|
171
171
|
wrapped,
|
|
172
172
|
)
|
|
173
173
|
|
|
174
|
-
const signature = Signature.from(signature_hex)
|
|
175
|
-
|
|
176
174
|
return { data, signature, to }
|
|
177
175
|
}
|
|
178
176
|
|
|
@@ -214,7 +212,7 @@ export function wrap(value: Unwrapped): Wrapped {
|
|
|
214
212
|
AbiParameters.encode(AbiParameters.from('address, bytes, bytes'), [
|
|
215
213
|
to,
|
|
216
214
|
data,
|
|
217
|
-
|
|
215
|
+
signature,
|
|
218
216
|
]),
|
|
219
217
|
magicBytes,
|
|
220
218
|
)
|
|
@@ -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. */
|
|
@@ -11,7 +13,9 @@ export type Unwrapped = {
|
|
|
11
13
|
/** Data to initialize the delegation. */
|
|
12
14
|
data?: Hex.Hex | undefined
|
|
13
15
|
/** The original signature. */
|
|
14
|
-
signature:
|
|
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
|
*
|
|
@@ -40,10 +49,7 @@ export function assert(value: Unwrapped | Wrapped) {
|
|
|
40
49
|
if (typeof value === 'string') {
|
|
41
50
|
if (Hex.slice(value, -32) !== magicBytes)
|
|
42
51
|
throw new InvalidWrappedSignatureError(value)
|
|
43
|
-
} else
|
|
44
|
-
Signature.assert(value.authorization)
|
|
45
|
-
Signature.assert(value.signature)
|
|
46
|
-
}
|
|
52
|
+
} else Signature.assert(value.authorization)
|
|
47
53
|
}
|
|
48
54
|
|
|
49
55
|
export declare namespace assert {
|
|
@@ -110,32 +116,24 @@ export function unwrap(wrapped: Wrapped): Unwrapped {
|
|
|
110
116
|
|
|
111
117
|
const suffixLength = Hex.toNumber(Hex.slice(wrapped, -64, -32))
|
|
112
118
|
const suffix = Hex.slice(wrapped, -suffixLength - 64, -64)
|
|
113
|
-
const signature =
|
|
119
|
+
const signature = Hex.slice(wrapped, 0, -suffixLength - 64)
|
|
114
120
|
|
|
115
|
-
const
|
|
116
|
-
const delegation = Hex.slice(suffix, 32, 52)
|
|
117
|
-
const nonce = Hex.toBigInt(Hex.slice(suffix, 52, 84))
|
|
118
|
-
const yParity = Hex.toNumber(Hex.slice(suffix, 84, 85))
|
|
119
|
-
const r = Hex.toBigInt(Hex.slice(suffix, 85, 117))
|
|
120
|
-
const s = Hex.toBigInt(Hex.slice(suffix, 117, 149))
|
|
121
|
+
const [auth, to, data] = AbiParameters.decode(suffixParameters, suffix)
|
|
121
122
|
|
|
122
123
|
const authorization = Authorization.from({
|
|
123
|
-
address: delegation,
|
|
124
|
-
chainId,
|
|
125
|
-
nonce,
|
|
126
|
-
yParity,
|
|
127
|
-
r,
|
|
128
|
-
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,
|
|
129
130
|
})
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
})()
|
|
137
|
-
|
|
138
|
-
return { authorization, data, signature }
|
|
131
|
+
|
|
132
|
+
return {
|
|
133
|
+
authorization,
|
|
134
|
+
signature,
|
|
135
|
+
...(data && data !== '0x' ? { data, to } : {}),
|
|
136
|
+
}
|
|
139
137
|
}
|
|
140
138
|
|
|
141
139
|
export declare namespace unwrap {
|
|
@@ -167,31 +165,26 @@ export declare namespace unwrap {
|
|
|
167
165
|
* @returns Wrapped signature.
|
|
168
166
|
*/
|
|
169
167
|
export function wrap(value: Unwrapped): Wrapped {
|
|
168
|
+
const { data, signature } = value
|
|
169
|
+
|
|
170
170
|
assert(value)
|
|
171
171
|
|
|
172
|
-
const
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
value.authorization
|
|
180
|
-
value.authorization.
|
|
181
|
-
value.authorization.
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
[authorization, data ?? '0x'],
|
|
187
|
-
)
|
|
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
|
+
])
|
|
188
186
|
const suffixLength = Hex.fromNumber(Hex.size(suffix), { size: 32 })
|
|
189
|
-
return Hex.concat(
|
|
190
|
-
Signature.toHex(signature),
|
|
191
|
-
suffix,
|
|
192
|
-
suffixLength,
|
|
193
|
-
magicBytes,
|
|
194
|
-
)
|
|
187
|
+
return Hex.concat(signature, suffix, suffixLength, magicBytes)
|
|
195
188
|
}
|
|
196
189
|
|
|
197
190
|
export declare namespace wrap {
|
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'
|