viem 0.0.0-main.20240424T064647 → 0.0.0-main.20240424T233310

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.
Files changed (66) hide show
  1. package/_cjs/actions/public/verifyHash.js +12 -3
  2. package/_cjs/actions/public/verifyHash.js.map +1 -1
  3. package/_cjs/actions/public/verifyMessage.js.map +1 -1
  4. package/_cjs/chains/definitions/cyber.js +1 -1
  5. package/_cjs/errors/version.js +1 -1
  6. package/_cjs/utils/signature/hexToSignature.js +18 -3
  7. package/_cjs/utils/signature/hexToSignature.js.map +1 -1
  8. package/_cjs/utils/signature/recoverMessageAddress.js.map +1 -1
  9. package/_cjs/utils/signature/recoverPublicKey.js +22 -6
  10. package/_cjs/utils/signature/recoverPublicKey.js.map +1 -1
  11. package/_cjs/utils/signature/recoverTransactionAddress.js +1 -0
  12. package/_cjs/utils/signature/recoverTransactionAddress.js.map +1 -1
  13. package/_cjs/utils/signature/verifyMessage.js.map +1 -1
  14. package/_esm/actions/public/verifyHash.js +11 -2
  15. package/_esm/actions/public/verifyHash.js.map +1 -1
  16. package/_esm/actions/public/verifyMessage.js.map +1 -1
  17. package/_esm/chains/definitions/cyber.js +1 -1
  18. package/_esm/errors/version.js +1 -1
  19. package/_esm/utils/signature/hexToSignature.js +18 -3
  20. package/_esm/utils/signature/hexToSignature.js.map +1 -1
  21. package/_esm/utils/signature/recoverMessageAddress.js.map +1 -1
  22. package/_esm/utils/signature/recoverPublicKey.js +25 -9
  23. package/_esm/utils/signature/recoverPublicKey.js.map +1 -1
  24. package/_esm/utils/signature/recoverTransactionAddress.js +1 -0
  25. package/_esm/utils/signature/recoverTransactionAddress.js.map +1 -1
  26. package/_esm/utils/signature/verifyMessage.js.map +1 -1
  27. package/_types/actions/public/verifyHash.d.ts +5 -5
  28. package/_types/actions/public/verifyHash.d.ts.map +1 -1
  29. package/_types/actions/public/verifyMessage.d.ts +2 -2
  30. package/_types/actions/public/verifyMessage.d.ts.map +1 -1
  31. package/_types/actions/public/verifyTypedData.d.ts +2 -2
  32. package/_types/actions/public/verifyTypedData.d.ts.map +1 -1
  33. package/_types/errors/version.d.ts +1 -1
  34. package/_types/experimental/eip3074/utils/recoverAuthMessageAddress.d.ts +2 -2
  35. package/_types/experimental/eip3074/utils/recoverAuthMessageAddress.d.ts.map +1 -1
  36. package/_types/utils/signature/hexToSignature.d.ts +5 -0
  37. package/_types/utils/signature/hexToSignature.d.ts.map +1 -1
  38. package/_types/utils/signature/recoverAddress.d.ts +2 -2
  39. package/_types/utils/signature/recoverAddress.d.ts.map +1 -1
  40. package/_types/utils/signature/recoverMessageAddress.d.ts +2 -2
  41. package/_types/utils/signature/recoverMessageAddress.d.ts.map +1 -1
  42. package/_types/utils/signature/recoverPublicKey.d.ts +2 -2
  43. package/_types/utils/signature/recoverPublicKey.d.ts.map +1 -1
  44. package/_types/utils/signature/recoverTransactionAddress.d.ts +2 -2
  45. package/_types/utils/signature/recoverTransactionAddress.d.ts.map +1 -1
  46. package/_types/utils/signature/recoverTypedDataAddress.d.ts +2 -2
  47. package/_types/utils/signature/recoverTypedDataAddress.d.ts.map +1 -1
  48. package/_types/utils/signature/verifyMessage.d.ts +2 -2
  49. package/_types/utils/signature/verifyMessage.d.ts.map +1 -1
  50. package/_types/utils/signature/verifyTypedData.d.ts +2 -2
  51. package/_types/utils/signature/verifyTypedData.d.ts.map +1 -1
  52. package/actions/public/verifyHash.ts +15 -7
  53. package/actions/public/verifyMessage.ts +7 -2
  54. package/actions/public/verifyTypedData.ts +2 -2
  55. package/chains/definitions/cyber.ts +1 -1
  56. package/errors/version.ts +1 -1
  57. package/experimental/eip3074/utils/recoverAuthMessageAddress.ts +2 -2
  58. package/package.json +1 -1
  59. package/utils/signature/hexToSignature.ts +16 -3
  60. package/utils/signature/recoverAddress.ts +2 -2
  61. package/utils/signature/recoverMessageAddress.ts +7 -2
  62. package/utils/signature/recoverPublicKey.ts +36 -13
  63. package/utils/signature/recoverTransactionAddress.ts +3 -2
  64. package/utils/signature/recoverTypedDataAddress.ts +2 -2
  65. package/utils/signature/verifyMessage.ts +7 -2
  66. package/utils/signature/verifyTypedData.ts +2 -2
@@ -1,18 +1,27 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.verifyHash = void 0;
4
+ const index_js_1 = require("../../accounts/index.js");
4
5
  const abis_js_1 = require("../../constants/abis.js");
5
6
  const contracts_js_1 = require("../../constants/contracts.js");
6
7
  const contract_js_1 = require("../../errors/contract.js");
8
+ const encodeDeployData_js_1 = require("../../utils/abi/encodeDeployData.js");
7
9
  const isBytesEqual_js_1 = require("../../utils/data/isBytesEqual.js");
10
+ const isHex_js_1 = require("../../utils/data/isHex.js");
11
+ const toHex_js_1 = require("../../utils/encoding/toHex.js");
8
12
  const getAction_js_1 = require("../../utils/getAction.js");
9
- const index_js_1 = require("../../utils/index.js");
10
13
  const call_js_1 = require("./call.js");
11
14
  async function verifyHash(client, { address, hash, signature, ...callRequest }) {
12
- const signatureHex = (0, index_js_1.isHex)(signature) ? signature : (0, index_js_1.toHex)(signature);
15
+ const signatureHex = (() => {
16
+ if ((0, isHex_js_1.isHex)(signature))
17
+ return signature;
18
+ if (typeof signature === 'object' && 'r' in signature && 's' in signature)
19
+ return (0, index_js_1.signatureToHex)(signature);
20
+ return (0, toHex_js_1.bytesToHex)(signature);
21
+ })();
13
22
  try {
14
23
  const { data } = await (0, getAction_js_1.getAction)(client, call_js_1.call, 'call')({
15
- data: (0, index_js_1.encodeDeployData)({
24
+ data: (0, encodeDeployData_js_1.encodeDeployData)({
16
25
  abi: abis_js_1.universalSignatureValidatorAbi,
17
26
  args: [address, hash, signatureHex],
18
27
  bytecode: contracts_js_1.universalSignatureValidatorByteCode,
@@ -1 +1 @@
1
- {"version":3,"file":"verifyHash.js","sourceRoot":"","sources":["../../../actions/public/verifyHash.ts"],"names":[],"mappings":";;;AAIA,qDAAwE;AACxE,+DAAkF;AAClF,0DAA6D;AAK7D,sEAGyC;AAGzC,2DAAoD;AACpD,mDAAqE;AACrE,uCAAyE;AA+BlE,KAAK,UAAU,UAAU,CAC9B,MAAiC,EACjC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,WAAW,EAAwB;IAElE,MAAM,YAAY,GAAG,IAAA,gBAAK,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,SAAS,CAAC,CAAA;IAEpE,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,wBAAS,EAC9B,MAAM,EACN,cAAI,EACJ,MAAM,CACP,CAAC;YACA,IAAI,EAAE,IAAA,2BAAgB,EAAC;gBACrB,GAAG,EAAE,wCAA8B;gBACnC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC;gBACnC,QAAQ,EAAE,kDAAmC;aAC9C,CAAC;YACF,GAAG,WAAW;SACc,CAAC,CAAA;QAE/B,OAAO,IAAA,8BAAY,EAAC,IAAI,IAAI,KAAK,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gCAAkB,EAAE,CAAC;YAIxC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AA/BD,gCA+BC"}
1
+ {"version":3,"file":"verifyHash.js","sourceRoot":"","sources":["../../../actions/public/verifyHash.ts"],"names":[],"mappings":";;;AAEA,sDAAwD;AAGxD,qDAAwE;AACxE,+DAAkF;AAClF,0DAA6D;AAI7D,6EAG4C;AAC5C,sEAGyC;AACzC,wDAAsE;AACtE,4DAA+E;AAC/E,2DAAoD;AACpD,uCAAyE;AA+BlE,KAAK,UAAU,UAAU,CAC9B,MAAiC,EACjC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,WAAW,EAAwB;IAElE,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;QACzB,IAAI,IAAA,gBAAK,EAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;QACtC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS;YACvE,OAAO,IAAA,yBAAc,EAAC,SAAS,CAAC,CAAA;QAClC,OAAO,IAAA,qBAAU,EAAC,SAAS,CAAC,CAAA;IAC9B,CAAC,CAAC,EAAE,CAAA;IAEJ,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,wBAAS,EAC9B,MAAM,EACN,cAAI,EACJ,MAAM,CACP,CAAC;YACA,IAAI,EAAE,IAAA,sCAAgB,EAAC;gBACrB,GAAG,EAAE,wCAA8B;gBACnC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC;gBACnC,QAAQ,EAAE,kDAAmC;aAC9C,CAAC;YACF,GAAG,WAAW;SACc,CAAC,CAAA;QAE/B,OAAO,IAAA,8BAAY,EAAC,IAAI,IAAI,KAAK,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gCAAkB,EAAE,CAAC;YAIxC,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AApCD,gCAoCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"verifyMessage.js","sourceRoot":"","sources":["../../../actions/public/verifyMessage.ts"],"names":[],"mappings":";;;AAOA,mDAAkD;AAElD,mDAIwB;AA6BjB,KAAK,UAAU,aAAa,CACjC,MAAiC,EACjC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,WAAW,EAA2B;IAExE,MAAM,IAAI,GAAG,IAAA,sBAAW,EAAC,OAAO,CAAC,CAAA;IACjC,OAAO,IAAA,0BAAU,EAAC,MAAM,EAAE;QACxB,OAAO;QACP,IAAI;QACJ,SAAS;QACT,GAAG,WAAW;KACf,CAAC,CAAA;AACJ,CAAC;AAXD,sCAWC"}
1
+ {"version":3,"file":"verifyMessage.js","sourceRoot":"","sources":["../../../actions/public/verifyMessage.ts"],"names":[],"mappings":";;;AAYA,mDAAkD;AAElD,mDAIwB;AA6BjB,KAAK,UAAU,aAAa,CACjC,MAAiC,EACjC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,WAAW,EAA2B;IAExE,MAAM,IAAI,GAAG,IAAA,sBAAW,EAAC,OAAO,CAAC,CAAA;IACjC,OAAO,IAAA,0BAAU,EAAC,MAAM,EAAE;QACxB,OAAO;QACP,IAAI;QACJ,SAAS;QACT,GAAG,WAAW;KACf,CAAC,CAAA;AACJ,CAAC;AAXD,sCAWC"}
@@ -23,6 +23,6 @@ exports.cyber = (0, defineChain_js_1.defineChain)({
23
23
  address: '0xd1A3cb95E97Abc83777Ced3d474CCdD1AC948F0E',
24
24
  blockCreated: 43798,
25
25
  },
26
- }
26
+ },
27
27
  });
28
28
  //# sourceMappingURL=cyber.js.map
@@ -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.0.0-main.20240424T064647';
4
+ exports.version = '0.0.0-main.20240424T233310';
5
5
  //# sourceMappingURL=version.js.map
@@ -5,12 +5,27 @@ const secp256k1_1 = require("@noble/curves/secp256k1");
5
5
  const toHex_js_1 = require("../../utils/encoding/toHex.js");
6
6
  function hexToSignature(signatureHex) {
7
7
  const { r, s } = secp256k1_1.secp256k1.Signature.fromCompact(signatureHex.slice(2, 130));
8
- const v = BigInt(`0x${signatureHex.slice(130)}`);
8
+ const yParityOrV = Number(`0x${signatureHex.slice(130)}`);
9
+ const [v, yParity] = (() => {
10
+ if (yParityOrV === 0 || yParityOrV === 1)
11
+ return [undefined, yParityOrV];
12
+ if (yParityOrV === 27)
13
+ return [BigInt(yParityOrV), 0];
14
+ if (yParityOrV === 28)
15
+ return [BigInt(yParityOrV), 1];
16
+ throw new Error('Invalid yParityOrV value');
17
+ })();
18
+ if (typeof v !== 'undefined')
19
+ return {
20
+ r: (0, toHex_js_1.numberToHex)(r, { size: 32 }),
21
+ s: (0, toHex_js_1.numberToHex)(s, { size: 32 }),
22
+ v,
23
+ yParity,
24
+ };
9
25
  return {
10
26
  r: (0, toHex_js_1.numberToHex)(r, { size: 32 }),
11
27
  s: (0, toHex_js_1.numberToHex)(s, { size: 32 }),
12
- v,
13
- yParity: v === 28n ? 1 : 0,
28
+ yParity,
14
29
  };
15
30
  }
16
31
  exports.hexToSignature = hexToSignature;
@@ -1 +1 @@
1
- {"version":3,"file":"hexToSignature.js","sourceRoot":"","sources":["../../../utils/signature/hexToSignature.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AAInD,4DAGsC;AActC,SAAgB,cAAc,CAAC,YAAiB;IAC9C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,qBAAS,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC5E,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAChD,OAAO;QACL,CAAC,EAAE,IAAA,sBAAW,EAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC/B,CAAC,EAAE,IAAA,sBAAW,EAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACP,CAAA;AACvB,CAAC;AATD,wCASC"}
1
+ {"version":3,"file":"hexToSignature.js","sourceRoot":"","sources":["../../../utils/signature/hexToSignature.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AAInD,4DAGsC;AActC,SAAgB,cAAc,CAAC,YAAiB;IAC9C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,qBAAS,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC5E,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACzD,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;QACzB,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC;YAAE,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QACxE,IAAI,UAAU,KAAK,EAAE;YAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;QACrD,IAAI,UAAU,KAAK,EAAE;YAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;QACrD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7C,CAAC,CAAC,EAAE,CAAA;IAEJ,IAAI,OAAO,CAAC,KAAK,WAAW;QAC1B,OAAO;YACL,CAAC,EAAE,IAAA,sBAAW,EAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC/B,CAAC,EAAE,IAAA,sBAAW,EAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC/B,CAAC;YACD,OAAO;SACY,CAAA;IACvB,OAAO;QACL,CAAC,EAAE,IAAA,sBAAW,EAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC/B,CAAC,EAAE,IAAA,sBAAW,EAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC/B,OAAO;KACY,CAAA;AACvB,CAAC;AAtBD,wCAsBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"recoverMessageAddress.js","sourceRoot":"","sources":["../../../utils/signature/recoverMessageAddress.ts"],"names":[],"mappings":";;;AAKA,qDAAyE;AACzE,2DAG4B;AAcrB,KAAK,UAAU,qBAAqB,CAAC,EAC1C,OAAO,EACP,SAAS,GACuB;IAChC,OAAO,IAAA,kCAAc,EAAC,EAAE,IAAI,EAAE,IAAA,4BAAW,EAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;AAClE,CAAC;AALD,sDAKC"}
1
+ {"version":3,"file":"recoverMessageAddress.js","sourceRoot":"","sources":["../../../utils/signature/recoverMessageAddress.ts"],"names":[],"mappings":";;;AAUA,qDAAyE;AACzE,2DAG4B;AAcrB,KAAK,UAAU,qBAAqB,CAAC,EAC1C,OAAO,EACP,SAAS,GACuB;IAChC,OAAO,IAAA,kCAAc,EAAC,EAAE,IAAI,EAAE,IAAA,4BAAW,EAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;AAClE,CAAC;AALD,sDAKC"}
@@ -5,17 +5,33 @@ const isHex_js_1 = require("../data/isHex.js");
5
5
  const fromHex_js_1 = require("../encoding/fromHex.js");
6
6
  const toHex_js_1 = require("../encoding/toHex.js");
7
7
  async function recoverPublicKey({ hash, signature, }) {
8
- const signatureHex = (0, isHex_js_1.isHex)(signature) ? signature : (0, toHex_js_1.toHex)(signature);
9
8
  const hashHex = (0, isHex_js_1.isHex)(hash) ? hash : (0, toHex_js_1.toHex)(hash);
10
- let v = (0, fromHex_js_1.hexToNumber)(`0x${signatureHex.slice(130)}`);
11
- if (v === 0 || v === 1)
12
- v += 27;
13
9
  const { secp256k1 } = await Promise.resolve().then(() => require('@noble/curves/secp256k1'));
14
- const publicKey = secp256k1.Signature.fromCompact(signatureHex.substring(2, 130))
15
- .addRecoveryBit(v - 27)
10
+ const signature_ = await (async () => {
11
+ if (typeof signature === 'object' && 'r' in signature && 's' in signature) {
12
+ const { r, s, v, yParity } = signature;
13
+ const yParityOrV = Number(yParity ?? v);
14
+ const recoveryBit = toRecoveryBit(yParityOrV);
15
+ return new secp256k1.Signature((0, fromHex_js_1.hexToBigInt)(r), (0, fromHex_js_1.hexToBigInt)(s)).addRecoveryBit(recoveryBit);
16
+ }
17
+ const signatureHex = (0, isHex_js_1.isHex)(signature) ? signature : (0, toHex_js_1.toHex)(signature);
18
+ const yParityOrV = (0, fromHex_js_1.hexToNumber)(`0x${signatureHex.slice(130)}`);
19
+ const recoveryBit = toRecoveryBit(yParityOrV);
20
+ return secp256k1.Signature.fromCompact(signatureHex.substring(2, 130)).addRecoveryBit(recoveryBit);
21
+ })();
22
+ const publicKey = signature_
16
23
  .recoverPublicKey(hashHex.substring(2))
17
24
  .toHex(false);
18
25
  return `0x${publicKey}`;
19
26
  }
20
27
  exports.recoverPublicKey = recoverPublicKey;
28
+ function toRecoveryBit(yParityOrV) {
29
+ if (yParityOrV === 0 || yParityOrV === 1)
30
+ return yParityOrV;
31
+ if (yParityOrV === 27)
32
+ return 0;
33
+ if (yParityOrV === 28)
34
+ return 1;
35
+ throw new Error('Invalid yParityOrV value');
36
+ }
21
37
  //# sourceMappingURL=recoverPublicKey.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recoverPublicKey.js","sourceRoot":"","sources":["../../../utils/signature/recoverPublicKey.ts"],"names":[],"mappings":";;;AAEA,+CAA6D;AAC7D,uDAA+E;AAC/E,mDAA4C;AAcrC,KAAK,UAAU,gBAAgB,CAAC,EACrC,IAAI,EACJ,SAAS,GACkB;IAC3B,MAAM,YAAY,GAAG,IAAA,gBAAK,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,SAAS,CAAC,CAAA;IACpE,MAAM,OAAO,GAAG,IAAA,gBAAK,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,IAAI,CAAC,CAAA;IAIhD,IAAI,CAAC,GAAG,IAAA,wBAAW,EAAC,KAAK,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACnD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,CAAC,IAAI,EAAE,CAAA;IAE/B,MAAM,EAAE,SAAS,EAAE,GAAG,2CAAa,yBAAyB,EAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,CAC/C,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAC/B;SACE,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC;SACtB,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACtC,KAAK,CAAC,KAAK,CAAC,CAAA;IACf,OAAO,KAAK,SAAS,EAAE,CAAA;AACzB,CAAC;AApBD,4CAoBC"}
1
+ {"version":3,"file":"recoverPublicKey.js","sourceRoot":"","sources":["../../../utils/signature/recoverPublicKey.ts"],"names":[],"mappings":";;;AAEA,+CAA6D;AAC7D,uDAI+B;AAC/B,mDAA4C;AAcrC,KAAK,UAAU,gBAAgB,CAAC,EACrC,IAAI,EACJ,SAAS,GACkB;IAC3B,MAAM,OAAO,GAAG,IAAA,gBAAK,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,IAAI,CAAC,CAAA;IAEhD,MAAM,EAAE,SAAS,EAAE,GAAG,2CAAa,yBAAyB,EAAC,CAAA;IAC7D,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;QAEnC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;YAC1E,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,CAAA;YACtC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAE,CAAA;YACxC,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;YAC7C,OAAO,IAAI,SAAS,CAAC,SAAS,CAC5B,IAAA,wBAAW,EAAC,CAAC,CAAC,EACd,IAAA,wBAAW,EAAC,CAAC,CAAC,CACf,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QAC/B,CAAC;QAGD,MAAM,YAAY,GAAG,IAAA,gBAAK,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,gBAAK,EAAC,SAAS,CAAC,CAAA;QACpE,MAAM,UAAU,GAAG,IAAA,wBAAW,EAAC,KAAK,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC9D,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;QAC7C,OAAO,SAAS,CAAC,SAAS,CAAC,WAAW,CACpC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAC/B,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;IAC/B,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,SAAS,GAAG,UAAU;SACzB,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACtC,KAAK,CAAC,KAAK,CAAC,CAAA;IACf,OAAO,KAAK,SAAS,EAAE,CAAA;AACzB,CAAC;AAhCD,4CAgCC;AAED,SAAS,aAAa,CAAC,UAAkB;IACvC,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,UAAU,CAAA;IAC3D,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,CAAC,CAAA;IAC/B,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,CAAC,CAAA;IAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;AAC7C,CAAC"}
@@ -22,6 +22,7 @@ async function recoverTransactionAddress(parameters) {
22
22
  s: undefined,
23
23
  v: undefined,
24
24
  yParity: undefined,
25
+ sidecars: undefined,
25
26
  });
26
27
  return await (0, recoverAddress_js_1.recoverAddress)({
27
28
  hash: (0, keccak256_js_1.keccak256)(serialized),
@@ -1 +1 @@
1
- {"version":3,"file":"recoverTransactionAddress.js","sourceRoot":"","sources":["../../../utils/signature/recoverTransactionAddress.ts"],"names":[],"mappings":";;;AAIA,uDAAyE;AACzE,4EAAqE;AACrE,oFAG+C;AAC/C,2DAG4B;AAC5B,2DAG4B;AAgBrB,KAAK,UAAU,yBAAyB,CAC7C,UAA+C;IAE/C,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,CAAA;IAEnE,MAAM,WAAW,GAAG,IAAA,sCAAgB,EAAC,qBAAqB,CAAC,CAAA;IAE3D,MAAM,SAAS,GACb,UAAU;QACV,IAAA,kCAAc,EAAC;YACb,CAAC,EAAE,WAAW,CAAC,CAAE;YACjB,CAAC,EAAE,WAAW,CAAC,CAAE;YACjB,CAAC,EAAE,WAAW,CAAC,CAAE;YACjB,OAAO,EAAE,WAAW,CAAC,OAAQ;SAC9B,CAAC,CAAA;IAEJ,MAAM,UAAU,GAAG,IAAA,8CAAoB,EAAC;QACtC,GAAG,WAAW;QACd,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,SAAS;QACZ,OAAO,EAAE,SAAS;KACnB,CAAC,CAAA;IAEF,OAAO,MAAM,IAAA,kCAAc,EAAC;QAC1B,IAAI,EAAE,IAAA,wBAAS,EAAC,UAAU,CAAC;QAC3B,SAAS;KACV,CAAC,CAAA;AACJ,CAAC;AA5BD,8DA4BC"}
1
+ {"version":3,"file":"recoverTransactionAddress.js","sourceRoot":"","sources":["../../../utils/signature/recoverTransactionAddress.ts"],"names":[],"mappings":";;;AAIA,uDAAyE;AACzE,4EAAqE;AACrE,oFAG+C;AAC/C,2DAG4B;AAC5B,2DAG4B;AAgBrB,KAAK,UAAU,yBAAyB,CAC7C,UAA+C;IAE/C,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,CAAA;IAEnE,MAAM,WAAW,GAAG,IAAA,sCAAgB,EAAC,qBAAqB,CAAC,CAAA;IAE3D,MAAM,SAAS,GACb,UAAU;QACV,IAAA,kCAAc,EAAC;YACb,CAAC,EAAE,WAAW,CAAC,CAAE;YACjB,CAAC,EAAE,WAAW,CAAC,CAAE;YACjB,CAAC,EAAE,WAAW,CAAC,CAAE;YACjB,OAAO,EAAE,WAAW,CAAC,OAAQ;SAC9B,CAAC,CAAA;IAEJ,MAAM,UAAU,GAAG,IAAA,8CAAoB,EAAC;QACtC,GAAG,WAAW;QACd,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,SAAS;QACZ,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,SAAS;KACpB,CAAC,CAAA;IAEF,OAAO,MAAM,IAAA,kCAAc,EAAC;QAC1B,IAAI,EAAE,IAAA,wBAAS,EAAC,UAAU,CAAC;QAC3B,SAAS;KACV,CAAC,CAAA;AACJ,CAAC;AA7BD,8DA6BC"}
@@ -1 +1 @@
1
- {"version":3,"file":"verifyMessage.js","sourceRoot":"","sources":["../../../utils/signature/verifyMessage.ts"],"names":[],"mappings":";;;AAGA,4DAA+E;AAC/E,oEAGqC;AAGrC,yEAGmC;AA+B5B,KAAK,UAAU,aAAa,CAAC,EAClC,OAAO,EACP,OAAO,EACP,SAAS,GACe;IACxB,OAAO,IAAA,kCAAc,EACnB,IAAA,0BAAU,EAAC,OAAO,CAAC,EACnB,MAAM,IAAA,gDAAqB,EAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CACpD,CAAA;AACH,CAAC;AATD,sCASC"}
1
+ {"version":3,"file":"verifyMessage.js","sourceRoot":"","sources":["../../../utils/signature/verifyMessage.ts"],"names":[],"mappings":";;;AAQA,4DAA+E;AAC/E,oEAGqC;AAGrC,yEAGmC;AA+B5B,KAAK,UAAU,aAAa,CAAC,EAClC,OAAO,EACP,OAAO,EACP,SAAS,GACe;IACxB,OAAO,IAAA,kCAAc,EACnB,IAAA,0BAAU,EAAC,OAAO,CAAC,EACnB,MAAM,IAAA,gDAAqB,EAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CACpD,CAAA;AACH,CAAC;AATD,sCASC"}
@@ -1,9 +1,12 @@
1
+ import { signatureToHex } from '../../accounts/index.js';
1
2
  import { universalSignatureValidatorAbi } from '../../constants/abis.js';
2
3
  import { universalSignatureValidatorByteCode } from '../../constants/contracts.js';
3
4
  import { CallExecutionError } from '../../errors/contract.js';
5
+ import { encodeDeployData, } from '../../utils/abi/encodeDeployData.js';
4
6
  import { isBytesEqual, } from '../../utils/data/isBytesEqual.js';
7
+ import { isHex } from '../../utils/data/isHex.js';
8
+ import { bytesToHex } from '../../utils/encoding/toHex.js';
5
9
  import { getAction } from '../../utils/getAction.js';
6
- import { encodeDeployData, isHex, toHex } from '../../utils/index.js';
7
10
  import { call } from './call.js';
8
11
  /**
9
12
  * Verifies a message hash onchain using ERC-6492.
@@ -13,7 +16,13 @@ import { call } from './call.js';
13
16
  * @returns Whether or not the signature is valid. {@link VerifyHashReturnType}
14
17
  */
15
18
  export async function verifyHash(client, { address, hash, signature, ...callRequest }) {
16
- const signatureHex = isHex(signature) ? signature : toHex(signature);
19
+ const signatureHex = (() => {
20
+ if (isHex(signature))
21
+ return signature;
22
+ if (typeof signature === 'object' && 'r' in signature && 's' in signature)
23
+ return signatureToHex(signature);
24
+ return bytesToHex(signature);
25
+ })();
17
26
  try {
18
27
  const { data } = await getAction(client, call, 'call')({
19
28
  data: encodeDeployData({
@@ -1 +1 @@
1
- {"version":3,"file":"verifyHash.js","sourceRoot":"","sources":["../../../actions/public/verifyHash.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAA;AACxE,OAAO,EAAE,mCAAmC,EAAE,MAAM,8BAA8B,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAK7D,OAAO,EAEL,YAAY,GACb,MAAM,kCAAkC,CAAA;AAGzC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACrE,OAAO,EAA2C,IAAI,EAAE,MAAM,WAAW,CAAA;AAwBzE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAiC,EACjC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,WAAW,EAAwB;IAElE,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAEpE,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CAC9B,MAAM,EACN,IAAI,EACJ,MAAM,CACP,CAAC;YACA,IAAI,EAAE,gBAAgB,CAAC;gBACrB,GAAG,EAAE,8BAA8B;gBACnC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC;gBACnC,QAAQ,EAAE,mCAAmC;aAC9C,CAAC;YACF,GAAG,WAAW;SACc,CAAC,CAAA;QAE/B,OAAO,YAAY,CAAC,IAAI,IAAI,KAAK,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;YACxC,8GAA8G;YAC9G,kGAAkG;YAClG,0CAA0C;YAC1C,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"verifyHash.js","sourceRoot":"","sources":["../../../actions/public/verifyHash.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAGxD,OAAO,EAAE,8BAA8B,EAAE,MAAM,yBAAyB,CAAA;AACxE,OAAO,EAAE,mCAAmC,EAAE,MAAM,8BAA8B,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAI7D,OAAO,EAEL,gBAAgB,GACjB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAEL,YAAY,GACb,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAuB,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACtE,OAAO,EAAuB,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAA2C,IAAI,EAAE,MAAM,WAAW,CAAA;AAwBzE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAiC,EACjC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,WAAW,EAAwB;IAElE,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE;QACzB,IAAI,KAAK,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAA;QACtC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS;YACvE,OAAO,cAAc,CAAC,SAAS,CAAC,CAAA;QAClC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAA;IAC9B,CAAC,CAAC,EAAE,CAAA;IAEJ,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CAC9B,MAAM,EACN,IAAI,EACJ,MAAM,CACP,CAAC;YACA,IAAI,EAAE,gBAAgB,CAAC;gBACrB,GAAG,EAAE,8BAA8B;gBACnC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC;gBACnC,QAAQ,EAAE,mCAAmC;aAC9C,CAAC;YACF,GAAG,WAAW;SACc,CAAC,CAAA;QAE/B,OAAO,YAAY,CAAC,IAAI,IAAI,KAAK,EAAE,KAAK,CAAC,CAAA;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;YACxC,8GAA8G;YAC9G,kGAAkG;YAClG,0CAA0C;YAC1C,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"verifyMessage.js","sourceRoot":"","sources":["../../../actions/public/verifyMessage.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAGL,UAAU,GACX,MAAM,iBAAiB,CAAA;AAkBxB;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAiC,EACjC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,WAAW,EAA2B;IAExE,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IACjC,OAAO,UAAU,CAAC,MAAM,EAAE;QACxB,OAAO;QACP,IAAI;QACJ,SAAS;QACT,GAAG,WAAW;KACf,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"verifyMessage.js","sourceRoot":"","sources":["../../../actions/public/verifyMessage.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,OAAO,EAGL,UAAU,GACX,MAAM,iBAAiB,CAAA;AAkBxB;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAAiC,EACjC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,WAAW,EAA2B;IAExE,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IACjC,OAAO,UAAU,CAAC,MAAM,EAAE;QACxB,OAAO;QACP,IAAI;QACJ,SAAS;QACT,GAAG,WAAW;KACf,CAAC,CAAA;AACJ,CAAC"}
@@ -20,6 +20,6 @@ export const cyber = /*#__PURE__*/ defineChain({
20
20
  address: '0xd1A3cb95E97Abc83777Ced3d474CCdD1AC948F0E',
21
21
  blockCreated: 43798,
22
22
  },
23
- }
23
+ },
24
24
  });
25
25
  //# sourceMappingURL=cyber.js.map
@@ -1,2 +1,2 @@
1
- export const version = '0.0.0-main.20240424T064647';
1
+ export const version = '0.0.0-main.20240424T233310';
2
2
  //# sourceMappingURL=version.js.map
@@ -12,12 +12,27 @@ import { numberToHex, } from '../../utils/encoding/toHex.js';
12
12
  */
13
13
  export function hexToSignature(signatureHex) {
14
14
  const { r, s } = secp256k1.Signature.fromCompact(signatureHex.slice(2, 130));
15
- const v = BigInt(`0x${signatureHex.slice(130)}`);
15
+ const yParityOrV = Number(`0x${signatureHex.slice(130)}`);
16
+ const [v, yParity] = (() => {
17
+ if (yParityOrV === 0 || yParityOrV === 1)
18
+ return [undefined, yParityOrV];
19
+ if (yParityOrV === 27)
20
+ return [BigInt(yParityOrV), 0];
21
+ if (yParityOrV === 28)
22
+ return [BigInt(yParityOrV), 1];
23
+ throw new Error('Invalid yParityOrV value');
24
+ })();
25
+ if (typeof v !== 'undefined')
26
+ return {
27
+ r: numberToHex(r, { size: 32 }),
28
+ s: numberToHex(s, { size: 32 }),
29
+ v,
30
+ yParity,
31
+ };
16
32
  return {
17
33
  r: numberToHex(r, { size: 32 }),
18
34
  s: numberToHex(s, { size: 32 }),
19
- v,
20
- yParity: v === 28n ? 1 : 0,
35
+ yParity,
21
36
  };
22
37
  }
23
38
  //# sourceMappingURL=hexToSignature.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hexToSignature.js","sourceRoot":"","sources":["../../../utils/signature/hexToSignature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAInD,OAAO,EAEL,WAAW,GACZ,MAAM,+BAA+B,CAAA;AAItC;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,YAAiB;IAC9C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC5E,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAChD,OAAO;QACL,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC/B,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACP,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"hexToSignature.js","sourceRoot":"","sources":["../../../utils/signature/hexToSignature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAInD,OAAO,EAEL,WAAW,GACZ,MAAM,+BAA+B,CAAA;AAItC;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,YAAiB;IAC9C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC5E,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACzD,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;QACzB,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC;YAAE,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QACxE,IAAI,UAAU,KAAK,EAAE;YAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;QACrD,IAAI,UAAU,KAAK,EAAE;YAAE,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;QACrD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7C,CAAC,CAAC,EAAE,CAAA;IAEJ,IAAI,OAAO,CAAC,KAAK,WAAW;QAC1B,OAAO;YACL,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC/B,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;YAC/B,CAAC;YACD,OAAO;SACY,CAAA;IACvB,OAAO;QACL,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC/B,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAC/B,OAAO;KACY,CAAA;AACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"recoverMessageAddress.js","sourceRoot":"","sources":["../../../utils/signature/recoverMessageAddress.ts"],"names":[],"mappings":"AAKA,OAAO,EAA6B,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAEL,cAAc,GACf,MAAM,qBAAqB,CAAA;AAc5B,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAC1C,OAAO,EACP,SAAS,GACuB;IAChC,OAAO,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;AAClE,CAAC"}
1
+ {"version":3,"file":"recoverMessageAddress.js","sourceRoot":"","sources":["../../../utils/signature/recoverMessageAddress.ts"],"names":[],"mappings":"AAUA,OAAO,EAA6B,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAEL,cAAc,GACf,MAAM,qBAAqB,CAAA;AAc5B,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAC1C,OAAO,EACP,SAAS,GACuB;IAChC,OAAO,cAAc,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAA;AAClE,CAAC"}
@@ -1,19 +1,35 @@
1
1
  import { isHex } from '../data/isHex.js';
2
- import { hexToNumber } from '../encoding/fromHex.js';
2
+ import { hexToBigInt, hexToNumber, } from '../encoding/fromHex.js';
3
3
  import { toHex } from '../encoding/toHex.js';
4
4
  export async function recoverPublicKey({ hash, signature, }) {
5
- const signatureHex = isHex(signature) ? signature : toHex(signature);
6
5
  const hashHex = isHex(hash) ? hash : toHex(hash);
7
- // Derive v = recoveryId + 27 from end of the signature (27 is added when signing the message)
8
- // The recoveryId represents the y-coordinate on the secp256k1 elliptic curve and can have a value [0, 1].
9
- let v = hexToNumber(`0x${signatureHex.slice(130)}`);
10
- if (v === 0 || v === 1)
11
- v += 27;
12
6
  const { secp256k1 } = await import('@noble/curves/secp256k1');
13
- const publicKey = secp256k1.Signature.fromCompact(signatureHex.substring(2, 130))
14
- .addRecoveryBit(v - 27)
7
+ const signature_ = await (async () => {
8
+ // typeof signature: `Signature`
9
+ if (typeof signature === 'object' && 'r' in signature && 's' in signature) {
10
+ const { r, s, v, yParity } = signature;
11
+ const yParityOrV = Number(yParity ?? v);
12
+ const recoveryBit = toRecoveryBit(yParityOrV);
13
+ return new secp256k1.Signature(hexToBigInt(r), hexToBigInt(s)).addRecoveryBit(recoveryBit);
14
+ }
15
+ // typeof signature: `Hex | ByteArray`
16
+ const signatureHex = isHex(signature) ? signature : toHex(signature);
17
+ const yParityOrV = hexToNumber(`0x${signatureHex.slice(130)}`);
18
+ const recoveryBit = toRecoveryBit(yParityOrV);
19
+ return secp256k1.Signature.fromCompact(signatureHex.substring(2, 130)).addRecoveryBit(recoveryBit);
20
+ })();
21
+ const publicKey = signature_
15
22
  .recoverPublicKey(hashHex.substring(2))
16
23
  .toHex(false);
17
24
  return `0x${publicKey}`;
18
25
  }
26
+ function toRecoveryBit(yParityOrV) {
27
+ if (yParityOrV === 0 || yParityOrV === 1)
28
+ return yParityOrV;
29
+ if (yParityOrV === 27)
30
+ return 0;
31
+ if (yParityOrV === 28)
32
+ return 1;
33
+ throw new Error('Invalid yParityOrV value');
34
+ }
19
35
  //# sourceMappingURL=recoverPublicKey.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recoverPublicKey.js","sourceRoot":"","sources":["../../../utils/signature/recoverPublicKey.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAA6B,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAc5C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,IAAI,EACJ,SAAS,GACkB;IAC3B,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACpE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEhD,8FAA8F;IAC9F,0GAA0G;IAC1G,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACnD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,CAAC,IAAI,EAAE,CAAA;IAE/B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,CAC/C,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAC/B;SACE,cAAc,CAAC,CAAC,GAAG,EAAE,CAAC;SACtB,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACtC,KAAK,CAAC,KAAK,CAAC,CAAA;IACf,OAAO,KAAK,SAAS,EAAE,CAAA;AACzB,CAAC"}
1
+ {"version":3,"file":"recoverPublicKey.js","sourceRoot":"","sources":["../../../utils/signature/recoverPublicKey.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAEL,WAAW,EACX,WAAW,GACZ,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAc5C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EACrC,IAAI,EACJ,SAAS,GACkB;IAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAEhD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;IAC7D,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;QACnC,gCAAgC;QAChC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;YAC1E,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,CAAA;YACtC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAE,CAAA;YACxC,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;YAC7C,OAAO,IAAI,SAAS,CAAC,SAAS,CAC5B,WAAW,CAAC,CAAC,CAAC,EACd,WAAW,CAAC,CAAC,CAAC,CACf,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;QAC/B,CAAC;QAED,sCAAsC;QACtC,MAAM,YAAY,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACpE,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC9D,MAAM,WAAW,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;QAC7C,OAAO,SAAS,CAAC,SAAS,CAAC,WAAW,CACpC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAC/B,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;IAC/B,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,SAAS,GAAG,UAAU;SACzB,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACtC,KAAK,CAAC,KAAK,CAAC,CAAA;IACf,OAAO,KAAK,SAAS,EAAE,CAAA;AACzB,CAAC;AAED,SAAS,aAAa,CAAC,UAAkB;IACvC,IAAI,UAAU,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC;QAAE,OAAO,UAAU,CAAA;IAC3D,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,CAAC,CAAA;IAC/B,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO,CAAC,CAAA;IAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;AAC7C,CAAC"}
@@ -19,6 +19,7 @@ export async function recoverTransactionAddress(parameters) {
19
19
  s: undefined,
20
20
  v: undefined,
21
21
  yParity: undefined,
22
+ sidecars: undefined,
22
23
  });
23
24
  return await recoverAddress({
24
25
  hash: keccak256(serialized),
@@ -1 +1 @@
1
- {"version":3,"file":"recoverTransactionAddress.js","sourceRoot":"","sources":["../../../utils/signature/recoverTransactionAddress.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2B,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAEL,oBAAoB,GACrB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAEL,cAAc,GACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAEL,cAAc,GACf,MAAM,qBAAqB,CAAA;AAgB5B,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,UAA+C;IAE/C,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,CAAA;IAEnE,MAAM,WAAW,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,CAAA;IAE3D,MAAM,SAAS,GACb,UAAU;QACV,cAAc,CAAC;YACb,CAAC,EAAE,WAAW,CAAC,CAAE;YACjB,CAAC,EAAE,WAAW,CAAC,CAAE;YACjB,CAAC,EAAE,WAAW,CAAC,CAAE;YACjB,OAAO,EAAE,WAAW,CAAC,OAAQ;SAC9B,CAAC,CAAA;IAEJ,MAAM,UAAU,GAAG,oBAAoB,CAAC;QACtC,GAAG,WAAW;QACd,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,SAAS;QACZ,OAAO,EAAE,SAAS;KACnB,CAAC,CAAA;IAEF,OAAO,MAAM,cAAc,CAAC;QAC1B,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC;QAC3B,SAAS;KACV,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"recoverTransactionAddress.js","sourceRoot":"","sources":["../../../utils/signature/recoverTransactionAddress.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2B,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAEL,oBAAoB,GACrB,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAEL,cAAc,GACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAEL,cAAc,GACf,MAAM,qBAAqB,CAAA;AAgB5B,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,UAA+C;IAE/C,MAAM,EAAE,qBAAqB,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,UAAU,CAAA;IAEnE,MAAM,WAAW,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,CAAA;IAE3D,MAAM,SAAS,GACb,UAAU;QACV,cAAc,CAAC;YACb,CAAC,EAAE,WAAW,CAAC,CAAE;YACjB,CAAC,EAAE,WAAW,CAAC,CAAE;YACjB,CAAC,EAAE,WAAW,CAAC,CAAE;YACjB,OAAO,EAAE,WAAW,CAAC,OAAQ;SAC9B,CAAC,CAAA;IAEJ,MAAM,UAAU,GAAG,oBAAoB,CAAC;QACtC,GAAG,WAAW;QACd,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,SAAS;QACZ,CAAC,EAAE,SAAS;QACZ,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,SAAS;KACpB,CAAC,CAAA;IAEF,OAAO,MAAM,cAAc,CAAC;QAC1B,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC;QAC3B,SAAS;KACV,CAAC,CAAA;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"verifyMessage.js","sourceRoot":"","sources":["../../../utils/signature/verifyMessage.ts"],"names":[],"mappings":"AAGA,OAAO,EAA4B,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC/E,OAAO,EAEL,cAAc,GACf,MAAM,8BAA8B,CAAA;AAGrC,OAAO,EAEL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AAmBnC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,OAAO,EACP,OAAO,EACP,SAAS,GACe;IACxB,OAAO,cAAc,CACnB,UAAU,CAAC,OAAO,CAAC,EACnB,MAAM,qBAAqB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CACpD,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"verifyMessage.js","sourceRoot":"","sources":["../../../utils/signature/verifyMessage.ts"],"names":[],"mappings":"AAQA,OAAO,EAA4B,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC/E,OAAO,EAEL,cAAc,GACf,MAAM,8BAA8B,CAAA;AAGrC,OAAO,EAEL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AAmBnC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,OAAO,EACP,OAAO,EACP,SAAS,GACe;IACxB,OAAO,cAAc,CACnB,UAAU,CAAC,OAAO,CAAC,EACnB,MAAM,qBAAqB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CACpD,CAAA;AACH,CAAC"}
@@ -3,11 +3,11 @@ import type { Client } from '../../clients/createClient.js';
3
3
  import type { Transport } from '../../clients/transports/createTransport.js';
4
4
  import type { ErrorType } from '../../errors/utils.js';
5
5
  import type { Chain } from '../../types/chain.js';
6
- import type { ByteArray, Hex } from '../../types/misc.js';
7
- import type { EncodeDeployDataErrorType } from '../../utils/abi/encodeDeployData.js';
6
+ import type { ByteArray, Hex, Signature } from '../../types/misc.js';
7
+ import { type EncodeDeployDataErrorType } from '../../utils/abi/encodeDeployData.js';
8
8
  import { type IsBytesEqualErrorType } from '../../utils/data/isBytesEqual.js';
9
- import type { IsHexErrorType } from '../../utils/data/isHex.js';
10
- import type { ToHexErrorType } from '../../utils/encoding/toHex.js';
9
+ import { type IsHexErrorType } from '../../utils/data/isHex.js';
10
+ import { type ToHexErrorType } from '../../utils/encoding/toHex.js';
11
11
  import { type CallErrorType, type CallParameters } from './call.js';
12
12
  export type VerifyHashParameters = Pick<CallParameters, 'blockNumber' | 'blockTag'> & {
13
13
  /** The address that signed the original message. */
@@ -15,7 +15,7 @@ export type VerifyHashParameters = Pick<CallParameters, 'blockNumber' | 'blockTa
15
15
  /** The hash to be verified. */
16
16
  hash: Hex;
17
17
  /** The signature that was generated by signing the message with the address's private key. */
18
- signature: Hex | ByteArray;
18
+ signature: Hex | ByteArray | Signature;
19
19
  };
20
20
  export type VerifyHashReturnType = boolean;
21
21
  export type VerifyHashErrorType = CallErrorType | IsHexErrorType | ToHexErrorType | IsBytesEqualErrorType | EncodeDeployDataErrorType | ErrorType;
@@ -1 +1 @@
1
- {"version":3,"file":"verifyHash.d.ts","sourceRoot":"","sources":["../../../actions/public/verifyHash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAI5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,kCAAkC,CAAA;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAGnE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAQ,MAAM,WAAW,CAAA;AAEzE,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,cAAc,EACd,aAAa,GAAG,UAAU,CAC3B,GAAG;IACF,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,+BAA+B;IAC/B,IAAI,EAAE,GAAG,CAAA;IACT,8FAA8F;IAC9F,SAAS,EAAE,GAAG,GAAG,SAAS,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAA;AAE1C,MAAM,MAAM,mBAAmB,GAC3B,aAAa,GACb,cAAc,GACd,cAAc,GACd,qBAAqB,GACrB,yBAAyB,GACzB,SAAS,CAAA;AAEb;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,MAAM,SAAS,KAAK,GAAG,SAAS,EAC/D,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EACjC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,EAAE,oBAAoB,GACjE,OAAO,CAAC,oBAAoB,CAAC,CA4B/B"}
1
+ {"version":3,"file":"verifyHash.d.ts","sourceRoot":"","sources":["../../../actions/public/verifyHash.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAI5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EACL,KAAK,yBAAyB,EAE/B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,KAAK,cAAc,EAAS,MAAM,2BAA2B,CAAA;AACtE,OAAO,EAAE,KAAK,cAAc,EAAc,MAAM,+BAA+B,CAAA;AAE/E,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAQ,MAAM,WAAW,CAAA;AAEzE,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,cAAc,EACd,aAAa,GAAG,UAAU,CAC3B,GAAG;IACF,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,+BAA+B;IAC/B,IAAI,EAAE,GAAG,CAAA;IACT,8FAA8F;IAC9F,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAA;AAE1C,MAAM,MAAM,mBAAmB,GAC3B,aAAa,GACb,cAAc,GACd,cAAc,GACd,qBAAqB,GACrB,yBAAyB,GACzB,SAAS,CAAA;AAEb;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,MAAM,SAAS,KAAK,GAAG,SAAS,EAC/D,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EACjC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,EAAE,oBAAoB,GACjE,OAAO,CAAC,oBAAoB,CAAC,CAiC/B"}
@@ -3,7 +3,7 @@ import type { Client } from '../../clients/createClient.js';
3
3
  import type { Transport } from '../../clients/transports/createTransport.js';
4
4
  import type { ErrorType } from '../../errors/utils.js';
5
5
  import type { Chain } from '../../types/chain.js';
6
- import type { ByteArray, Hex, SignableMessage } from '../../types/misc.js';
6
+ import type { ByteArray, Hex, SignableMessage, Signature } from '../../types/misc.js';
7
7
  import type { HashMessageErrorType } from '../../utils/signature/hashMessage.js';
8
8
  import { type VerifyHashErrorType, type VerifyHashParameters } from './verifyHash.js';
9
9
  export type VerifyMessageParameters = Omit<VerifyHashParameters, 'hash'> & {
@@ -12,7 +12,7 @@ export type VerifyMessageParameters = Omit<VerifyHashParameters, 'hash'> & {
12
12
  /** The message to be verified. */
13
13
  message: SignableMessage;
14
14
  /** The signature that was generated by signing the message with the address's private key. */
15
- signature: Hex | ByteArray;
15
+ signature: Hex | ByteArray | Signature;
16
16
  };
17
17
  export type VerifyMessageReturnType = boolean;
18
18
  export type VerifyMessageErrorType = HashMessageErrorType | VerifyHashErrorType | ErrorType;
@@ -1 +1 @@
1
- {"version":3,"file":"verifyMessage.d.ts","sourceRoot":"","sources":["../../../actions/public/verifyMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAE1B,MAAM,iBAAiB,CAAA;AAExB,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG;IACzE,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,kCAAkC;IAClC,OAAO,EAAE,eAAe,CAAA;IACxB,8FAA8F;IAC9F,SAAS,EAAE,GAAG,GAAG,SAAS,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAA;AAE7C,MAAM,MAAM,sBAAsB,GAC9B,oBAAoB,GACpB,mBAAmB,GACnB,SAAS,CAAA;AAEb;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,MAAM,SAAS,KAAK,GAAG,SAAS,EAClE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EACjC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,EAAE,uBAAuB,GACvE,OAAO,CAAC,uBAAuB,CAAC,CAQlC"}
1
+ {"version":3,"file":"verifyMessage.d.ts","sourceRoot":"","sources":["../../../actions/public/verifyMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EACV,SAAS,EACT,GAAG,EACH,eAAe,EACf,SAAS,EACV,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAE1B,MAAM,iBAAiB,CAAA;AAExB,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG;IACzE,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,kCAAkC;IAClC,OAAO,EAAE,eAAe,CAAA;IACxB,8FAA8F;IAC9F,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAA;AAE7C,MAAM,MAAM,sBAAsB,GAC9B,oBAAoB,GACpB,mBAAmB,GACnB,SAAS,CAAA;AAEb;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,MAAM,SAAS,KAAK,GAAG,SAAS,EAClE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EACjC,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,WAAW,EAAE,EAAE,uBAAuB,GACvE,OAAO,CAAC,uBAAuB,CAAC,CAQlC"}
@@ -3,7 +3,7 @@ import type { Client } from '../../clients/createClient.js';
3
3
  import type { Transport } from '../../clients/transports/createTransport.js';
4
4
  import type { ErrorType } from '../../errors/utils.js';
5
5
  import type { Chain } from '../../types/chain.js';
6
- import type { ByteArray, Hex } from '../../types/misc.js';
6
+ import type { ByteArray, Hex, Signature } from '../../types/misc.js';
7
7
  import type { TypedDataDefinition } from '../../types/typedData.js';
8
8
  import { type HashTypedDataErrorType } from '../../utils/signature/hashTypedData.js';
9
9
  import { type VerifyHashErrorType, type VerifyHashParameters } from './verifyHash.js';
@@ -11,7 +11,7 @@ export type VerifyTypedDataParameters<typedData extends TypedData | Record<strin
11
11
  /** The address to verify the typed data for. */
12
12
  address: Address;
13
13
  /** The signature to verify */
14
- signature: Hex | ByteArray;
14
+ signature: Hex | ByteArray | Signature;
15
15
  };
16
16
  export type VerifyTypedDataReturnType = boolean;
17
17
  export type VerifyTypedDataErrorType = HashTypedDataErrorType | VerifyHashErrorType | ErrorType;
@@ -1 +1 @@
1
- {"version":3,"file":"verifyTypedData.d.ts","sourceRoot":"","sources":["../../../actions/public/verifyTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EACL,KAAK,sBAAsB,EAE5B,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAE1B,MAAM,iBAAiB,CAAA;AAExB,MAAM,MAAM,yBAAyB,CACnC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjE,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,GAAG,MAAM,SAAS,IACpE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GACpC,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG;IAC5C,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,8BAA8B;IAC9B,SAAS,EAAE,GAAG,GAAG,SAAS,CAAA;CAC3B,CAAA;AAEH,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAA;AAE/C,MAAM,MAAM,wBAAwB,GAChC,sBAAsB,GACtB,mBAAmB,GACnB,SAAS,CAAA;AAEb;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,KAAK,CAAC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,EACpD,KAAK,SAAS,KAAK,GAAG,SAAS,EAE/B,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAChC,UAAU,EAAE,yBAAyB,CAAC,SAAS,EAAE,WAAW,CAAC,GAC5D,OAAO,CAAC,yBAAyB,CAAC,CAiBpC"}
1
+ {"version":3,"file":"verifyTypedData.d.ts","sourceRoot":"","sources":["../../../actions/public/verifyTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAA;AAC5E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EACL,KAAK,sBAAsB,EAE5B,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EAE1B,MAAM,iBAAiB,CAAA;AAExB,MAAM,MAAM,yBAAyB,CACnC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjE,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,GAAG,MAAM,SAAS,IACpE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,GACpC,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG;IAC5C,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,8BAA8B;IAC9B,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,CAAA;CACvC,CAAA;AAEH,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAA;AAE/C,MAAM,MAAM,wBAAwB,GAChC,sBAAsB,GACtB,mBAAmB,GACnB,SAAS,CAAA;AAEb;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,KAAK,CAAC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,EACpD,KAAK,SAAS,KAAK,GAAG,SAAS,EAE/B,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAChC,UAAU,EAAE,yBAAyB,CAAC,SAAS,EAAE,WAAW,CAAC,GAC5D,OAAO,CAAC,yBAAyB,CAAC,CAiBpC"}
@@ -1,2 +1,2 @@
1
- export declare const version = "0.0.0-main.20240424T064647";
1
+ export declare const version = "0.0.0-main.20240424T233310";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1,10 +1,10 @@
1
1
  import type { Address } from 'abitype';
2
- import type { ByteArray, Hex } from '../../../types/misc.js';
2
+ import type { ByteArray, Hex, Signature } from '../../../types/misc.js';
3
3
  import type { ErrorType } from '../../../errors/utils.js';
4
4
  import { type RecoverAddressErrorType } from '../../../utils/signature/recoverAddress.js';
5
5
  import { type ToAuthMessageParameters } from './toAuthMessage.js';
6
6
  export type RecoverAuthMessageAddressParameters = ToAuthMessageParameters & {
7
- signature: Hex | ByteArray;
7
+ signature: Hex | ByteArray | Signature;
8
8
  };
9
9
  export type RecoverAuthMessageAddressReturnType = Address;
10
10
  export type RecoverAuthMessageAddressErrorType = RecoverAddressErrorType | ErrorType;
@@ -1 +1 @@
1
- {"version":3,"file":"recoverAuthMessageAddress.d.ts","sourceRoot":"","sources":["../../../../experimental/eip3074/utils/recoverAuthMessageAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAA;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,4CAA4C,CAAA;AACnD,OAAO,EAAE,KAAK,uBAAuB,EAAiB,MAAM,oBAAoB,CAAA;AAEhF,MAAM,MAAM,mCAAmC,GAAG,uBAAuB,GAAG;IAC1E,SAAS,EAAE,GAAG,GAAG,SAAS,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,mCAAmC,GAAG,OAAO,CAAA;AAEzD,MAAM,MAAM,kCAAkC,GAC1C,uBAAuB,GACvB,SAAS,CAAA;AAEb,wBAAsB,yBAAyB,CAAC,EAC9C,SAAS,EACT,GAAG,UAAU,EACd,EAAE,mCAAmC,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAGpF"}
1
+ {"version":3,"file":"recoverAuthMessageAddress.d.ts","sourceRoot":"","sources":["../../../../experimental/eip3074/utils/recoverAuthMessageAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,4CAA4C,CAAA;AACnD,OAAO,EAAE,KAAK,uBAAuB,EAAiB,MAAM,oBAAoB,CAAA;AAEhF,MAAM,MAAM,mCAAmC,GAAG,uBAAuB,GAAG;IAC1E,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,mCAAmC,GAAG,OAAO,CAAA;AAEzD,MAAM,MAAM,kCAAkC,GAC1C,uBAAuB,GACvB,SAAS,CAAA;AAEb,wBAAsB,yBAAyB,CAAC,EAC9C,SAAS,EACT,GAAG,UAAU,EACd,EAAE,mCAAmC,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAGpF"}
@@ -17,5 +17,10 @@ export declare function hexToSignature(signatureHex: Hex): {
17
17
  s: `0x${string}`;
18
18
  v: bigint;
19
19
  yParity: number;
20
+ } | {
21
+ r: `0x${string}`;
22
+ s: `0x${string}`;
23
+ yParity: number;
24
+ v?: never;
20
25
  };
21
26
  //# sourceMappingURL=hexToSignature.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hexToSignature.d.ts","sourceRoot":"","sources":["../../../utils/signature/hexToSignature.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,GAAG,EAAa,MAAM,qBAAqB,CAAA;AACzD,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,+BAA+B,CAAA;AAEtC,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,GAAG,SAAS,CAAA;AAEtE;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,GAAG;;;;;EAS/C"}
1
+ {"version":3,"file":"hexToSignature.d.ts","sourceRoot":"","sources":["../../../utils/signature/hexToSignature.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,GAAG,EAAa,MAAM,qBAAqB,CAAA;AACzD,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,+BAA+B,CAAA;AAEtC,MAAM,MAAM,uBAAuB,GAAG,oBAAoB,GAAG,SAAS,CAAA;AAEtE;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,GAAG;;;;;;;;;;EAsB/C"}
@@ -1,9 +1,9 @@
1
1
  import type { Address } from 'abitype';
2
- import type { ByteArray, Hex } from '../../types/misc.js';
2
+ import type { ByteArray, Hex, Signature } from '../../types/misc.js';
3
3
  import type { ErrorType } from '../../errors/utils.js';
4
4
  export type RecoverAddressParameters = {
5
5
  hash: Hex | ByteArray;
6
- signature: Hex | ByteArray;
6
+ signature: Hex | ByteArray | Signature;
7
7
  };
8
8
  export type RecoverAddressReturnType = Address;
9
9
  export type RecoverAddressErrorType = ErrorType;
@@ -1 +1 @@
1
- {"version":3,"file":"recoverAddress.d.ts","sourceRoot":"","sources":["../../../utils/signature/recoverAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGtC,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAGtD,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,GAAG,GAAG,SAAS,CAAA;IACrB,SAAS,EAAE,GAAG,GAAG,SAAS,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAAA;AAE9C,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAA;AAE/C,wBAAsB,cAAc,CAAC,EACnC,IAAI,EACJ,SAAS,GACV,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAE9D"}
1
+ {"version":3,"file":"recoverAddress.d.ts","sourceRoot":"","sources":["../../../utils/signature/recoverAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGtC,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAGtD,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,GAAG,GAAG,SAAS,CAAA;IACrB,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAAA;AAE9C,MAAM,MAAM,uBAAuB,GAAG,SAAS,CAAA;AAE/C,wBAAsB,cAAc,CAAC,EACnC,IAAI,EACJ,SAAS,GACV,EAAE,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAE9D"}
@@ -1,11 +1,11 @@
1
1
  import type { Address } from 'abitype';
2
- import type { ByteArray, Hex, SignableMessage } from '../../types/misc.js';
2
+ import type { ByteArray, Hex, SignableMessage, Signature } from '../../types/misc.js';
3
3
  import type { ErrorType } from '../../errors/utils.js';
4
4
  import { type HashMessageErrorType } from './hashMessage.js';
5
5
  import { type RecoverAddressErrorType } from './recoverAddress.js';
6
6
  export type RecoverMessageAddressParameters = {
7
7
  message: SignableMessage;
8
- signature: Hex | ByteArray;
8
+ signature: Hex | ByteArray | Signature;
9
9
  };
10
10
  export type RecoverMessageAddressReturnType = Address;
11
11
  export type RecoverMessageAddressErrorType = HashMessageErrorType | RecoverAddressErrorType | ErrorType;
@@ -1 +1 @@
1
- {"version":3,"file":"recoverMessageAddress.d.ts","sourceRoot":"","sources":["../../../utils/signature/recoverMessageAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,KAAK,oBAAoB,EAAe,MAAM,kBAAkB,CAAA;AACzE,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,qBAAqB,CAAA;AAE5B,MAAM,MAAM,+BAA+B,GAAG;IAC5C,OAAO,EAAE,eAAe,CAAA;IACxB,SAAS,EAAE,GAAG,GAAG,SAAS,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG,OAAO,CAAA;AAErD,MAAM,MAAM,8BAA8B,GACtC,oBAAoB,GACpB,uBAAuB,GACvB,SAAS,CAAA;AAEb,wBAAsB,qBAAqB,CAAC,EAC1C,OAAO,EACP,SAAS,GACV,EAAE,+BAA+B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAE5E"}
1
+ {"version":3,"file":"recoverMessageAddress.d.ts","sourceRoot":"","sources":["../../../utils/signature/recoverMessageAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EACV,SAAS,EACT,GAAG,EACH,eAAe,EACf,SAAS,EACV,MAAM,qBAAqB,CAAA;AAE5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,KAAK,oBAAoB,EAAe,MAAM,kBAAkB,CAAA;AACzE,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,qBAAqB,CAAA;AAE5B,MAAM,MAAM,+BAA+B,GAAG;IAC5C,OAAO,EAAE,eAAe,CAAA;IACxB,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG,OAAO,CAAA;AAErD,MAAM,MAAM,8BAA8B,GACtC,oBAAoB,GACpB,uBAAuB,GACvB,SAAS,CAAA;AAEb,wBAAsB,qBAAqB,CAAC,EAC1C,OAAO,EACP,SAAS,GACV,EAAE,+BAA+B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAE5E"}
@@ -1,10 +1,10 @@
1
1
  import type { ErrorType } from '../../errors/utils.js';
2
- import type { ByteArray, Hex } from '../../types/misc.js';
2
+ import type { ByteArray, Hex, Signature } from '../../types/misc.js';
3
3
  import { type IsHexErrorType } from '../data/isHex.js';
4
4
  import { type HexToNumberErrorType } from '../encoding/fromHex.js';
5
5
  export type RecoverPublicKeyParameters = {
6
6
  hash: Hex | ByteArray;
7
- signature: Hex | ByteArray;
7
+ signature: Hex | ByteArray | Signature;
8
8
  };
9
9
  export type RecoverPublicKeyReturnType = Hex;
10
10
  export type RecoverPublicKeyErrorType = HexToNumberErrorType | IsHexErrorType | ErrorType;
@@ -1 +1 @@
1
- {"version":3,"file":"recoverPublicKey.d.ts","sourceRoot":"","sources":["../../../utils/signature/recoverPublicKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,KAAK,cAAc,EAAS,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,KAAK,oBAAoB,EAAe,MAAM,wBAAwB,CAAA;AAG/E,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,GAAG,GAAG,SAAS,CAAA;IACrB,SAAS,EAAE,GAAG,GAAG,SAAS,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG,GAAG,CAAA;AAE5C,MAAM,MAAM,yBAAyB,GACjC,oBAAoB,GACpB,cAAc,GACd,SAAS,CAAA;AAEb,wBAAsB,gBAAgB,CAAC,EACrC,IAAI,EACJ,SAAS,GACV,EAAE,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAiBlE"}
1
+ {"version":3,"file":"recoverPublicKey.d.ts","sourceRoot":"","sources":["../../../utils/signature/recoverPublicKey.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,KAAK,cAAc,EAAS,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EACL,KAAK,oBAAoB,EAG1B,MAAM,wBAAwB,CAAA;AAG/B,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,GAAG,GAAG,SAAS,CAAA;IACrB,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG,GAAG,CAAA;AAE5C,MAAM,MAAM,yBAAyB,GACjC,oBAAoB,GACpB,cAAc,GACd,SAAS,CAAA;AAEb,wBAAsB,gBAAgB,CAAC,EACrC,IAAI,EACJ,SAAS,GACV,EAAE,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CA6BlE"}
@@ -1,6 +1,6 @@
1
1
  import type { Address } from 'abitype';
2
2
  import type { ErrorType } from '../../errors/utils.js';
3
- import type { ByteArray, Hex } from '../../types/misc.js';
3
+ import type { ByteArray, Hex, Signature } from '../../types/misc.js';
4
4
  import type { TransactionSerialized } from '../../types/transaction.js';
5
5
  import { type Keccak256ErrorType } from '../hash/keccak256.js';
6
6
  import { type SerializeTransactionErrorType } from '../transaction/serializeTransaction.js';
@@ -8,7 +8,7 @@ import { type RecoverAddressErrorType } from './recoverAddress.js';
8
8
  import { type SignatureToHexErrorType } from './signatureToHex.js';
9
9
  export type RecoverTransactionAddressParameters = {
10
10
  serializedTransaction: TransactionSerialized;
11
- signature?: Hex | ByteArray;
11
+ signature?: Hex | ByteArray | Signature;
12
12
  };
13
13
  export type RecoverTransactionAddressReturnType = Address;
14
14
  export type RecoverTransactionAddressErrorType = SerializeTransactionErrorType | RecoverAddressErrorType | Keccak256ErrorType | SignatureToHexErrorType | ErrorType;
@@ -1 +1 @@
1
- {"version":3,"file":"recoverTransactionAddress.d.ts","sourceRoot":"","sources":["../../../utils/signature/recoverTransactionAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAE,KAAK,kBAAkB,EAAa,MAAM,sBAAsB,CAAA;AAEzE,OAAO,EACL,KAAK,6BAA6B,EAEnC,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,qBAAqB,CAAA;AAE5B,MAAM,MAAM,mCAAmC,GAAG;IAChD,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,SAAS,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,mCAAmC,GAAG,OAAO,CAAA;AAEzD,MAAM,MAAM,kCAAkC,GAC1C,6BAA6B,GAC7B,uBAAuB,GACvB,kBAAkB,GAClB,uBAAuB,GACvB,SAAS,CAAA;AAEb,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,mCAAmC,GAC9C,OAAO,CAAC,mCAAmC,CAAC,CA0B9C"}
1
+ {"version":3,"file":"recoverTransactionAddress.d.ts","sourceRoot":"","sources":["../../../utils/signature/recoverTransactionAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAE,KAAK,kBAAkB,EAAa,MAAM,sBAAsB,CAAA;AAEzE,OAAO,EACL,KAAK,6BAA6B,EAEnC,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,qBAAqB,CAAA;AAE5B,MAAM,MAAM,mCAAmC,GAAG;IAChD,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,SAAS,CAAC,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,mCAAmC,GAAG,OAAO,CAAA;AAEzD,MAAM,MAAM,kCAAkC,GAC1C,6BAA6B,GAC7B,uBAAuB,GACvB,kBAAkB,GAClB,uBAAuB,GACvB,SAAS,CAAA;AAEb,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,mCAAmC,GAC9C,OAAO,CAAC,mCAAmC,CAAC,CA2B9C"}
@@ -1,11 +1,11 @@
1
1
  import type { Address, TypedData } from 'abitype';
2
- import type { ByteArray, Hex } from '../../types/misc.js';
2
+ import type { ByteArray, Hex, Signature } from '../../types/misc.js';
3
3
  import type { TypedDataDefinition } from '../../types/typedData.js';
4
4
  import type { ErrorType } from '../../errors/utils.js';
5
5
  import { type HashTypedDataErrorType } from './hashTypedData.js';
6
6
  import { type RecoverAddressErrorType } from './recoverAddress.js';
7
7
  export type RecoverTypedDataAddressParameters<typedData extends TypedData | Record<string, unknown> = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData> = TypedDataDefinition<typedData, primaryType> & {
8
- signature: Hex | ByteArray;
8
+ signature: Hex | ByteArray | Signature;
9
9
  };
10
10
  export type RecoverTypedDataAddressReturnType = Address;
11
11
  export type RecoverTypedDataAddressErrorType = RecoverAddressErrorType | HashTypedDataErrorType | ErrorType;
@@ -1 +1 @@
1
- {"version":3,"file":"recoverTypedDataAddress.d.ts","sourceRoot":"","sources":["../../../utils/signature/recoverTypedDataAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,KAAK,sBAAsB,EAAiB,MAAM,oBAAoB,CAAA;AAC/E,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,qBAAqB,CAAA;AAE5B,MAAM,MAAM,iCAAiC,CAC3C,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjE,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,GAAG,MAAM,SAAS,IACpE,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG;IAChD,SAAS,EAAE,GAAG,GAAG,SAAS,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,iCAAiC,GAAG,OAAO,CAAA;AAEvD,MAAM,MAAM,gCAAgC,GACxC,uBAAuB,GACvB,sBAAsB,GACtB,SAAS,CAAA;AAEb,wBAAsB,uBAAuB,CAC3C,KAAK,CAAC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,EAEpD,UAAU,EAAE,iCAAiC,CAAC,SAAS,EAAE,WAAW,CAAC,GACpE,OAAO,CAAC,iCAAiC,CAAC,CAY5C"}
1
+ {"version":3,"file":"recoverTypedDataAddress.d.ts","sourceRoot":"","sources":["../../../utils/signature/recoverTypedDataAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,KAAK,sBAAsB,EAAiB,MAAM,oBAAoB,CAAA;AAC/E,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,qBAAqB,CAAA;AAE5B,MAAM,MAAM,iCAAiC,CAC3C,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjE,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,GAAG,MAAM,SAAS,IACpE,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG;IAChD,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,iCAAiC,GAAG,OAAO,CAAA;AAEvD,MAAM,MAAM,gCAAgC,GACxC,uBAAuB,GACvB,sBAAsB,GACtB,SAAS,CAAA;AAEb,wBAAsB,uBAAuB,CAC3C,KAAK,CAAC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,EAEpD,UAAU,EAAE,iCAAiC,CAAC,SAAS,EAAE,WAAW,CAAC,GACpE,OAAO,CAAC,iCAAiC,CAAC,CAY5C"}
@@ -1,5 +1,5 @@
1
1
  import type { Address } from 'abitype';
2
- import type { ByteArray, Hex, SignableMessage } from '../../types/misc.js';
2
+ import type { ByteArray, Hex, SignableMessage, Signature } from '../../types/misc.js';
3
3
  import { type GetAddressErrorType } from '../address/getAddress.js';
4
4
  import { type IsAddressEqualErrorType } from '../address/isAddressEqual.js';
5
5
  import type { ErrorType } from '../../errors/utils.js';
@@ -10,7 +10,7 @@ export type VerifyMessageParameters = {
10
10
  /** The message to be verified. */
11
11
  message: SignableMessage;
12
12
  /** The signature that was generated by signing the message with the address's private key. */
13
- signature: Hex | ByteArray;
13
+ signature: Hex | ByteArray | Signature;
14
14
  };
15
15
  export type VerifyMessageReturnType = boolean;
16
16
  export type VerifyMessageErrorType = IsAddressEqualErrorType | GetAddressErrorType | RecoverMessageAddressErrorType | ErrorType;
@@ -1 +1 @@
1
- {"version":3,"file":"verifyMessage.d.ts","sourceRoot":"","sources":["../../../utils/signature/verifyMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1E,OAAO,EAAE,KAAK,mBAAmB,EAAc,MAAM,0BAA0B,CAAA;AAC/E,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,8BAA8B,CAAA;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EACL,KAAK,8BAA8B,EAEpC,MAAM,4BAA4B,CAAA;AAEnC,MAAM,MAAM,uBAAuB,GAAG;IACpC,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,kCAAkC;IAClC,OAAO,EAAE,eAAe,CAAA;IACxB,8FAA8F;IAC9F,SAAS,EAAE,GAAG,GAAG,SAAS,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAA;AAE7C,MAAM,MAAM,sBAAsB,GAC9B,uBAAuB,GACvB,mBAAmB,GACnB,8BAA8B,GAC9B,SAAS,CAAA;AAEb;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,EAClC,OAAO,EACP,OAAO,EACP,SAAS,GACV,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAK5D"}
1
+ {"version":3,"file":"verifyMessage.d.ts","sourceRoot":"","sources":["../../../utils/signature/verifyMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,EACV,SAAS,EACT,GAAG,EACH,eAAe,EACf,SAAS,EACV,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,KAAK,mBAAmB,EAAc,MAAM,0BAA0B,CAAA;AAC/E,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,8BAA8B,CAAA;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EACL,KAAK,8BAA8B,EAEpC,MAAM,4BAA4B,CAAA;AAEnC,MAAM,MAAM,uBAAuB,GAAG;IACpC,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAA;IAChB,kCAAkC;IAClC,OAAO,EAAE,eAAe,CAAA;IACxB,8FAA8F;IAC9F,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAA;AAE7C,MAAM,MAAM,sBAAsB,GAC9B,uBAAuB,GACvB,mBAAmB,GACnB,8BAA8B,GAC9B,SAAS,CAAA;AAEb;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CAAC,EAClC,OAAO,EACP,OAAO,EACP,SAAS,GACV,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAK5D"}
@@ -1,5 +1,5 @@
1
1
  import type { Address, TypedData } from 'abitype';
2
- import type { ByteArray, Hex } from '../../types/misc.js';
2
+ import type { ByteArray, Hex, Signature } from '../../types/misc.js';
3
3
  import type { TypedDataDefinition } from '../../types/typedData.js';
4
4
  import { type GetAddressErrorType } from '../address/getAddress.js';
5
5
  import { type IsAddressEqualErrorType } from '../address/isAddressEqual.js';
@@ -9,7 +9,7 @@ export type VerifyTypedDataParameters<typedData extends TypedData | Record<strin
9
9
  /** The address to verify the typed data for. */
10
10
  address: Address;
11
11
  /** The signature to verify */
12
- signature: Hex | ByteArray;
12
+ signature: Hex | ByteArray | Signature;
13
13
  };
14
14
  export type VerifyTypedDataReturnType = boolean;
15
15
  export type VerifyTypedDataErrorType = IsAddressEqualErrorType | GetAddressErrorType | RecoverTypedDataAddressParameters | ErrorType;
@@ -1 +1 @@
1
- {"version":3,"file":"verifyTypedData.d.ts","sourceRoot":"","sources":["../../../utils/signature/verifyTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAAE,KAAK,mBAAmB,EAAc,MAAM,0BAA0B,CAAA;AAC/E,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,8BAA8B,CAAA;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EACL,KAAK,iCAAiC,EAEvC,MAAM,8BAA8B,CAAA;AAErC,MAAM,MAAM,yBAAyB,CACnC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjE,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,GAAG,MAAM,SAAS,IACpE,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG;IAChD,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,8BAA8B;IAC9B,SAAS,EAAE,GAAG,GAAG,SAAS,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAA;AAE/C,MAAM,MAAM,wBAAwB,GAChC,uBAAuB,GACvB,mBAAmB,GACnB,iCAAiC,GACjC,SAAS,CAAA;AAEb;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,KAAK,CAAC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,EAEpD,UAAU,EAAE,yBAAyB,CAAC,SAAS,EAAE,WAAW,CAAC,GAC5D,OAAO,CAAC,yBAAyB,CAAC,CAapC"}
1
+ {"version":3,"file":"verifyTypedData.d.ts","sourceRoot":"","sources":["../../../utils/signature/verifyTypedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,EAAE,KAAK,mBAAmB,EAAc,MAAM,0BAA0B,CAAA;AAC/E,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,8BAA8B,CAAA;AAErC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EACL,KAAK,iCAAiC,EAEvC,MAAM,8BAA8B,CAAA;AAErC,MAAM,MAAM,yBAAyB,CACnC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjE,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,GAAG,MAAM,SAAS,IACpE,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG;IAChD,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,8BAA8B;IAC9B,SAAS,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,CAAA;CACvC,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAA;AAE/C,MAAM,MAAM,wBAAwB,GAChC,uBAAuB,GACvB,mBAAmB,GACnB,iCAAiC,GACjC,SAAS,CAAA;AAEb;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,KAAK,CAAC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,EAEpD,UAAU,EAAE,yBAAyB,CAAC,SAAS,EAAE,WAAW,CAAC,GAC5D,OAAO,CAAC,yBAAyB,CAAC,CAapC"}
@@ -1,5 +1,6 @@
1
1
  import type { Address } from 'abitype'
2
2
 
3
+ import { signatureToHex } from '../../accounts/index.js'
3
4
  import type { Client } from '../../clients/createClient.js'
4
5
  import type { Transport } from '../../clients/transports/createTransport.js'
5
6
  import { universalSignatureValidatorAbi } from '../../constants/abis.js'
@@ -7,16 +8,18 @@ import { universalSignatureValidatorByteCode } from '../../constants/contracts.j
7
8
  import { CallExecutionError } from '../../errors/contract.js'
8
9
  import type { ErrorType } from '../../errors/utils.js'
9
10
  import type { Chain } from '../../types/chain.js'
10
- import type { ByteArray, Hex } from '../../types/misc.js'
11
- import type { EncodeDeployDataErrorType } from '../../utils/abi/encodeDeployData.js'
11
+ import type { ByteArray, Hex, Signature } from '../../types/misc.js'
12
+ import {
13
+ type EncodeDeployDataErrorType,
14
+ encodeDeployData,
15
+ } from '../../utils/abi/encodeDeployData.js'
12
16
  import {
13
17
  type IsBytesEqualErrorType,
14
18
  isBytesEqual,
15
19
  } from '../../utils/data/isBytesEqual.js'
16
- import type { IsHexErrorType } from '../../utils/data/isHex.js'
17
- import type { ToHexErrorType } from '../../utils/encoding/toHex.js'
20
+ import { type IsHexErrorType, isHex } from '../../utils/data/isHex.js'
21
+ import { type ToHexErrorType, bytesToHex } from '../../utils/encoding/toHex.js'
18
22
  import { getAction } from '../../utils/getAction.js'
19
- import { encodeDeployData, isHex, toHex } from '../../utils/index.js'
20
23
  import { type CallErrorType, type CallParameters, call } from './call.js'
21
24
 
22
25
  export type VerifyHashParameters = Pick<
@@ -28,7 +31,7 @@ export type VerifyHashParameters = Pick<
28
31
  /** The hash to be verified. */
29
32
  hash: Hex
30
33
  /** The signature that was generated by signing the message with the address's private key. */
31
- signature: Hex | ByteArray
34
+ signature: Hex | ByteArray | Signature
32
35
  }
33
36
 
34
37
  export type VerifyHashReturnType = boolean
@@ -52,7 +55,12 @@ export async function verifyHash<TChain extends Chain | undefined>(
52
55
  client: Client<Transport, TChain>,
53
56
  { address, hash, signature, ...callRequest }: VerifyHashParameters,
54
57
  ): Promise<VerifyHashReturnType> {
55
- const signatureHex = isHex(signature) ? signature : toHex(signature)
58
+ const signatureHex = (() => {
59
+ if (isHex(signature)) return signature
60
+ if (typeof signature === 'object' && 'r' in signature && 's' in signature)
61
+ return signatureToHex(signature)
62
+ return bytesToHex(signature)
63
+ })()
56
64
 
57
65
  try {
58
66
  const { data } = await getAction(
@@ -4,7 +4,12 @@ import type { Client } from '../../clients/createClient.js'
4
4
  import type { Transport } from '../../clients/transports/createTransport.js'
5
5
  import type { ErrorType } from '../../errors/utils.js'
6
6
  import type { Chain } from '../../types/chain.js'
7
- import type { ByteArray, Hex, SignableMessage } from '../../types/misc.js'
7
+ import type {
8
+ ByteArray,
9
+ Hex,
10
+ SignableMessage,
11
+ Signature,
12
+ } from '../../types/misc.js'
8
13
  import { hashMessage } from '../../utils/index.js'
9
14
  import type { HashMessageErrorType } from '../../utils/signature/hashMessage.js'
10
15
  import {
@@ -19,7 +24,7 @@ export type VerifyMessageParameters = Omit<VerifyHashParameters, 'hash'> & {
19
24
  /** The message to be verified. */
20
25
  message: SignableMessage
21
26
  /** The signature that was generated by signing the message with the address's private key. */
22
- signature: Hex | ByteArray
27
+ signature: Hex | ByteArray | Signature
23
28
  }
24
29
 
25
30
  export type VerifyMessageReturnType = boolean
@@ -4,7 +4,7 @@ import type { Client } from '../../clients/createClient.js'
4
4
  import type { Transport } from '../../clients/transports/createTransport.js'
5
5
  import type { ErrorType } from '../../errors/utils.js'
6
6
  import type { Chain } from '../../types/chain.js'
7
- import type { ByteArray, Hex } from '../../types/misc.js'
7
+ import type { ByteArray, Hex, Signature } from '../../types/misc.js'
8
8
  import type { TypedDataDefinition } from '../../types/typedData.js'
9
9
  import {
10
10
  type HashTypedDataErrorType,
@@ -24,7 +24,7 @@ export type VerifyTypedDataParameters<
24
24
  /** The address to verify the typed data for. */
25
25
  address: Address
26
26
  /** The signature to verify */
27
- signature: Hex | ByteArray
27
+ signature: Hex | ByteArray | Signature
28
28
  }
29
29
 
30
30
  export type VerifyTypedDataReturnType = boolean
@@ -21,5 +21,5 @@ export const cyber = /*#__PURE__*/ defineChain({
21
21
  address: '0xd1A3cb95E97Abc83777Ced3d474CCdD1AC948F0E',
22
22
  blockCreated: 43798,
23
23
  },
24
- }
24
+ },
25
25
  })
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '0.0.0-main.20240424T064647'
1
+ export const version = '0.0.0-main.20240424T233310'
@@ -1,6 +1,6 @@
1
1
  import type { Address } from 'abitype'
2
2
 
3
- import type { ByteArray, Hex } from '../../../types/misc.js'
3
+ import type { ByteArray, Hex, Signature } from '../../../types/misc.js'
4
4
 
5
5
  import type { ErrorType } from '../../../errors/utils.js'
6
6
  import { keccak256 } from '../../../utils/hash/keccak256.js'
@@ -11,7 +11,7 @@ import {
11
11
  import { type ToAuthMessageParameters, toAuthMessage } from './toAuthMessage.js'
12
12
 
13
13
  export type RecoverAuthMessageAddressParameters = ToAuthMessageParameters & {
14
- signature: Hex | ByteArray
14
+ signature: Hex | ByteArray | Signature
15
15
  }
16
16
 
17
17
  export type RecoverAuthMessageAddressReturnType = Address
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "0.0.0-main.20240424T064647",
4
+ "version": "0.0.0-main.20240424T233310",
5
5
  "type": "module",
6
6
  "main": "./_cjs/index.js",
7
7
  "module": "./_esm/index.js",
@@ -21,11 +21,24 @@ export type HexToSignatureErrorType = NumberToHexErrorType | ErrorType
21
21
  */
22
22
  export function hexToSignature(signatureHex: Hex) {
23
23
  const { r, s } = secp256k1.Signature.fromCompact(signatureHex.slice(2, 130))
24
- const v = BigInt(`0x${signatureHex.slice(130)}`)
24
+ const yParityOrV = Number(`0x${signatureHex.slice(130)}`)
25
+ const [v, yParity] = (() => {
26
+ if (yParityOrV === 0 || yParityOrV === 1) return [undefined, yParityOrV]
27
+ if (yParityOrV === 27) return [BigInt(yParityOrV), 0]
28
+ if (yParityOrV === 28) return [BigInt(yParityOrV), 1]
29
+ throw new Error('Invalid yParityOrV value')
30
+ })()
31
+
32
+ if (typeof v !== 'undefined')
33
+ return {
34
+ r: numberToHex(r, { size: 32 }),
35
+ s: numberToHex(s, { size: 32 }),
36
+ v,
37
+ yParity,
38
+ } satisfies Signature
25
39
  return {
26
40
  r: numberToHex(r, { size: 32 }),
27
41
  s: numberToHex(s, { size: 32 }),
28
- v,
29
- yParity: v === 28n ? 1 : 0,
42
+ yParity,
30
43
  } satisfies Signature
31
44
  }
@@ -1,14 +1,14 @@
1
1
  import type { Address } from 'abitype'
2
2
 
3
3
  import { publicKeyToAddress } from '../../accounts/utils/publicKeyToAddress.js'
4
- import type { ByteArray, Hex } from '../../types/misc.js'
4
+ import type { ByteArray, Hex, Signature } from '../../types/misc.js'
5
5
 
6
6
  import type { ErrorType } from '../../errors/utils.js'
7
7
  import { recoverPublicKey } from './recoverPublicKey.js'
8
8
 
9
9
  export type RecoverAddressParameters = {
10
10
  hash: Hex | ByteArray
11
- signature: Hex | ByteArray
11
+ signature: Hex | ByteArray | Signature
12
12
  }
13
13
 
14
14
  export type RecoverAddressReturnType = Address
@@ -1,6 +1,11 @@
1
1
  import type { Address } from 'abitype'
2
2
 
3
- import type { ByteArray, Hex, SignableMessage } from '../../types/misc.js'
3
+ import type {
4
+ ByteArray,
5
+ Hex,
6
+ SignableMessage,
7
+ Signature,
8
+ } from '../../types/misc.js'
4
9
 
5
10
  import type { ErrorType } from '../../errors/utils.js'
6
11
  import { type HashMessageErrorType, hashMessage } from './hashMessage.js'
@@ -11,7 +16,7 @@ import {
11
16
 
12
17
  export type RecoverMessageAddressParameters = {
13
18
  message: SignableMessage
14
- signature: Hex | ByteArray
19
+ signature: Hex | ByteArray | Signature
15
20
  }
16
21
 
17
22
  export type RecoverMessageAddressReturnType = Address
@@ -1,12 +1,16 @@
1
1
  import type { ErrorType } from '../../errors/utils.js'
2
- import type { ByteArray, Hex } from '../../types/misc.js'
2
+ import type { ByteArray, Hex, Signature } from '../../types/misc.js'
3
3
  import { type IsHexErrorType, isHex } from '../data/isHex.js'
4
- import { type HexToNumberErrorType, hexToNumber } from '../encoding/fromHex.js'
4
+ import {
5
+ type HexToNumberErrorType,
6
+ hexToBigInt,
7
+ hexToNumber,
8
+ } from '../encoding/fromHex.js'
5
9
  import { toHex } from '../encoding/toHex.js'
6
10
 
7
11
  export type RecoverPublicKeyParameters = {
8
12
  hash: Hex | ByteArray
9
- signature: Hex | ByteArray
13
+ signature: Hex | ByteArray | Signature
10
14
  }
11
15
 
12
16
  export type RecoverPublicKeyReturnType = Hex
@@ -20,20 +24,39 @@ export async function recoverPublicKey({
20
24
  hash,
21
25
  signature,
22
26
  }: RecoverPublicKeyParameters): Promise<RecoverPublicKeyReturnType> {
23
- const signatureHex = isHex(signature) ? signature : toHex(signature)
24
27
  const hashHex = isHex(hash) ? hash : toHex(hash)
25
28
 
26
- // Derive v = recoveryId + 27 from end of the signature (27 is added when signing the message)
27
- // The recoveryId represents the y-coordinate on the secp256k1 elliptic curve and can have a value [0, 1].
28
- let v = hexToNumber(`0x${signatureHex.slice(130)}`)
29
- if (v === 0 || v === 1) v += 27
30
-
31
29
  const { secp256k1 } = await import('@noble/curves/secp256k1')
32
- const publicKey = secp256k1.Signature.fromCompact(
33
- signatureHex.substring(2, 130),
34
- )
35
- .addRecoveryBit(v - 27)
30
+ const signature_ = await (async () => {
31
+ // typeof signature: `Signature`
32
+ if (typeof signature === 'object' && 'r' in signature && 's' in signature) {
33
+ const { r, s, v, yParity } = signature
34
+ const yParityOrV = Number(yParity ?? v)!
35
+ const recoveryBit = toRecoveryBit(yParityOrV)
36
+ return new secp256k1.Signature(
37
+ hexToBigInt(r),
38
+ hexToBigInt(s),
39
+ ).addRecoveryBit(recoveryBit)
40
+ }
41
+
42
+ // typeof signature: `Hex | ByteArray`
43
+ const signatureHex = isHex(signature) ? signature : toHex(signature)
44
+ const yParityOrV = hexToNumber(`0x${signatureHex.slice(130)}`)
45
+ const recoveryBit = toRecoveryBit(yParityOrV)
46
+ return secp256k1.Signature.fromCompact(
47
+ signatureHex.substring(2, 130),
48
+ ).addRecoveryBit(recoveryBit)
49
+ })()
50
+
51
+ const publicKey = signature_
36
52
  .recoverPublicKey(hashHex.substring(2))
37
53
  .toHex(false)
38
54
  return `0x${publicKey}`
39
55
  }
56
+
57
+ function toRecoveryBit(yParityOrV: number) {
58
+ if (yParityOrV === 0 || yParityOrV === 1) return yParityOrV
59
+ if (yParityOrV === 27) return 0
60
+ if (yParityOrV === 28) return 1
61
+ throw new Error('Invalid yParityOrV value')
62
+ }
@@ -1,6 +1,6 @@
1
1
  import type { Address } from 'abitype'
2
2
  import type { ErrorType } from '../../errors/utils.js'
3
- import type { ByteArray, Hex } from '../../types/misc.js'
3
+ import type { ByteArray, Hex, Signature } from '../../types/misc.js'
4
4
  import type { TransactionSerialized } from '../../types/transaction.js'
5
5
  import { type Keccak256ErrorType, keccak256 } from '../hash/keccak256.js'
6
6
  import { parseTransaction } from '../transaction/parseTransaction.js'
@@ -19,7 +19,7 @@ import {
19
19
 
20
20
  export type RecoverTransactionAddressParameters = {
21
21
  serializedTransaction: TransactionSerialized
22
- signature?: Hex | ByteArray
22
+ signature?: Hex | ByteArray | Signature
23
23
  }
24
24
 
25
25
  export type RecoverTransactionAddressReturnType = Address
@@ -53,6 +53,7 @@ export async function recoverTransactionAddress(
53
53
  s: undefined,
54
54
  v: undefined,
55
55
  yParity: undefined,
56
+ sidecars: undefined,
56
57
  })
57
58
 
58
59
  return await recoverAddress({
@@ -1,6 +1,6 @@
1
1
  import type { Address, TypedData } from 'abitype'
2
2
 
3
- import type { ByteArray, Hex } from '../../types/misc.js'
3
+ import type { ByteArray, Hex, Signature } from '../../types/misc.js'
4
4
  import type { TypedDataDefinition } from '../../types/typedData.js'
5
5
 
6
6
  import type { ErrorType } from '../../errors/utils.js'
@@ -14,7 +14,7 @@ export type RecoverTypedDataAddressParameters<
14
14
  typedData extends TypedData | Record<string, unknown> = TypedData,
15
15
  primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData,
16
16
  > = TypedDataDefinition<typedData, primaryType> & {
17
- signature: Hex | ByteArray
17
+ signature: Hex | ByteArray | Signature
18
18
  }
19
19
 
20
20
  export type RecoverTypedDataAddressReturnType = Address
@@ -1,6 +1,11 @@
1
1
  import type { Address } from 'abitype'
2
2
 
3
- import type { ByteArray, Hex, SignableMessage } from '../../types/misc.js'
3
+ import type {
4
+ ByteArray,
5
+ Hex,
6
+ SignableMessage,
7
+ Signature,
8
+ } from '../../types/misc.js'
4
9
  import { type GetAddressErrorType, getAddress } from '../address/getAddress.js'
5
10
  import {
6
11
  type IsAddressEqualErrorType,
@@ -19,7 +24,7 @@ export type VerifyMessageParameters = {
19
24
  /** The message to be verified. */
20
25
  message: SignableMessage
21
26
  /** The signature that was generated by signing the message with the address's private key. */
22
- signature: Hex | ByteArray
27
+ signature: Hex | ByteArray | Signature
23
28
  }
24
29
 
25
30
  export type VerifyMessageReturnType = boolean
@@ -1,6 +1,6 @@
1
1
  import type { Address, TypedData } from 'abitype'
2
2
 
3
- import type { ByteArray, Hex } from '../../types/misc.js'
3
+ import type { ByteArray, Hex, Signature } from '../../types/misc.js'
4
4
  import type { TypedDataDefinition } from '../../types/typedData.js'
5
5
  import { type GetAddressErrorType, getAddress } from '../address/getAddress.js'
6
6
  import {
@@ -21,7 +21,7 @@ export type VerifyTypedDataParameters<
21
21
  /** The address to verify the typed data for. */
22
22
  address: Address
23
23
  /** The signature to verify */
24
- signature: Hex | ByteArray
24
+ signature: Hex | ByteArray | Signature
25
25
  }
26
26
 
27
27
  export type VerifyTypedDataReturnType = boolean